← Files SupershopOSARCHIVED FILE
plugin.json
10.1 KB · Nov 3, 2026 · 19:11 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "supershopos",
"version": "1.1.0",
"description": "SupershopOS is a retail management system for grocery stores and supermarkets in Bangladesh. It covers point of sale with barcode scanning and price look-up codes, stock tracked by batch and expiry date, suppliers, and VAT-compliant receipts. This app lets a store's owner and staff work with their own live store records in plain language.",
"author": {
"name": "ZM TECH",
"email": "support@supershop.work",
"url": "https://supershop.work"
},
"homepage": "https://supershop.work",
"license": "UNLICENSED",
"keywords": [
"grocery",
"supershop",
"point of sale",
"inventory",
"bangladesh"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "SupershopOS",
"shortDescription": "Your store's own numbers",
"longDescription": "SupershopOS is a retail management system for grocery stores and supermarkets in Bangladesh. It covers point of sale with barcode scanning and price look-up codes, stock tracked by batch and expiry date, suppliers, and VAT-compliant receipts. This app lets a store's owner and staff work with their own live store records in plain language.\n\nAsk what came in today, split by cash, bKash, Nagad, card and bank, to see what should be in the till. Ask which products are below their reorder level, with a suggested order quantity, so that everyday staples do not run out. Ask what has been written off as damaged or expired, by reason and by product. Ask which stock has not sold in 90 days and what it is worth at cost. Ask how much is owed to each supplier and how long each balance has been outstanding.\n\nWith the owner's permission, the app can also record changes. It can ring up a sale, creating a real invoice with a receipt number that takes the payment and updates stock; the assistant confirms the items and the total with the owner before anything is recorded. Refunds stay in the SupershopOS app, behind a manager PIN. It can void a sale within 24 hours if it was entered by mistake: the stock is returned, the payments are reversed, and any amount charged to the customer's store credit account (khata) is credited back. Voiding is off unless the owner grants it specifically, because it is not part of any standard permission set, and the assistant reads the invoice back and asks for a clear yes every time.\n\nIt can also open or close a branch's cash drawer against the cash counted; create an item, or change a price, an aisle location or a reorder level; add a product photo through a single-use upload link, and arrange and remove product photos; receive a batch with its expiry date, or receive one serialized unit by its serial number; log an expense; add a supplier; raise a draft purchase order; and record a customer's payment against what they already owe.\n\nSome actions can send a message, and only to people already in the store's records. A sale that names a customer can send that customer one receipt SMS (off by default). A sale that adds to a customer's store credit sends the owner one Telegram message (on by default, if Telegram is linked) and can send that customer one SMS (off by default). Voiding a sale can send the owner one alert, by Telegram or SMS (off by default). No tool accepts a phone number or message text from the chat.\n\nSome changes are also visible to the public. Creating or changing an item or its photos updates the store's online storefront and marketplace listing. If the owner has connected a Meta commerce catalog (off by default), that product is also included in the next hourly sync to Meta, which shows its price, photo and availability on the store's Facebook or Instagram shop. Ringing up or voiding a sale, and receiving stock or a unit, change the availability those pages show. Recording a customer's payment updates the balance on the customer's shared statement link. No tool accepts a Meta account, a recipient or message text from the chat.\n\nWhen you add a packaged product, the app can search a shared catalog of grocery and household products, so the new item starts with the correct brand, pack size, barcode and product image. Local and unbranded goods, such as loose rice or homemade items, are usually not in the catalog.\n\nMany items are sold loose by weight or volume, so quantities are shown in each item's own unit rather than as a number of packets.\n\nThe app only accesses the single store that the signed-in user belongs to, and it cannot reach any other business's data. Amounts are in Bangladeshi Taka, dates and times follow Bangladesh time, and both Bangla and English are supported.",
"developerName": "ZM TECH",
"category": "Business & Operations",
"capabilities": [],
"websiteURL": "https://supershop.work/",
"privacyPolicyURL": "https://supershop.work/privacy",
"termsOfServiceURL": "https://supershop.work/terms",
"defaultPrompt": [
"What came in yesterday, and how much of it was cash?",
"Who do I owe, and how old is it?",
"What am I losing to damage and expiry?"
],
"composerIcon": "./assets/icon.png",
"logo": "./assets/logo.png",
"supportURL": "https://supershop.work/contact"
},
"publication": {
"release_notes": "SupershopOS for ChatGPT: ask about your grocery store in plain language - today's takings by payment method, low stock, write-offs, slow stock and supplier balances - and, with the owner's permission, ring up a sale, receive stock or record a payment. Every change is confirmed first."
},
"review": {
"demo_recording_url": "https://youtu.be/bNmvqwqChvU",
"test_cases": {
"positive": [
{
"description": "The daily-close question, asked the morning after. get_cash_position resolves \"yesterday\" in Asia/Dhaka and splits money received by cash, bKash, Nagad, card and bank.",
"prompt": "What came in yesterday, and how much of it was cash?",
"tools_triggered": "get_cash_position",
"expected_behavior": "Yesterday's total received and the cash share, by method, from the tool. Credit sales not yet paid are not counted as money received."
},
{
"description": "A spoilage question. get_wastage returns UNITS written off by reason and the products losing most. It carries no Taka value, so none may be invented by multiplying by a price.",
"prompt": "What am I losing to damage and expiry this month?",
"tools_triggered": "get_wastage",
"expected_behavior": "Units written off this month by reason and the worst products, from the tool. No Taka figure unless the owner asks and it is said to be an estimate."
},
{
"description": "A stock question on a loose good. list_products with q=\"rice\" returns stock_qty in the item own unit, kilograms for loose rice. Converting to packets needs a pack size the tool did not return.",
"prompt": "How much rice do I have?",
"tools_triggered": "list_products",
"expected_behavior": "On-hand rice in kilograms for loose stock and in packets for packaged rows, each read back as returned."
},
{
"description": "Payables with aging. get_suppliers returns each supplier balance, the total payable and the 0-30/31-60/61-90/90+ split. A positive due is money the store owes OUT.",
"prompt": "Who do I owe, and how old is it?",
"tools_triggered": "get_suppliers",
"expected_behavior": "Suppliers owed, largest first, with the total payable and its aging buckets, presented as money the store owes."
},
{
"description": "Catalog lookup then create. search_catalog resolves the packaged item with its pack size; create_product writes it into this store catalog with the catalog link. Tk 195 is 19500 paisa.",
"prompt": "Find Pran Soyabean Oil 1L in the catalog and add it at 195 taka.",
"tools_triggered": "search_catalog, create_product",
"expected_behavior": "The catalog match is confirmed, then one new product at 19500 paisa linked to it. A duplicate is reported, not created twice."
}
],
"negative": [
{
"description": "The loose-goods trap. Stock held in kilograms cannot be reported as packets without a pack size the tool does not return; dividing by a guessed size gives a wrong but confident number.",
"prompt": "How many packets of rice do I have? (asked about an item whose stock is held in kilograms)",
"tools_triggered": "list_products",
"expected_behavior": "The stock in kilograms, with a plain statement that a packet count needs a pack size that is not on record. No packet number is invented."
},
{
"description": "A cross-tenant ask. No tool takes a business or tenant parameter; the business comes from the access token, so no call can reach another shop. The failure to avoid is relabelling this business's own figures or inventing one.",
"prompt": "What's the other supershop in this market charging for sugar this week?",
"tools_triggered": "",
"expected_behavior": "A statement that other stores' prices are not visible to this connector. No tool call and no invented figure."
},
{
"description": "A bulk write built from the wrong tool. There is no invoice review path on this server, and looping receive_stock per line would commit stock with no review.",
"prompt": "Here's a photo of an 18-line supplier invoice - receive all of it.",
"tools_triggered": "",
"expected_behavior": "A statement that a multi-line supplier invoice is received in the app, where it is reviewed. receive_stock is not looped over the lines."
}
]
},
"commerce": false
},
"apps": "./.app.json"
}
}
}
SHA-256: f28012b645ed577783fd5fbf8c8a12f77f6fec6ca0c72d465a42364aebde916e