hayat help
Help › Hayat ERP

Barcode and price labels

hayaterp.com ↗

Print barcode, price and shelf labels for shops, supermarkets, pharmacies and garment stores — from the item list, goods receipts, bills, transfers and counts — on any printer as exact-size PDF pages or A4 sheets, or on Zebra, TSC, Xprinter and Gprinter label printers through Hayat POS on Windows.

Barcode labels puts a price and a scannable barcode on every product and shelf. A supermarket labels what it receives, a pharmacy prints the batch and expiry on each pack, a garment store tags each size and colour, and a shop prints shelf-edge labels with the old price struck through when prices change. Items that have no barcode yet get one made for the label, and it can be saved to the item so the till scans it.

Labels print in two ways:

  • PDF / browser, on any printer: pages at the exact label size for a label printer's Windows driver, or A4 sheets of labels for an office laser or inkjet printer. Urdu and Arabic names print only this way.
  • Printer commands — ZPL (Zebra), TSPL (TSC, Xprinter, Gprinter) or EPL2 (older Zebra and Eltron) — sent straight to a thermal label printer by Hayat POS on Windows, or downloaded as a .prn file.
Where labels come from and how they reach the printer
Where labels come from and how they reach the printer

Who does what

Task Needs In ready-made roles
Inventory → Print labels, every 🏷 Print labels button, and labels in Hayat POS See stock (inventory.view) Admin, Company Admin, Management, Branch Manager, POS Supervisor, Accountant, Sales, Purchase, Inventory, Viewer, Quality Inspector, Pharmacist
Inventory → Label templates, the New barcodes settings, and Save new barcodes to items that have none Receive and issue stock (inventory.edit) Admin, Company Admin, Branch Manager, Purchase, Inventory

Labels from a goods receipt or a bill also need access to that document's company and branch. The Cashier template has no See stock, so a cashier cannot print labels — not on the web and not in Hayat POS; give the till's labelling person a role with it.

  1. Open Inventory → Print labels.
  2. Under Add items, scan a barcode or type a name or SKU and press Enter (or Find). A scanned code that matches one item adds it at once; otherwise pick from the list. Scanning the same item again adds one more label.
  3. Or choose Or load from — Goods receipt (GRN), Purchase bill, Stock transfer, Stock count, Price changes since a date or A batch of one item — pick the Document and click Load. See Labels from documents.
  4. In Labels to print, change the Batch, Expiry and the number of Labels of any line; ✕ removes it.
  5. Choose the Template, and if you need them a Price list (optional) (Shelf price by default) and the Packed / mfg date (today by default). For an A4 sheet that is partly used, set Start at label no. to the first empty label.
  6. Tick Save new barcodes to items that have none if items without a barcode should keep the one made for the label (needs inventory.edit).
  7. Check the Preview (the first 60 labels at their real size) and the warnings under it, then click 🖨 Print n labels.
Print labels: items loaded from a goods receipt, the template and the preview
Print labels: items loaded from a goods receipt, the template and the preview

What Print does depends on the template:

  • PDF templates open the browser's print dialog with pages of the exact size — see Print on any printer (PDF).
  • ZPL / TSPL / EPL templates go to the label printer through the Hayat POS label bridge when it is switched on in this browser; otherwise a .prn printer file downloads. Download .prn is always offered for these templates.

At most 1,000 items and 10,000 labels go in one print.

Labels from documents

Every screen that brings goods in or moves them has a 🏷 Print labels button that opens Print labels with the lines already filled in.

Where How Labels per line
Register → Items Tick items in the list, then 🏷 Print labels (n); or 🏷 Print labels in an item's form One each
Trading → Goods receipts Open a receipt, 🏷 Print labels The quantity received, with the batch and expiry
Trading → Bills Click a posted bill: "Print price and barcode labels for bill …?" → OK The billed quantity, with the batch and expiry; service lines are left out
Inventory → Transfers Open the transfer, 🏷 Print labels The quantity received (else dispatched, else requested), with the batch and expiry
Inventory → Stock counts Open the count, 🏷 Print labels The final counted quantity
Print labels → Price changes since a date Choose Since One per item whose price changed (new items are left out); tick One label per unit in stock for the stock quantity
Print labels → A batch of one item Add the item first, type its Batch no. One, or tick One label per unit in the batch; with the batch's expiry

The Document list shows the 40 most recent documents of the branches you may see; a transfer is shown to both the sending and the receiving branch.

Items ticked in the item list, with 🏷 Print labels (n)
Items ticked in the item list, with 🏷 Print labels (n)

Label templates

Inventory → Label templates (inventory.edit) sets up each kind of label once. A company starts with four PDF templates:

Template For
Product 38 × 25 roll (the default) Name on two lines, price and barcode — supermarket and garment tags
Pharmacy 50 × 30 with batch & expiry Shop name, name in bold, price, barcode, batch and expiry
A4 sheet 3 × 8 (70 × 37) 24 labels on an A4 sheet: shop, name, variant, price, barcode and SKU
Shelf label 100 × 50 Big price with the old price, the Urdu / Arabic name, barcode and SKU
  1. Click + New template, or choose a template on the left to change it.
  2. Type the Name and pick Start from a preset (below) or Custom size.
  3. Choose the Printer language — PDF / browser (any printer), ZPL · Zebra, TSPL · TSC, Xprinter, Gprinter or EPL2 · older Zebra / Eltron — and the Media: Label roll (thermal) or A4 / page sheet. A sheet always prints as PDF.
  4. Under Size (mm) set the Label width and Label height, the Gap between labels (rolls), the Inner padding, and Labels across (rolls with 2 or more labels side by side) or the Columns and Rows of a sheet with its Page width, Page height, Top margin, Left margin, Row gap and Column gap.
  5. For a printer language, set the Printer: Resolution (203, 300 or 600 dpi), Darkness and Speed (inch/s).
  6. Under Barcode and price choose the Barcode type, the Price shown and the Currency text.
  7. In Fields, tick what the label shows and set each one's size, Bold and caption (below).
  8. Tick Default template for the one Print labels opens with, and Active. Click Test print, then Save.

The Live preview shows a sample item (basmati rice 5 kg with an Urdu name, an old price, batch and expiry) at the template's size — the dashed line is the label edge — and for a sheet the whole A4 page. The warnings and, for a printer language, the printer commands are under it.

Limits: labels 10–250 mm wide and 6–300 mm high, 1–12 across, 1–40 rows, fonts 0–72 pt, the name on 1–3 lines. A sheet must fit on its page ("The labels do not fit on the page. Check the size, margins and gaps.").

Presets: roll sizes and A4 sheets

Preset Kind Good for
Roll 38 × 25 mm Roll Supermarket and garment price tags
Roll 38 × 25 mm, 2 across Roll, 2 across 2-up rolls on 80 mm printers
Roll 50 × 25 mm Roll Grocery, hardware, electronics
Roll 50 × 30 mm Roll Pharmacy (batch and expiry), cosmetics
Shelf label 100 × 50 mm Roll Shelf-edge price with old price
Jewellery tag 30 × 15 mm Roll Jewellery, watches, small accessories
A4 sheet 3 × 8 (70 × 37 mm, 24 labels) Sheet Products, files, shelf edges on a laser printer
A4 sheet 4 × 10 (48.5 × 25.4 mm, 40 labels) Sheet Products on a laser printer
A4 sheet 5 × 13 (38 × 21 mm, 65 labels) Sheet Small products, pharmacy, cosmetics

Roll presets have a 2 mm gap (3 mm for the shelf label). Measure your own roll or sheet and change the sizes if they differ.

Fields

Field Caption / text
Shop name Empty = the company name, or your own text
Item name 1, 2 or 3 lines
Urdu / Arabic name Urdu, else Arabic, Urdu or Arabic — PDF only
Variant (size / colour) —
Price, Old price (was) —
SKU A caption, e.g. Code
Barcode Its size is the digits under the bars (0 = no digits)
Batch, Expiry, Packed / Mfg date, Weight Captions B:, Exp:, Pkd:, Net wt: (change them, e.g. Mfg:)
Custom text The text, e.g. Prices include GST

The name, shop name, Urdu name and variant sit at the top; the price row at the bottom (the old price on the left, struck through); one or two detail lines (SKU, batch, expiry as MM/yyyy, packed date, weight, custom text) above it; and the barcode fills the middle — at most 60 mm wide and 25 mm high, a QR code at most 30 mm. The web preview, the PDF, Hayat POS and the printer commands all use the same layout.

  • Expiry comes from the line, else the batch, else the packed date plus the item's shelf life.
  • Weight is the line's weight, else the item's net weight and unit.

Price and old price

Price shown Prints
Shelf price (with promotions) The branch's price with running promotions, as the till would charge
Printed retail price (MRP) The item's retail price
A price list That list's price (the line's or the screen's Price list first)

The Old price is the first of these that is higher than the price: the regular price when a promotion is lower, the MRP, or the price before a change in the last 90 days. Whole rupee amounts print without decimals (Rs 1,250); OMR prints three decimals. Currency text replaces Rs or the currency code.

Barcodes

Barcode type Use
Code 128 (any code) Letters and digits: SKUs, in-store codes
Auto (EAN when valid) EAN-13 / EAN-8 when the code is a valid one, else Code 128
EAN-13, EAN-8, UPC-A Manufacturer barcodes (a UPC-A also takes a 13-digit EAN starting with 0)
QR code Square code; needs room on small labels

A code one digit short of an EAN gets its check digit added. A wrong check digit, the wrong length or letters print as Code 128 with a warning ("barcode … has a wrong check digit (should end in …), printed as Code 128."). Code 128 leaves out characters it cannot encode.

In-store barcodes

An item without a barcode (and without an extra or pack barcode) gets one made for the label. The New barcodes card on Label templates sets how:

  • In-store EAN-13: the EAN-13 prefix (1–5 digits, 21 by default) plus a number not used by any item, with its check digit.
  • Code 128 from the SKU: the SKU itself as the barcode.

A made-up barcode is only on the label until it is saved: tick Save new barcodes to items that have none when printing (inventory.edit), and Hayat writes it to the item's Barcode — the till then finds it. Without it the warning says "… had no barcode; a new one was made for the label but not saved, so the till will not find it."

PDF templates print from the browser's print dialog at the exact size.

A4 sheets on a laser or inkjet printer:

  1. Load the sheet of labels in the tray the right way up.
  2. In the print dialog choose the printer and A4 paper, Margins: None, Scale: 100% (or Actual size) — never Fit to page.
  3. Print one page on plain paper first and hold it against a label sheet to check the line-up.
  4. For a part-used sheet, set Start at label no. on Print labels to the first empty label.

Rolls on a label printer through its Windows driver (any make):

  1. Install the printer's Windows driver.
  2. In Windows → Printers → the printer → Printing preferences, set the paper (stock) size to the label size — for example 38 × 25 mm or 50 × 30 mm — and calibrate the media there or on the printer.
  3. In the browser's print dialog choose that printer and the same paper size, Margins: None, Scale: 100%.

Each page is one row of labels: one label, or the whole row of a 2-across roll.

Thermal label printers

Printer Language Notes
Zebra GK420d/t, ZD220 / ZD230, ZD421, ZT230 ZPL Install the ZDesigner driver. A network Zebra listens on port 9100.
Older Zebra LP 2844 / TLP 2844, Eltron EPL2 QR codes need newer firmware; ASCII text only.
TSC TE200, TE210, TTP-244 Pro, DA210 TSPL Install the TSC driver; network models also use port 9100.
Xprinter XP-360B, XP-365B, XP-420B, XP-470B; Gprinter GP-1324D, GP-3120TU TSPL Many are receipt and label printers in one: put them in label mode (Xprinter: hold Feed while switching on, or use the Xprinter tool). Install the maker's driver; Generic / Text Only also works.

Resolution: most shop label printers are 203 dpi (8 dots per mm); some are 300 dpi (12 dots per mm). Set the template to the printer's resolution or the labels print at the wrong size.

Darkness and speed: start at darkness 10 (ZPL, 0–30) or 8 (TSPL, 0–15; EPL is also 0–15) and speed 3–4. Raise the darkness for faint barcodes; lower the speed for small barcodes at 203 dpi.

Installing the Windows driver: install the maker's driver (ZDesigner, TSC, Xprinter or Gprinter) and check the printer's name in Windows Settings → Printers. Hayat POS sends the commands through that driver unchanged ("raw").

Calibrate the gap sensor

Calibrate whenever you load a roll of another size; otherwise labels drift or every other label comes out blank.

  • Zebra: hold Feed until the light flashes twice.
  • TSC: use the Feed button calibration or the TSC Diagnostic Tool.
  • Xprinter / Gprinter: switch to label mode and calibrate with the maker's tool or the Feed button.

Hayat's printer commands are for labels with a gap between them (die-cut labels): the template's Gap between labels is sent to the printer. For a roll with a black mark on the back, use a PDF template and choose black-mark media in the printer's own driver settings.

Hayat POS prints labels on the till PC's label printer — from its own Labels screen, or for the web app through its local bridge.

Label printer settings

Hayat POS → Settings → Label printer (kept on this PC):

  1. Choose the printer type: Windows printer, raw ZPL / TSPL / EPL (USB), Network label printer (IP, port 9100) (type the Printer IP address and Port) or Any printer, PDF labels.
  2. For a Windows printer type the Printer name as Windows shows it, or tap it in the list under the box. For PDF labels an empty name means Windows asks every time — set the printer's paper size to the label size.
  3. Save label printer, then Test label. In raw mode the test sends a small ZPL label and a small TSPL label; the printer prints the one in its own language and ignores the other.

The Labels screen

In the till's menu, Print barcode labels (or Print barcode labels in the menu of the screen shown when no shift is open):

  1. Scan a barcode, or type a name or SKU and press Enter.
  2. Or choose Or load from — Goods receipt (GRN), Stock transfer, Purchase bill, Stock count or Price changes (last 7 days) — pick the document and Load.
  3. Set each line's number of labels with − and +; Clear empties the list.
  4. Choose the Template; for a sheet, set Start at label no.
  5. Click Print n labels.

Templates with printer commands go raw to the label printer — they need a Windows (raw) or network label printer in Settings. PDF templates go to the printer named in Settings, or through the Windows print dialog. Urdu and Arabic names in PDF labels use a font Hayat POS downloads once; without the internet that line is left off.

Templates, prices, price lists and new barcodes are managed on the web: the Labels screen prints each template with its own Price shown and has no price list or packed-date choice.

The bridge lets Inventory → Print labels on the web send ZPL / TSPL / EPL labels to the label printer of the PC it runs on, through Hayat POS. It works with raw printers (Windows or network), only on Windows, and only while Hayat POS is open.

  1. In Hayat POS → Settings → Label printer, choose a raw label printer (above).
  2. Switch on Let the web app print labels on this printer. Keep the Port (17890) unless another program uses it. Note the Pairing code (New code makes another).
  3. Check Web addresses that may print — https://hayaterp.com by default; add your own server's address, separated by commas.
  4. Save label printer. It says Bridge running on 127.0.0.1:17890. Hayat POS starts the bridge again by itself each time it opens.
  5. On the same PC, in the browser, open Inventory → Label templates and, in Thermal printer on this computer, tick Use Hayat POS label bridge, type the Port and the Pairing code, and click Save on this browser.
  6. Click Check connection: Connected · printer: …. From now on Print on Print labels sends ZPL / TSPL / EPL templates to the printer.
Label templates: the Thermal printer on this computer card
Label templates: the Thermal printer on this computer card
  • Newer Chrome and Edge may ask whether hayaterp.com may access devices on your local network — answer Allow. If the browser blocks it, use Download .prn or print from the Hayat POS Labels screen.
  • The bridge answers only on this PC (127.0.0.1), only the allowed web addresses, and only with the pairing code; it only prints. The bridge setting is kept in that browser only, so do steps 5–6 in each browser that prints.

Troubleshooting

Problem What to check
Blank labels, or every other label blank Calibrate the gap sensor; check the template's Label height and Gap between labels match the roll. Raise the Darkness.
Nothing prints from a thermal printer The template's Printer language must be the printer's (ZPL for Zebra, TSPL for TSC / Xprinter / Gprinter) — a printer ignores commands in another language. An Xprinter or Gprinter must be in label mode.
Print is shifted, too small or split over two labels (PDF) In the print dialog: the label's paper size, Margins: None, Scale: 100%. For a roll, the same paper size in the driver's printing preferences.
Print is shifted on a thermal printer Calibrate; check Label width, Resolution (203 or 300 dpi) and, on 2-across rolls, Left margin and Column gap.
A4 labels do not line up Print on plain paper and compare with the sheet; adjust Top margin, Left margin, Row gap and Column gap.
Barcodes do not scan A long Code 128 on a narrow label is too dense at 203 dpi ("Barcode … may be too long for this label width"): use EAN-13, a shorter SKU or a wider label. Raise the darkness, lower the speed, and never print PDFs scaled to fit.
The till does not find a label's barcode It was made for the label but not saved. Print again with Save new barcodes to items that have none, or type the barcode on the item.
"no room for the barcode; turn some fields off or use a bigger label" Turn fields off, use smaller fonts or a bigger label.
Urdu names are missing Urdu and Arabic print only with PDF templates ("Urdu / Arabic names print only in PDF / browser mode").
QR does not print on an older Zebra QR in EPL needs newer firmware; use ZPL or PDF.
"Hayat POS is not reachable on this computer…" Open Hayat POS on this PC and switch the bridge on; check the port.
"Wrong pairing code…" Type the code shown in Hayat POS → Settings → Label printer again.
"This web address may not print here…" Add the address you use in Web addresses that may print.
"Hayat POS has no raw label printer…" Choose a Windows (raw) or network label printer in Hayat POS.
"Port … is busy or blocked" Another program uses the port: choose another one in Hayat POS and on the web.
"The printer "…" did not print." Check the printer name in Windows Settings → Printers and that the printer is on and loaded.

Workflow

  1. The manager sets up the label templates once and prints a Test print of each.
  2. Goods arrive: after posting the goods receipt, 🏷 Print labels prints one label per piece received, with batch and expiry.
  3. Prices change: load Price changes since a date and print new shelf labels.
  4. New items without a barcode: print with Save new barcodes so the till scans them.

Where the money goes

Nowhere — labels post no journal and do not change stock. Saving a new barcode changes only the item's Barcode field.