In a perfume shop, stock keeping starts with the code rather than the name: your phone camera reads the barcode on the bottle or box, the stock drops straight away, and in the evening you get the day’s sales and net profit. Millilitre is one of the units, and you can quote the price per 100 or 500 ml.
The unit is a piece, a millilitre or a box. You quote the price per 1, 100 or 500 ml.
A perfume shop carries many items with names that look alike. So at the till you tap the scanner button and the item goes into the basket by its code — no searching by name.
You choose the shop type “Perfume” when you register (it can be changed later in Profile > Shop details). The unit list then matches that type: piece, millilitre and box.
You can keep an item by the piece or in millilitres — you pick the unit on each product card.
Quote the price per 1 ml, 100 ml or 500 ml. The app works out the unit price itself, while still showing it the way you said it.
To be straight with you: the product card has no separate “volume” field. You put the volume in the name — the 60 ml and the 100 ml of one fragrance become two separate items, so you see how many of each size are left.
You enter the cost and sale price of what arrived. You can also enter “I paid this much in total” — the app derives the price per bottle and shows your markup.
Each fragrance gets a label with its name and a linear EAN-13 code — 1, 4, 8, 12 or 24 copies per tap. Printing the price is optional and off by default: prices change, but the label stays on the bottle.
At intake, the camera button next to the name photographs the label: the name is filled in, along with the barcode, sale price and expiry date if they are visible. Only empty fields are filled. It needs internet and AI enabled for your shop, so check the fields before saving.
Perfume is one of the shop types where an expiry date is asked for, so the intake form shows an expiry field and you can sort your stock by it.
Perfume often goes to people you know, sometimes paid in parts. So credit is recorded at the till itself, not in a separate notebook, and lands in the credit book.
Choose “On credit” as the payment type and the sale lands in the credit ledger at once. It is a separate permission: withhold it and the seller can only take cash and card.
If the customer pays part of it, you enter what you actually received and the rest is calculated into the debt. Only the unpaid part goes into the ledger. One condition: if a discounted item is in the basket, a split payment is not saved yet — finish that sale with a single payment type.
A credit sale asks for the phone number first: an existing customer’s name and open balance appear straight away, and a new one gets a name field.
You can cap a customer with a “no more credit than this” limit or block them entirely. The coloured dot beside each customer is computed from their real payment history.
A perfume shop has a healthy markup but expensive stock. So the question that matters is not “how much did we sell today” but “how much profit is left today”.
A cosmetics shop runs on this same type: units are pieces, ml and boxes, and there is an expiry field. There is no separate colour or shade field — each shade goes in as its own product card (for example “Lipstick, shade 12”).
The shop type sets the price, and it is the same for every shop of that type. In this type AI assistant requests are charged separately (also during the trial): a question — 100 UZS, label reading — 10 UZS. 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 “volume” field on the product card — we will not pretend otherwise. You put the volume in the name: the 60 ml and the 100 ml of one fragrance become two separate items, and the stock list shows how many of each remain. Millilitre is available as a unit, and the price can be quoted per 100 or 500 ml.
The scanner has zoom (1×, 1.5×, 2×, 3×), a torch and a camera switch — exactly what small glossy boxes need. A wrong number from a blurry frame will not reach the basket: the check digit is verified and the same code must be read several times in a row. If it still will not read, type it by hand — at least 6 digits. On a computer you can also attach a USB scanner that types the code and finishes with Enter or Tab.
The app generates an EAN-13 code in one tap. It starts with “20”, so it can never clash with a real factory code. You print a label for it immediately and the item scans at the till like any other. The bars are drawn only for a 13-digit code; for any other length the number itself is printed.
Straight answer: there is no separate “write-off” button yet. You remove such a bottle by correcting the stock on the product card or through a stocktake, which compares the shelf with the records, shows the differences and fixes the stock. An item that has been sold cannot be deleted, as that would break past sales and reports, but you can set its stock to zero.
A credit sale made at the till carries no due date — a dated debt is entered on the “Add debt” screen or from the customer’s card, where you set the name, amount, due date and a note. Overdue debts are flagged automatically and listed on the home screen. Reminder texts are prepared and logged, but no SMS service is connected yet: nothing reaches the customer’s phone, so the reminding is still done by you.
No computer is required: BuySale runs in your phone browser, the Android app downloads from a link on the site, and on iPhone you add it to the home screen from the browser. The Android and Windows apps work offline for up to 7 days; the browser version needs internet. You sign in with your phone number and the one-time code arrives through the Telegram bot.
Inventory software on your phone: stock and intake, fields filled from a label photo, batches and expiry, low-stock alerts, stocktaking and Excel.
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 AI assistant: ask what is left, who owes you and what you earned. It changes a sale price only after you confirm; discounts apply at once.
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