Help Center

Barcodes and labels

Chris Muench
Chris Muench
  • Updated

Print barcode or QR labels — single labels or full Avery sheets — from the items list, a receiving or an inventory count. Control exactly what appears on each label with the Store Config barcode settings, adjust label sizes and fonts, show dual pricing, and read price- or weight-embedded scale barcodes.

Once your items exist, they need tags on the shelf and barcodes on the product. PHP Point Of Sale generates Code 128 barcodes (and QR codes) for every item and prints them from the places where labeling naturally happens: the items list, a completed receiving, or an inventory count. This article covers every printing path, every setting that controls what appears on a label, and the scale-barcode formats the register can read.

Only items with Is Barcoded checked are included when you print labels. The checkbox is on the item form and is checked by default on new items — if an item refuses to print a label, this is the first thing to check.

The three printing methods

Every place you print labels from offers the same choice of output:

  • Standard Printer (Barcode Sheet / QR code Sheet) — a PDF laid out for 8.5×11 in label sheets such as Avery 8160 (inkjet) or Avery 5160 (laser), 30 labels per page in three columns of ten. Print it on any inkjet or laser printer. When a sheet is partially used, enter the Number of labels to skip so printing starts on the first blank label.
  • Label Printer (Legacy) (Barcode Labels / QR code Labels) — one label per page, sized for a dedicated thermal label printer such as a Zebra ZD410 or LP 2824 Plus with 2×1 in labels. It prints through the browser's print dialog.
  • Label Designer Custom Label Printer — prints one of your saved Label Designer designs, either through the browser or directly to a label printer via PrintNode. This option only appears when your plan includes the Label Designer.
  1. Go to Items and search for the items you want to label. If you filter by category and want subcategories included, enable Include child categories when searching or reporting in Store Config.
  2. Tick the checkbox on each item row. To label every item in the current search result, use Select All — it applies to all items in inventory for the current search, not just the visible page.
  3. Open the Labels dropdown that appears above the list and choose one of:
    • Label Designer Custom Label Printer (if your plan includes it)
    • Barcode Label Printer (Legacy)
    • Barcode Standard Printer
    • QR Code Label Printer (Legacy)
    • QR Code Standard Printer
  4. For the Standard Printer options, a Number of labels to skip prompt appears first — enter how many positions on the sheet are already used, or leave it empty to start at the top.
  5. On the label page, adjust the layout settings if needed (see below), then click Print.
  1. In Items, click an item's name to open its detail popup, then click Print next to Generate Barcodes.
  2. Set Number of QR/Barcodes — how many copies of the label you want. For an item with variations, enter a quantity next to each variation instead, so each size or color prints its own barcode.
  3. Click the button for the output you want: Custom Label (Label Designer), Barcode Labels (Legacy), Barcode Sheet, QR code Labels (Legacy) or QR code Sheet.

Tag new stock before it hits the floor: after you complete a receiving, its receipt page offers the same label actions for exactly the items and quantities on that receiving — one label per unit received.

  • Label Designer Custom Printer, Barcode Labels (Legacy) and QR code Labels print to a label printer.
  • Barcode Sheet and QR code Sheet print full sheets.

Labels printed from a receiving add the receiving number to the label text (for example "(RECV 42)") so a tagged unit can be traced back to its shipment. Turn this off with Disable Receiving Number On Barcode in Store Config. If the receiving line has an expire date (from the item's days to expiration), the expire date prints on the label instead — see receiving stock.

An open inventory count has Barcode Sheet and Barcode Labels buttons at the top, which print labels for the items recorded in the count — the fastest way to tag the untagged product a count turns up. The sheet option asks for the number of labels to skip. See counting inventory.

What appears on a label

A standard label is built from these parts, each controlled by a setting:

  • Company name — shown when Show company name on barcode is enabled in Store Config; uses the location's company name if set, otherwise the store-wide one.
  • The barcode image — a Code 128 barcode with the number printed under it. Hide Barcode On Labels replaces the image with just the printed number.
  • Item name — the item's Barcode Name if you filled one in on the item form, otherwise the item name, plus the size in parentheses when the item has one. Hide Name on Barcodes removes it.
  • Price — bold, next to the name. If a promo price is active, the label shows the regular price struck through and the promo price as the selling price. Hide price on barcodes removes prices entirely.
  • Expire date or receiving number — added when printing from a receiving, as described above.

The number encoded in the barcode is controlled by ID to show on barcode in Store Config:

Option What is encoded
Item Id (default) The internal item id, zero-padded to the Zerofill barcode length (default 10 digits)
Item Number (UPC/EAN/Barcode) The item's item number; falls back to the padded id when the item has none
Product ID The item's product id; falls back to the padded id when the item has none

Label layout settings

The label print pages have a settings panel (hidden when actually printing) that controls the physical layout:

Setting Default What it does
Overall Barcode Width 1.9 (inches) Width of each label
Overall Barcode Height 0.79 (inches) Height of each label
Overall Font Size 10 Base font size for the label text
Barcode Image Width 1 Scale of the barcode image
Barcode Image Height 30 Thickness of the barcode bars
Barcode Image Font Size 13 Size of the number under the bars
Zerofill barcode 10 Pads the encoded number with leading zeros to this length, keeping barcodes uniform when your ids are short

Enter a name under Save Settings Above As and submit to save the whole group as a named preset; the Load Saved Values dropdown restores any preset later, so a 2×1 in Zebra setup and a jewelry-tag setup can coexist. Reset Labels returns everything to the defaults. QR pages have an equivalent Zero Fill QR Code setting (default 10).

Store Config barcode settings

All of these live in Store Config → Barcodes (search for "barcodes"):

  • ID to show on barcode — Item Id, Item Number or Product ID, as described above.
  • Display item name first for variations on barcodes — puts the item name before the variation attributes in variation label text. Off by default.
  • Hide Barcode On Labels — print the number only, no scannable bars. Off by default.
  • Include tax on barcodes — prints tax-inclusive prices on barcode labels. Off by default. There is a separate Include tax on QR codes for QR labels.
  • Hide Expire Date on Barcodes — suppresses the expire date on labels printed from receivings. Off by default.
  • Hide price on barcodes / Hide price on QR codes — remove the price from the respective label types. Off by default.
  • Show dual pricing on barcode labels — see the next section. Off by default.
  • List price label / Cash price label — the captions above the two dual prices; default "List price" and "Cash price".
  • Override markup/markdown percentage — a single percentage used to compute the dual price, overriding the location markup/markdown configuration.
  • Hide Name on Barcodes / Hide name on QR codes — remove the item name. Off by default.
  • Disable Receiving Number On Barcode — stops "(RECV n)" being appended when printing from receivings. Off by default.
  • Show company name on barcode — adds your company name to the top of each label. Off by default.
  • Use RTL barcode library — switches to a barcode renderer that handles right-to-left languages. Off by default.

Dual pricing on labels

If you run a cash-discount or card-surcharge program, labels can carry two prices side by side. Enable Show dual pricing on barcode labels in Store Config → Barcodes. Each label then shows a List price and a Cash price (rename both captions with the label settings above): the higher of the item's price and its marked-up/marked-down price becomes the list price, the lower becomes the cash price. The percentage comes from Override markup/markdown percentage if you set one, otherwise from your store's markup/markdown configuration — use a negative percentage for a markdown. A location with markup/markdown disabled prints single-price labels regardless of the setting. The Label Designer also exposes Dual Pricing Price as a placeable field.

Scale and deli barcodes

Barcode scales print labels outside PHP Point Of Sale with the price or weight embedded in the barcode itself. To make the register understand them:

  1. Open Store Config and search for "scale".
  2. Check Enable Scale.
  3. Choose the Scale Barcode Format your scale prints:
    • UPC-12 4 price digits — 5 item-number digits, 4 price digits
    • UPC-12 5 Price Digits — 5 item-number digits, 5 price digits
    • EAN-13 5 price digits — 5 item-number digits, 5 price digits
    • EAN-13 6 price digits — 5 item-number digits, 6 price digits
    • Weight Embedded Barcode — 5 item-number digits, 6 weight digits
    • Weight Embedded Barcode EAN 13 — 5 item-number digits, 5 weight digits
    • Weight Embedded Barcodes EAN 13 4 price digits — 6 item-number digits, 4 weight digits
    • Weight Embedded Barcode EAN 13 4 Weight Digits — 5 item-number digits, 4 weight digits
    • Custom Format — map all 15 barcode positions yourself: for each digit position choose Not used, Item Number, Unit Price or Weight.
  4. Set Scale Price Divide By (10000, 1000, 100, 10 or 1) — where the decimal point goes in the embedded number. A barcode carrying 1000 with divide-by 10 rings up as 100.0.
  5. Optionally define Tare codes — each with a code, a weight unit (grams, kg, lb, oz) and a tare amount to subtract for packaging weight.

Set up the item to match: create it priced per unit of weight (for example "Meat 1 KG" priced per kilogram) and give it an item number containing only the digits your format maps to the item number — the positions marked "I" in your scale's manual. When a deli label is scanned at the register, the embedded price sets the line total (quantity is derived from price ÷ unit price), or the embedded weight becomes the quantity. Connecting a live weighing scale to the register is a separate feature — see scales, scanners and customer displays.

Label printers and paper

  • Thermal label printer — the supported reference printers are the Zebra ZD410 (USB/Ethernet) and the older Zebra LP 2824 Plus, loaded with 2×1 in labels. Install Zebra's driver on Windows. On a Mac, newer versions of macOS need the third-party driver from the Peninsula Group.
  • Browser print settings — for clean output on a label printer, set all margins to 0 and remove headers and footers: in Chrome open the print dialog, click More settings, and set margins to none with the paper size matching your labels; in Firefox open Page Setup, uncheck print background images, set all margins to 0 and set every header/footer to blank.
  • Sheets — Avery 8160 (inkjet) or 5160 (laser) stock on any regular printer, using the Standard Printer options.
  • PrintNode — Label Designer output can print silently through PrintNode. Select the label printer for each register under Locations (edit the register, Select Label Printer) — see receipt printers, cash drawers and PrintNode.

If your Zebra printer feeds an extra blank label between prints, recalibrate it: hold the feed button until it flashes, release on the group of two flashes, then press feed once — one label should feed, and printing will align again.

Common questions

Why is an item missing when I print labels? Its Is Barcoded checkbox is unchecked on the item form. Only barcoded items are included in label runs.

Can I print a label for each variation of an item? Yes. Open the item's detail popup, click Print next to Generate Barcodes, and enter a quantity next to each variation. Selecting variations in the items list and printing labels also produces per-variation barcodes.

How do I reuse a half-used Avery sheet? Choose a Standard Printer (sheet) option and enter the Number of labels to skip when prompted. The sheet holds 30 labels; skipping 7 starts printing on the eighth position.

Why does the label show a different number than my item number? ID to show on barcode in Store Config decides whether the internal item id, the item number, or the product id is encoded. Items without an item number or product id fall back to the zero-padded internal id.

Can the price on the label include tax? Yes — enable Include tax on barcodes (and/or Include tax on QR codes) in Store Config. Items marked "price includes tax" are handled automatically either way.

How do I get two prices (cash and card) on one label? Enable Show dual pricing on barcode labels in Store Config and set the markup/markdown percentage. The label prints a list price and a cash price with configurable captions.

What barcode type does PHP Point Of Sale print? Code 128 for barcode labels and sheets, plus QR codes on the QR variants. Scanners must be configured to read Code 128 (virtually all are by default) — see scales, scanners and customer displays.

Do gift cards and customers have barcodes too? Yes — gift card numbers can be printed as barcodes (see gift cards) and customer profiles support barcodes for fast lookup (see customer profiles).

Was this article helpful?

0 out of 1 found this helpful

Have more questions? Submit a request

Comments

0 comments

Article is closed for comments.