Bread, milk, weighed goods and a queue that will not wait. In BuySale items are scanned one after another, the weight from a scale label drops into the basket by itself, and goods close to their expiry date gather into their own list — all on your phone.
You scan the label the scales printed and the weight is read out of the code. Intake also shows an expiry field.
The scanner stays open while you sell: you hold up items one after another and anything that is in the database with enough stock lands in the basket by itself. The bottom of the screen shows the basket name, how many different items it holds and the total. If the code is not in the database the scanner closes and offers to attach that code to a product, so next time it is found at once.
This part opens for shops of the grocery type. Each weighed product is given a scale number (PLU) in the app and the same number is entered into the scale itself — a one-time setup, after which the seller types nothing. How the code is built, the difference between formats 22 and 21, and scale setup — in the scale-label guide.
The product card in stock has a scale-number section: you set a five-digit number and the app shows a sample code you can test.
The scale must be set to print the in-store label format: a 13-digit code starting with 22 for weight or 21 for price.
As soon as the label is read, both the product and its weight are in the basket. If the number is attached to no product, the app says so instead of quietly adding the wrong item.
In grocery, money leaks in two places: an expiry date nobody noticed and an empty shelf. Both turn into a list of their own in the stock records.
When the same item arrives twice, each delivery is stored as its own batch with its own date and expiry. Sales take the earliest expiry first, and the card shows how much is left in each batch and lets you correct the date.
Items with a week or less left appear as a separate list on the home screen and in stock. One tap puts a discount on the whole list, and the discounted price is the same at the till, on the receipt and in the profit figures.
Each product has a low-stock threshold — five units by default in grocery, or your own number. Once stock drops below it, the item turns yellow on the home screen and in stock.
A neighbourhood shop cannot avoid credit. Choose “on credit” at the till and it asks for the phone number first: an existing customer shows their name and open balance at once, a new one gets a name field. The debt goes into the credit book by itself.
If the customer hands over part of the money you type that amount into the “paid now” field, and the rest is worked out and written as debt.
When the money comes in you add it to the debt: partial payments simply reduce the balance and more than the balance is refused. Payments taken during the day also count into the shift’s cash.
Every customer carries a coloured dot worked out from their real history: how many debts they closed on time and how many days late they usually run. When care is needed, a warning appears as you write the debt.
You can cap a customer at a limit or block them outright — past the limit no new debt is recorded.
The day’s summary arrives in Telegram at the hour you choose, with no need to open the app: sales, cash/card/credit, profit, expenses, what went on credit and what is running out. The default is 22:00 and you can move it between 18:00 and 23:00 or switch it off; it needs the owner to have opened the Telegram bot.
The shop type sets the price, and it is the same for every shop of that type. In this type AI assistant questions are not charged separately. Prices for every type and what they include are on the pricing page; what other programs charge is in our shop software price research.
Billed daily with no monthly contract; nothing added for staff, tills or product counts; setup costs nothing; 7 days free. Not a fiscal cash register.
The figure above is the current price for this shop type. Published prices of other programs are collected on the “Shop software prices” page, with source links and the date each was checked.
There is no separate “mini market” type: a grocery shop and a mini market both register in the app as “Grocery”. That type is what turns on everything described on this page — scale labels, batches and expiry dates. The price is 6 630 UZS a day, 198 900 UZS per 30 days.
Yes, if the scale prints an in-store label: a 13-digit code starting 22 for weight or 21 for price, with a five-digit item number. You assign that number to the product in the app and enter it into the scale. If your scale cannot print such labels, the weight is typed in the basket by hand.
A phone camera is enough. On Android the browser’s own decoder does the reading — the fastest route; the iPhone has no such decoder, so the code is read by the app’s library and can be slower. On a computer a USB scanner that sends Enter at the end of the code works too — step out of the price or quantity field before scanning, or the first two characters land there.
No. A BuySale receipt is an ordinary sales slip: shop name, date, seller, items, total and payment type. It carries no fiscal mark and no tax QR code, so it does not replace a fiscal till. Receipts print through the browser’s print dialog, and the paper width is chosen once for the whole shop — 58 or 80 mm.
No. The scanner does not read Data Matrix marking codes, and BuySale is not connected to the Asl belgisi system — the software sends nothing to any state system. In BuySale such goods are tracked by the ordinary barcode on the pack (EAN or UPC), or, if there is none, by an in-store code with a printed label. Check with the tax office (soliq.uz) or your accountant which of your goods fall under mandatory marking and what selling them requires.
In the Android or Windows app, yes: sales, debts and payments are queued for up to 7 days and sent to the server automatically once the connection is back. In the web version in the browser a sale cannot be recorded without a connection, so it is best to install the app at the till.
There is no separate write-off button yet. Such goods are removed through a stocktake: you scan what is on the shelf and the stock figure is corrected to reality. That is why the expiring-soon list matters — selling at a discount beats throwing the goods away.
Seeing the cost price is a separate permission: without it neither cost nor profit is sent to the employee — not on screen and not in the Excel file. Selling on credit, refunds and reports are separate permissions too. A seller signs in with the shop’s number and their own 4-digit PIN. You get a Telegram notice when they do — this needs the Telegram bot to have been opened, and the notice can be switched off in settings.
Yes — the second shop is opened as a branch: no separate sign-up, both shops sit under one account and one balance, and you switch between them in one tap. Stock, sales and profit are kept per branch and never mix; goods move from one shop to the other as a transfer. Today’s sales and profit for both shops arrive with a total in the evening Telegram report, while the in-app reports stay separate for each branch. How to open one and what it costs — on the branches page.
How a scale label barcode works: the 22 or 21 prefix, the PLU number, weight or price — and how to set up a label-printing scale to work with BuySale.
Learn more →The app builds the low-stock list itself and suggests how much to order from the last 30 days of sales. Copy the list or print it as an A4 sheet.
Learn more →A customer credit ledger app: sell on credit at the till, find the customer by phone, take partial payments. Debtors, due dates and payment habits in one place.
Learn more →BuySale pricing by shop type: from 6 630 UZS a day, 198 900 UZS per 30 days. 7 days free and no setup fee.
Learn more →9 shop types — grocery, pharmacy, clothing, hardware, jewellery, perfume, phones, household goods and other: the fields and price of each.
Learn more →
7 days free, no payment card needed. Then from 6 630 UZS a day, depending on the shop type.
Start for freeBuySale assistant
Answers from what is published on this site
AI can make mistakes — check anything important via Telegram.
Writing an answer