indrajitghosh20006/Igstore_01botPublic Β· Bot Template
AIThe bot provides an admin interface for a digital store, allowing the owner or coβadmins to add balances, products, plans, and categories. It supports payment workflows via UPI and Binance Pay, automatically generating QR codes and handling manual approval of deposits. The code patches inline keyboards to use premium emoji icons and includes helper functions for user and bot properties. Overall, it serves as a commerce management tool for a Telegram-based storefront.
Commercestoreadminbalanceproductplancategory
170 commands0 envUpdated 8h agoCreated Oct 30, 2026
commands/_addbal_all.js
javascript Β· 155 lines
1/**#command2name: /addbal_all3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12// PREMIUM BUTTON ICONS13(function(){14 try {15 if (!JSON.__premiumPatched) {16 var __origStringify = JSON.stringify;17 JSON.stringify = function(value, replacer, space) {18 try {19 if (value && value.inline_keyboard && Array.isArray(value.inline_keyboard)) {20 var premiumIds = [21 "6143444134125379822",22 "6091379307907652768",23 "6147534454819661264",24 "6147817325660741985",25 "6235683689292897318",26 "6102856637343600044"27 ];28 var rows = value.inline_keyboard.map(function(row, ri) {29 if (!Array.isArray(row)) return row;30 return row.map(function(btn, bi) {31 if (!btn || typeof btn !== "object") return btn;32 var copy = {};33 for (var k in btn) copy[k] = btn[k];34 if (!copy.icon_custom_emoji_id) copy.icon_custom_emoji_id = premiumIds[(ri + bi) % premiumIds.length];35 return copy;36 });37 });38 var cloned = {};39 for (var key in value) cloned[key] = value[key];40 cloned.inline_keyboard = rows;41 return __origStringify.call(JSON, cloned, replacer, space);42 }43 } catch (e) {}44 return __origStringify.call(JSON, value, replacer, space);45 };46 JSON.__premiumPatched = true;47 }48 } catch (e) {}49})();50 51 52 53// β
FIXED (v3): dynamic owner_id + co-admin check (same fix as /addbal).54let admin_id = Bot.getProperty("owner_id") || "7839151435";55let requesterId = String(user.telegramid);56let isCoAdmin = Bot.getProperty("co_admin_" + requesterId);57 58if (requesterId === admin_id || isCoAdmin) {59 60 // β
FIXED: instantly ack the button press so it doesn't feel stuck/slow.61 if (request && request.id) {62 try {63 HTTP.post({64 url: "https://api.telegram.org/bot" + bot.token + "/answerCallbackQuery",65 body: { callback_query_id: request.id }66 });67 } catch (ackErr) {}68 }69 70 let params = (typeof message !== "undefined" && message) ? message.split(" ") : [];71 let data = params[1];72 73 // Agar amount na mila ho, toh prompt bhejo aur agla text message74 // auto-capture ho jaayega (see _start.js "MODULE 5").75 if (!data || isNaN(parseFloat(data.trim()))) {76 User.setProperty("addbalall_step", "waiting_input", "string");77 Bot.sendMessage(78 "<tg-emoji emoji-id='5409048419211682843'>π΅</tg-emoji> <b>Add Balance To ALL Users</b>\n\n" +79 "<i>Kitna amount har user ko add karna hai, sirf number bhejein:</i>\n<code>amount</code>\n\n" +80 "<i>Example:</i> <code>50</code>",81 {parse_mode: "HTML"}82 );83 return;84 }85 86 let amountToAdd = parseFloat(data.trim());87 88 if (isNaN(amountToAdd) || amountToAdd <= 0) {89 Bot.sendMessage("β *Invalid Amount!*", {parse_mode: "Markdown"});90 return;91 }92 93 try {94 let userList = Bot.getProperty("all_users_list") || [];95 if (!Array.isArray(userList)) { userList = []; }96 97 if (userList.length === 0) {98 Bot.sendMessage("β οΈ <b>Database Empty:</b> Abhi tak koi bhi user register nahi hua hai.", {parse_mode: "HTML"});99 return;100 }101 102 Bot.sendMessage(103 "<tg-emoji emoji-id='6147936236125298267'>β³</tg-emoji> <b>Adding βΉ" + amountToAdd + " to " + userList.length + " users, please wait...</b>",104 {parse_mode: "HTML"}105 );106 107 let notificationText =108 "<blockquote>" +109 "<tg-emoji emoji-id='6192822213486321961'>π£</tg-emoji> Admin Added: " + amountToAdd + "\n" +110 "<tg-emoji emoji-id='6266967801580231067'>π</tg-emoji> Balance Credited!\n" +111 "<tg-emoji emoji-id='6267068789146260253'>π°</tg-emoji> Wallet Updated\n" +112 "<tg-emoji emoji-id='5866053971960929280'>π</tg-emoji> /start TO SHOP NOW" +113 "</blockquote>";114 115 let successCount = 0;116 let failCount = 0;117 118 for (let i = 0; i < userList.length; i++) {119 let targetUserId = userList[i];120 try {121 // Balance add karna122 let targetUserBalance = Libs.ResourcesLib.anotherUserRes("balance", targetUserId);123 targetUserBalance.add(amountToAdd);124 successCount++;125 126 // β
FIXED: raw HTTP.post ki jagah Api.sendMessage β zyada reliable delivery.127 try {128 Api.sendMessage({129 chat_id: targetUserId,130 text: notificationText,131 parse_mode: "HTML"132 });133 } catch (notifyErr) {134 // Notification fail hone se balance-add process nahi rukna chahiye135 }136 } catch (userErr) {137 failCount++;138 }139 }140 141 Bot.sendMessage(142 "β
<b>Bulk Add Balance Complete!</b>\n\n" +143 "π° <b>Amount per user:</b> βΉ" + amountToAdd + "\n" +144 "π₯ <b>Success:</b> " + successCount + "\n" +145 "β οΈ <b>Failed:</b> " + failCount,146 {parse_mode: "HTML"}147 );148 149 } catch (err) {150 Bot.sendMessage("β οΈ *Error:* " + err.message, {parse_mode: "Markdown"});151 }152 153} else {154 Bot.sendMessage("β You are not authorized to use this command.");155}