Barcodes and labels: a practical guide for shop owners

Which codes a phone camera reads, what to do when a small tag will not scan, how to create a code for goods with no factory barcode, and how to print labels on an A4 sheet or a roll printer.

Try it freeNo payment card needed

Which barcodes a phone camera reads

Tapping the scanner button at the till opens the phone camera and reads the code. Most goods arrive with an EAN-13 — the thirteen-digit code on the packaging. Beyond that, the app recognises several more formats:

  • EAN-13 and EAN-8 — the most common codes on factory packaging.
  • UPC-A and UPC-E — frequently seen on imported goods.
  • Code-128 and Code-39 — on warehouse and supplier tags.
  • QR codes — on jewellery tags and other labels printed with a QR.

Formats outside that list are not read: ITF-14, Code-93, Codabar, Data Matrix and PDF417. ITF was left out on purpose — it can read only part of a code and return a wrong short number, putting a different product in the basket. For the same reason the Data Matrix (track-and-trace) code on a medicine box is not scanned: in a pharmacy, goods are tracked by the ordinary barcode on the box or by the shop’s own code.

What these codes actually look like

The images below are not taken from the internet or drawn by hand. They are produced by the very module the app uses to print labels and tags, so a code printed in your shop looks exactly like this. Point your phone scanner at this screen and check for yourself.

Sample EAN-13 barcode encoding 4780069000154

EAN-13

4780069000154

The most common code on factory packaging: thirteen digits. The last one is a check digit the app verifies on every read, so a misread code never reaches the basket. A 478 prefix means a manufacturer registered in Uzbekistan.

Sample UPC-A barcode encoding 036000291452

UPC-A

036000291452

Common on imported goods — twelve digits. It is really an EAN-13: add a leading zero and you get exactly this image. That is why the scanner reads both formats the same way, with nothing to configure.

Sample shop-generated EAN-13 code encoding 2000000000121

The shop’s own code

2000000000121

For goods with no factory code — a dress from a seamstress, a gold bar, something bought at the bazaar — the app creates a code itself: one button during intake. Such codes start with 20, a range reserved for in-store codes that can never collide with a manufacturer’s.

Sample QR code containing the number 1135663249642778

QR code

1135663249642778

Used on jewellery tags and wherever space is tight. A QR holds a longer number and reads from any angle — even if the tag has twisted round. On a small tag it is more reliable than a linear barcode.

Code-128 and Code-39 appear on supplier and warehouse tags. The scanner reads them too, but there is no picture here: the program has no module that draws them, and an invented image would defeat the point of this page. The four codes above are exactly what comes out of your printer.

Getting the scanner to read well

Many phones have several rear cameras, and not all focus well up close. A button inside the scanner switches between them, and your choice is remembered on that phone.

  • Zoom — 1×, 1.5×, 2× and 3×. Magnify a small tag instead of shoving the phone into the code.
  • Torch — switched on with a button for a dark shelf or a shaded corner.
  • Distance — hold the code mid-frame, about a hand-span away; too close and the camera loses focus.
  • Light — on glossy packaging, tilt the phone so the lamp’s reflection does not cover the code.

The moment a code is read you get a short beep, the phone vibrates and the screen flashes — you know without looking. If the product is not in your database the sound is lower and comes twice. To keep a wrong number out of the basket the app checks the code’s check digit and requires several identical reads in a row, which is why a code can feel like it reads a beat late.

On Android the browser’s own engine does the reading — the fastest route. The iPhone has no such engine, so a library inside the app reads instead and can be slower.

What to do when the scanner stops reading

The most common cause is a stale camera or zoom choice. If the scanner sits open for several seconds reading nothing, and that happens twice in a row, the choice saved on that phone clears itself and the scanner starts fresh next time. While the camera is open there is a “Reset scanner” button at the bottom of the screen, showing which camera is running and how many frames have been checked.

That does not fix everything — a dirty lens, a camera permission never granted, or a worn-out label will still not read. Then you type the code by hand, in the field inside the scanner or the search bar at the till. It takes at least six digits to count as a code.

A shop on a computer can also use a USB scanner such as a Honeywell: it connects as a keyboard and must send Enter or Tab after the code. The code then lands in the right place on the sale, intake and return screens. If the cursor sits in another field the first two characters can end up there, so during intake it is better to scan while outside the price or quantity box.

Attaching an unknown code to a product

If a scanned code is not found the scanner closes, but the code is remembered and a product list opens: tap the right product and the code is attached to it, so next time it is found instantly. This is the quickest way to teach your shop its codes. If the code already belongs to another product, the app says so instead of moving it silently.

One product can arrive with a case code, a pack code, or both an old and a new code. You attach them all to a single product card: whichever is scanned, the same product is found and stock comes off one place.

Generating your own code for goods that have none

Home-made goods, something bought at the market, a piece of jewellery — none come with a factory code. For these the app creates its own EAN-13 in one tap: the code starts with “20” and has thirteen digits — “20”, a shop number, an item number and a check digit. Codes beginning with “20” are never issued to manufacturers, so yours cannot clash with a real factory code. As soon as it is created you print a label for it.

In jewellery and phone shops every item is its own card, so if the number on the tag is taken, the new item gets the shop’s internal code. One more thing: scan a product with a factory code at goods-in and, if it is in the central catalogue, its name and section fill in (more than 1,700 verified products as of 3 October 2026). If it is not there, you type the name yourself.

Need a code or two outside the app — say, for a label design? The free barcode generator makes an EAN-13 starting with 20 and lets you download it as SVG or PNG.

Printing labels: an A4 sheet or a roll printer

Labels come out in two ways. Which suits you depends on your printer — both print straight from the app, with no extra software.

An ordinary printer, A4 sheet

An ordinary printer fits several labels onto one sheet. You will have to cut them out, but you need not buy a separate printer.

A roll (label) printer

On a roll of self-adhesive labels each one prints as its own page — no cutting and no glue.

When the bars are drawn and when only the number prints

The black bars are drawn only for a thirteen-digit EAN-13 — including the shop’s own code starting with “20”. For a code of any other length the label carries the digits themselves rather than bars, and the scanner cannot read it: the code has to be typed by hand.

The jewellery tag — with a QR code

In a jewellery shop the tag is narrow and long, carrying rows for karat, size, weight and stone, plus a QR code. A linear barcode does not fit a tag that narrow, whereas a QR can carry even a long number. The app’s scanner reads QR codes, so an item is found by its tag at the till and during a stocktake.

You set the printer up once

Receipt and label sizes are saved to the shop, not the device. Set them once and every other phone and computer in the shop — including a cashier’s, who cannot open the settings — picks up the same sizes next time the app is opened. More in the receipt and label printer guide.

01

Open the Profile section

The app’s “Profile” section has two rows, “Receipt printer” and “Label printer”, visible to the owner and to an employee granted the settings permission.

02

Set the size

Choose the receipt roll width (58 or 80 mm) and the label size, from the presets or by typing your own.

03

Run a test print

One tap prints a test receipt or label. The test goes through the real print path, so what you see on paper is what you get in a sale.

04

Pick the printer in the print dialog

Receipts and labels come out through the browser’s print dialog: pick the printer there and set the scale to 100%. The app does not connect to a printer directly, by Bluetooth or through a driver.

Frequently asked questions

Do I have to buy a barcode scanner?

No — the phone camera reads the code. A shop on a computer can also use a USB scanner such as a Honeywell: it connects as a keyboard and must send Enter or Tab after the code. The app does not connect directly to a Bluetooth scanner or printer.

The scanner will not read a small tag — what should I do?

Set the zoom to 2× or 3×, turn on the torch and use the button inside the scanner to switch to another rear camera — not every phone camera focuses well up close. If that fails, tap “Reset scanner” or type the code by hand: six digits are enough.

The code I scanned is not in the database — does the sale stop?

No. The scanner closes, but the code is remembered and a product list opens: tap the right product and the code is attached, so next time it is found at once. If the code belongs to another product, the app tells you.

Could a code I generate clash with a factory code?

No. A shop’s own code always starts with “20”, and such codes are never issued to manufacturers. The rest holds a shop number and an item number, with a check digit at the end.

Does it read the square code on a medicine box or the ITF on a case?

No. The scanner reads EAN-13, EAN-8, UPC-A, UPC-E, Code-128, Code-39 and QR; Data Matrix (track-and-trace), ITF-14, Code-93, Codabar and PDF417 are not. If a case carries an ITF code, attach the ordinary pack code of the goods inside, or generate the shop’s own code.

Does it read a label printed by a weighing scale?

In a grocery-type shop, yes. Each item sold by weight gets a scale number (PLU) in the app, and you enter that number into your scale; the scale must print labels in the in-store format — a thirteen-digit code starting with 22 for weight and 21 for price. In other shop types this section is not shown.

Prepared by: the BuySale team · Spotted a mistake? Tell us on Telegram

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