kkapil9112/Hguuuuuv45botPublic · Bot Template
AITelegram commerce bot for an admin-managed digital store: admins create categories, products, time-based plans, stock entries and license keys, and can grant reseller roles or adjust user balances. End users can view their balance, start a deposit flow with an inline amount keypad, apply coupon codes, and navigate back to the store menu. It uses Bot properties for product/stock/coupon data and Libs.ResourcesLib for per-user balances.
Commercecommerceshopreselleradmin-panelbalanceproduct-management
102 commands0 envUpdated 29d agoCreated Aug 7, 2026
commands/_back.js
javascript · 155 lines
1/**#command2name: /back3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12// =========================================================13// 🚀 PREMIUM STORE MASTER DASHBOARD (UPDATED WITH LUDO SPIN)14// STATUS: 100% PRODUCTION READY WITH LIVE BUTTON STYLES15// =========================================================16 17try {18 var userId = user.telegramid;19 20 // 💾 BROADCAST SYSTEM: Safe Loop Core21 var userList = [];22 try {23 userList = Bot.getProperty("all_users_list") || [];24 if (!Array.isArray(userList)) { userList = []; }25 } catch (propErr) {26 userList = [];27 }28 29 var userExists = false;30 for (var i = 0; i < userList.length; i++) {31 if (String(userList[i]) === String(userId)) {32 userExists = true;33 break;34 }35 }36 if (!userExists) {37 userList.push(String(userId));38 Bot.setProperty("all_users_list", userList, "json");39 }40 41 // 📊 REAL BALANCE FETCH42 var userBal = "0.00";43 try {44 var res = 0;45 if (Libs && Libs.ResourcesLib) {46 res = Libs.ResourcesLib.userRes("balance").value() || 0;47 }48 var adminBal = Bot.getProperty("balance" + userId) || 0;49 userBal = (Number(res) + Number(adminBal)).toFixed(2);50 } catch (balErr) {51 var fallbackBal = Bot.getProperty("balance" + userId) || 0;52 userBal = Number(fallbackBal).toFixed(2);53 }54 55 // 💎 WELCOME MESSAGE EMOJIS (Sirf Text Message ke liye)56 var EMJ_HEADER_ROCKET = "<tg-emoji emoji-id='5217822164362739968'>🚀</tg-emoji>";57 var EMJ_HEADER_NEW = "<tg-emoji emoji-id='6194809138371904539'>✨</tg-emoji>"; 58 var EMJ_HEADER_SHIELD = "<tg-emoji emoji-id='6113743082358841933'>🔰</tg-emoji>";59 60 // Welcome message ke saare items ke variables:61 var MSG_EMJ_STORE = "<tg-emoji emoji-id='5866053971960929280'>🛒</tg-emoji>";62 var MSG_EMJ_FFID = "<tg-emoji emoji-id='5334890573281114250'>🎮</tg-emoji>"; 63 var MSG_EMJ_PROFILE = "<tg-emoji emoji-id='5260399854500191689'>🔰</tg-emoji>";64 var MSG_EMJ_ADDBAL = "<tg-emoji emoji-id='6147815702163102310'>✨</tg-emoji>";65 var MSG_EMJ_HISTORY = "<tg-emoji emoji-id='6113743082358841933'>🔰</tg-emoji>";66 var MSG_EMJ_LUDO = "<tg-emoji emoji-id='5371043439020353782'>🎲</tg-emoji>"; // Ludo Spin Custom Emoji67 var MSG_EMJ_TUTORIAL = "<tg-emoji emoji-id='5258077307985207053'>📹</tg-emoji>";68 var MSG_EMJ_PROOF = "<tg-emoji emoji-id='5330237710655306682'>✅</tg-emoji>"; // Payment Proof Custom Emoji69 var MSG_EMJ_SUPPORT = "<tg-emoji emoji-id='5436113877181941026'>🔰</tg-emoji>";70 71 // Naye aur Updated Emojis72 var EMJ_PREMIUM_MENU = "<tg-emoji emoji-id='5406745015365943482'>✨</tg-emoji>";73 var EMJ_YOUR_BALANCE = "<tg-emoji emoji-id='5231200819986047254'>💰</tg-emoji>";74 var EMJ_GET_STARTED = "<tg-emoji emoji-id='6057415823222379852'>👇</tg-emoji>";75 76 // 📝 FULL WELCOME MESSAGE — synced with /start design (BALA MOOD STORE)77 var welcomeMessage =78 "<tg-emoji emoji-id=\"6266967801580231067\">💎</tg-emoji> <tg-emoji emoji-id=\"5866053971960929280\">🏪</tg-emoji> <b>— BALA MOOD STORE —</b> <tg-emoji emoji-id=\"5866053971960929280\">🏪</tg-emoji> <tg-emoji emoji-id=\"6266967801580231067\">💎</tg-emoji>\n\n" +79 "<tg-emoji emoji-id=\"6093677128295914531\">🎉</tg-emoji> <b>Hello, " + ((user && user.first_name) ? user.first_name.toUpperCase() : "RESELLER") + "!</b>\n\n" +80 "<tg-emoji emoji-id=\"6080228009439141516\">💧</tg-emoji> <b>Genuine, limited-stock books. Instant delivery.</b>\n\n" +81 "<tg-emoji emoji-id=\"6093591495237967001\">🌐</tg-emoji> Wide product catalog\n" +82 "<tg-emoji emoji-id=\"6215386799133433653\">🔑</tg-emoji> Instant delivery on payment\n" +83 "<tg-emoji emoji-id=\"6312263493051489212\">💰</tg-emoji> Multiple payment gateways\n" +84 "<tg-emoji emoji-id=\"6100170496077204999\">👑</tg-emoji> 24/7 admin support\n\n" +85 "<i>Balance: ₹" + userBal + "</i>\n\n" +86 "<i>Tap any button below to begin:</i> " + EMJ_GET_STARTED;87 88 // 🎨 KEYBOARD — same layout as /start89 var multiColorKeyboard = [90 [{ text: "Shop Now", callback_data: "/buy_hack", style: "primary", icon_custom_emoji_id: "5866053971960929280" }],91 [92 { text: "Profile", callback_data: "/profile", style: "primary", icon_custom_emoji_id: "5260399854500191689" },93 { text: "Add Balance", callback_data: "/addfund", style: "success", icon_custom_emoji_id: "6147815702163102310" }94 ],95 [96 { text: "My Keys", callback_data: "/mykey", style: "primary", icon_custom_emoji_id: "6113743082358841933" },97 { text: "How to use", callback_data: "/how", style: "danger", icon_custom_emoji_id: "6080214566191505147" }98 ],99 [{ text: "Payment Proofs", url: "https://t.me/GaluModz_Proof", style: "success", icon_custom_emoji_id: "5330237710655306682" }],100 [{ text: "Support", callback_data: "/support", style: "danger", icon_custom_emoji_id: "5436113877181941026" }]101 ];102 103 // 👑 Conditional Reseller Upgrade button104 if (Bot.getProperty("reseller_system_enabled") && !Bot.getProperty("is_reseller_" + userId)) {105 multiColorKeyboard.push([106 { text: "Reseller Upgrade", callback_data: "/reseller_upgrade", style: "success", icon_custom_emoji_id: "6102856637343600044" }107 ]);108 }109 110 // 🔄 Safe Callback Loading Controller111 var queryId = null;112 if (request) {113 if (request.id) { queryId = request.id; }114 else if (request.callback_query && request.callback_query.id) { queryId = request.callback_query.id; }115 }116 117 if (queryId) {118 try { Api.answerCallbackQuery({ callback_query_id: queryId }); } catch(qErr){}119 }120 121 // ⚡ Native Execution Route (Send vs Edit Handler)122 // ✅ BUG FIX: agar previous message ek PHOTO thi (jaise DP-attached Profile),123 // Telegram editMessageText use hi nahi kar sakta uspar — isi wajah se Profile124 // se "Back" click karne par kuch hota hi nahi tha. Ab photo ho to delete karke125 // fresh text message bheja jaata hai.126 if (request && request.message && request.message.message_id) {127 if (request.message.photo) {128 try { Api.deleteMessage({ chat_id: chat.chatid, message_id: request.message.message_id }); } catch (delErr) {}129 Api.sendMessage({130 chat_id: chat.chatid,131 text: welcomeMessage,132 parse_mode: "HTML",133 reply_markup: JSON.stringify({ inline_keyboard: multiColorKeyboard })134 });135 } else {136 Api.editMessageText({137 chat_id: chat.chatid,138 message_id: request.message.message_id,139 text: welcomeMessage,140 parse_mode: "HTML",141 reply_markup: JSON.stringify({ inline_keyboard: multiColorKeyboard })142 });143 }144 } else {145 Api.sendMessage({146 chat_id: chat.chatid,147 text: welcomeMessage,148 parse_mode: "HTML",149 reply_markup: JSON.stringify({ inline_keyboard: multiColorKeyboard })150 });151 }152 153} catch (globalException) {154 Bot.sendMessage("🛑 <b>Dashboard Debug Error:</b> <code>" + globalException.message + "</code>", { parse_mode: "HTML" });155}