Home / Help Center / pos-app / Products / Scale Sync (PLU)
⚖️ Products

Scale Sync (PLU)

Scale Sync manages the shop side of your weighing scale's PLU (Price Look-Up) table — assign short numeric codes to weighed products, then export a CSV your scale vendor's software can import so printed scale labels and POS billing always agree.

📍 Menu path: Products → Scale Sync (PLU)
👤 Who uses it: All roles that can access Products, on the Advanced plan tier or above
🏷️ Plan tier: advanced+

Overview

Every label-printing weighing scale (Essae, CAS, Aczet and similar) keeps its own PLU table mapping a short item code to a name and price. This page is where you maintain that mapping from the BazaarPOS side and export it in a format the scale's own import tool can read.

The POS reads the same codes back two ways at billing: from the special EAN-13 barcode prefix (20–29) that a scale prints on a weighed label, and from direct keypad entry of the PLU code.

By default the list only shows products already marked "Sold by Weight" or that already have a PLU code, keeping the working list short even in large catalogues.

Before You Start

Step-by-Step Guide

1 Find the products you need to code

  1. By default only products marked Sold by Weight or that already carry a PLU code are shown; untick "Only weighed / coded products" to search your whole catalogue instead.
  2. Use the search box to filter by product name or an existing PLU code.

2 Assign PLU codes

  1. Type directly into a product's PLU Code field — only digits are accepted, and the field is capped at 5 characters.
  2. Or click "Auto-assign" to fill every currently-listed product without a code with the next free sequential number.
  3. A row with a code that collides with another product's code is outlined in red with a "duplicate" label next to it.

3 Save and export the scale file

  1. Click "Save (n)" to write all your pending PLU changes — this is blocked with an error toast if any duplicate codes remain unresolved.
  2. Click "Export Scale File" to download a CSV with PLU, Name, Price, Unit and a fixed "Barcode Prefix" column (20 — the in-store EAN-13 prefix the POS decodes) for every currently coded product.
  3. Import that CSV using your scale vendor's own configuration software to program the physical scale.

Every Field & Button, Explained

Field / ButtonWhat it does
Search product or PLUClient-side filter across product name and current PLU code.
"Only weighed / coded products" checkboxWhen on (default), hides every product that is not marked Sold by Weight and has no PLU code.
PLU Code inputDigits only, up to 5 characters; turns red with a "duplicate" label if the same code is used on more than one visible product.
Auto-assignFills the next free sequential numeric code into every listed product that does not already have one.
Save (n)Writes only the changed (dirty) PLU codes back to their products; refuses to save while duplicate codes exist.
Export Scale FileDownloads a CSV of every currently coded product (PLU, Name, Price, Unit, Barcode Prefix) for your scale vendor's import tool.
Price / Sold By columnsRead-only reference columns showing the current sale price (with "/unit" for weighed items) and whether the item is sold by weight or by piece.

Tips & Best Practices

Troubleshooting & FAQ

A product I expect to see isn't in the list.
Turn off "Only weighed / coded products" — by default the list hides anything that is neither marked Sold by Weight nor already carries a PLU code.
Save is disabled or fails with a duplicate-code error.
Two or more visible products currently share the same PLU code (shown in red with a "duplicate" label) — change one of them before saving; the app blocks saving while any duplicate exists.
What exactly is in the exported CSV, and what do I do with it?
It contains PLU, Name, Price, Unit and a fixed Barcode Prefix ("20") column for every coded product. Import it using your scale manufacturer's own configuration software (e.g. Essae/CAS/Aczet) to program the physical scale's PLU table.
The POS didn't recognise a barcode printed by the scale.
The POS specifically decodes in-store weighed barcodes with an EAN-13 prefix of 20–29. Confirm your scale is configured to print labels with that prefix range, matching the "Barcode Prefix" column in the exported file.

🧑‍💻 Developer Notes

Source component(s):

  • frontend-app/packages/pos-react-lib/src/pages/products/ScaleSyncPage.jsx

Backend endpoints used:

  • GET /products
  • PUT /products/:id

Related tables (db-core repositories):

  • Product

Feature flag key: billing (requires advanced plan tier or above)

Saving is not a single bulk call — the page loops over every dirty product id and issues one PUT /products/:id per changed row with { pluCode }. Duplicate detection is computed client-side across the currently loaded + edited product list before allowing Save.