ayushyadav7970824760/goldensellingstore_botPublic · Bot Template

AIThis Telegram store bot lets customers browse digital products and plans, apply coupons, add funds via UPI, and receive purchased keys. It includes a full admin panel for managing products, reordering items, setting reseller prices, viewing and removing key stock, configuring UPI payment details and update links, and checking user balances. Co-admins and resellers are supported, and support tickets are forwarded to the admin.

Commercedigital_storeadmin_panelupi_paymentsresellercouponskey_stock
ProfileTelegram
146 commands0 envUpdated 2d agoCreated Sep 5, 2026
Back to folder

commands/_buy_hack.js

javascript · 83 lines

Raw
1/**#command2name: /buy_hack3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12// =========================================================13// 🛒 SHOP MENU — Category selection (entry point of the whole buy flow)14// ✅ NEW: Shop Now ab seedha product list nahi, pehle "ANDROID ROOT" /15// "ANDROID NON ROOT" category selection dikhata hai. Product asli list16// /buy_hack_cat me dikhti hai (category ke hisaab se filter hokar).17// ✅ BUG FIX: reply_markup pehle raw object bheja jaa raha tha (JSON.stringify18// missing) — is wajah se product buttons kabhi kabhi properly render/work19// nahi karte the, jisse poora buy flow shuru hone se pehle hi tootta tha.20// ✅ BUG FIX: photo-message (jaise Profile) se yahan aane par editMessageText21// fail ho jaata — ab photo detect hoke delete + fresh send hota hai.22// ✅ Premium redesign.23// =========================================================24 25try {26  var rawData = Bot.getProperty("stored_products");27  var productList = [];28 29  if (Array.isArray(rawData)) {30    productList = rawData;31  } else if (typeof rawData === "string") {32    try {33      productList = JSON.parse(rawData);34      if (!Array.isArray(productList)) { productList = []; }35    } catch (e) {36      productList = [];37    }38  }39 40  var chatId = chat.chatid;41  var firstName = user && user.first_name ? user.first_name : "User";42 43  // Device categories.44  var categoryButtons = [45    [{ text: "𝑨𝑵𝑫𝑹𝑶𝑰𝑫 𝑵𝑶𝑵 𝑹𝑶𝑶𝑻", callback_data: "/buy_hack_cat nonroot", style: "primary" }],46    [{ text: "𝑨𝑵𝑫𝑹𝑶𝑰𝑫 𝑹𝑶𝑶𝑻", callback_data: "/buy_hack_cat root", style: "primary" }],47    [{ text: "𝒊𝑷𝑯𝑶𝑵𝑬", callback_data: "/buy_hack_cat iphone", style: "primary" }],48    [{ text: "𝑩𝒂𝒄𝒌 𝒕𝒐 𝑴𝒆𝒏𝒖", callback_data: "/back", style: "danger" }]49  ];50 51  var storeText =52    "<blockquote>🛒 <b>SELECT YOUR DEVICE TYPE</b> ✨</blockquote>\n" +53    "━━━━━━━━━━━━━━━━━━━━━\n\n" +54    "<tg-emoji emoji-id='6091571559233755994'>👋</tg-emoji> <b>Yoo " + firstName + "!</b>\n" +55    "<i>Pehle apna device type chunein, uske baad products dikhenge.</i>\n" +56    "━━━━━━━━━━━━━━━━━━━━━";57 58  var replyMarkupStr = JSON.stringify({ inline_keyboard: categoryButtons });59 60  if (request && request.message && request.message.message_id) {61    if (request.message.photo) {62      try { Api.deleteMessage({ chat_id: chatId, message_id: request.message.message_id }); } catch (e) {}63      Api.sendMessage({ chat_id: chatId, text: storeText, parse_mode: "HTML", reply_markup: replyMarkupStr });64    } else {65      Api.editMessageText({66        chat_id: chatId,67        message_id: request.message.message_id,68        text: storeText,69        parse_mode: "HTML",70        reply_markup: replyMarkupStr71      });72    }73  } else {74    Api.sendMessage({ chat_id: chatId, text: storeText, parse_mode: "HTML", reply_markup: replyMarkupStr });75  }76 77  if (request && request.id) {78    try { Api.answerCallbackQuery({ callback_query_id: request.id }); } catch (e) {}79  }80 81} catch (err) {82  Bot.sendMessage("⚠️ Shop Menu Error: " + err.message, { parse_mode: "HTML" });83}