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
ProfileTelegram
102 commands0 envUpdated 29d agoCreated Aug 7, 2026
Back to folder

commands/_back.js

javascript · 155 lines

Raw
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}