Software for grocery shops and mini markets

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.

Try 7 days freeNo payment card needed
Try tapping it

The grocery till — open it yourself

You scan the label the scales printed and the weight is read out of the code. Intake also shows an expiry field.

  • Scale labels are read
  • Intake asks for the expiry date
  • Low stock warns you
Tap the screen
9:41
Kassa
Non
qoldiq: 40 dona
4 000 so’m
Guruch Lazer
qoldiq: 31 kg
18 000 so’m
Sut 1 l
qoldiq: 9 dona
12 000 so’m
Savat 1
Jami34 000 so’m
NaqdKartaQarzga
Sotuvni yakunlash
Mahsulot nomi
Guruch Lazer
Shtrix-kodixtiyoriy
4780000123456
Qancha keldi (kg)
50
Srokixtiyoriy
kk.oo.yyyy
Sotuv narxi (1 kg)
18 000
Kirimni saqlash
Asosiy
Bugungi savdo
842 000 so‘m
Sof foyda
210 ming
Sotuv
37
Qarzga
120 ming
Qarzdorlar
1,2 mln
Qarzim
380 ming
Sof balans
820 ming
Eslatma
Postavshik
Hisobot
Xarajatlar
Ombor
AI yordamchi
Ombor
Coca-Cola 1.5L
14 000 so‘m
23 dona
Non
4 000 so‘m
40 dona
Choy Ahmad 100g
22 000 so‘m
12 dona
Guruch Lazer 1 kg
18 000 so‘m
31 dona
Paxta yog‘i 1 l
24 000 so‘m
17 dona
Makaron 400g
9 500 so‘m
54 dona
Shakar 1 kg
12 000 so‘m
3 dona
Guruch Lazer 1 kg
18 000 so‘m
4 dona
Sut 1 l
Srok: 2 kun qoldi
9 dona
Tvorog 250g
Srok: 5 kun qoldi
6 dona
AI yordamchi
Bugungi savdo va foyda qancha?
Telegramga yubor
Kim qarzdor va kim kechiktiryapti?
Nima tugayapti, nima buyurtma qilay?
Telegramga yubor
Savdoni hisoblayapman...
Kim qarzdor?Nima buyurtma qilay?Qaysi tovar yotib qolgan?
Savolingizni yozing...
Mijozlar
Aziz aka
+998 90 123 45 67
420 000 so‘m
Dilnoza opa
+998 93 555 12 34
85 000 so‘m
Bek aka
telefon kiritilmagan
150 000 so‘m
Nodira opa
+998 91 777 08 22
0 so‘m
Sardor aka
+998 94 210 33 15
260 000 so‘m
Malika opa
+998 99 604 77 41
45 000 so‘m
Qarz yozish
Bosing va gapiring
Masalan: “Karim akaga 120 ming so‘m, shanbagacha”
0so‘m
Mijoz ismi
Karim aka
Qarzdor telefoni
+998 90 123 45 67
Muddatixtiyoriy
kk.oo.yyyy
Izohixtiyoriy
Qarz yozish
Profil
Balans150 000 so‘m · 12 kun
Do‘kon ma’lumotlari
TilO‘zbekcha (lotin)
Karta raqami•••• 9012
Skaner ovoziKod o‘qilganda “bip” chiqadi.
Chek printeri80 mm
Yorliq printeri40×30 mm
Kechki hisobot22:00
Xodimlar (sotuvchilar)

The till keeps up with the queue

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.

Scale labels: the seller never types the weight

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.

01

Give the product a scale number

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.

02

Enter that number into your scale

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.

03

At the till you simply scan

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.

Expiry, stock and ordering — all in plain sight

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.

Batches and expiry

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.

Expiring soon and discounts

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.

Low-stock warning

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.

The credit ledger — “I will pay later” stops getting lost

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.

Paid part of it now

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.

Taking a payment

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.

Who can be trusted

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.

A limit

You can cap a customer at a limit or block them outright — past the limit no new debt is recorded.

Net profit arrives by itself in the evening

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.

What it costs for a grocery shop or mini market

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.

BuySaleUs
Price
6 630 UZS/day — 198 900 UZS per 30 days
What the price includes

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.

What shop owners ask

Which shop type should I choose for a mini market?

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.

Will my scale work with BuySale?

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.

Do I need a scanner or is a phone enough?

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.

Is the receipt valid for tax purposes?

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.

Does it work with Asl belgisi product marking?

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.

If the internet drops, can I keep selling?

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.

How do I write off spoiled or expired goods?

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.

Can I hide cost and profit from my seller?

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.

If I open a second shop, will I see both in one place?

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.

Related pages

BuySale

Try it today and see the difference tomorrow.

7 days free, no payment card needed. Then from 6 630 UZS a day, depending on the shop type.

Start for free