Barcodes & Scanning
Every scanning screen in Alfred — Inventory Receiving, Stocktakes & Adjustments, and Inventory Transfers — resolves a scanned code the same way. Shopify is the source of truth for a product's own barcodes: Alfred reads the first barcode on each variant and every additional barcode you've added in Shopify, and any of them scans as one unit. On top of that, Alfred lets you add a carton barcode with a quantity, so scanning a case counts the whole case. Your price tags never change because of a scan, and Alfred never writes a carton code to Shopify. When the same code is on more than one product, Alfred doesn't guess — it uses the product already on your list, or asks you which one is in your hand.
Three ways a scan reaches a product
Shopify's first barcode
Counts 1 unit
The barcode in the variant's first barcode slot in Shopify — the one your labels and price tags print. Alfred shows it in Product Configurations as Unit Barcode (Shopify). Editing it there changes it in Shopify, after you confirm.
Additional Shopify barcodes
Count 1 unit
Shopify lets a variant hold up to 20 barcodes — a manufacturer UPC alongside your own code, an EAN, an ISBN. Alfred scans every one of them. They're managed in Shopify, and Product Configurations shows them as a +N chip on the unit barcode.
Alfred carton barcode
Counts the carton quantity
A barcode you add in Alfred for a case, inner pack or carton, with a Qty / Carton. One scan adds the whole quantity — scan a 12-pack's code once and 12 units are counted. It's Alfred-only and is never sent to Shopify.
Key Concepts
Shopify is the source of truth for unit barcodes
Alfred doesn't keep its own copy of your product barcodes to drift out of date. The first barcode comes from Shopify, and additional barcodes are read from Shopify too. If you edit the unit barcode in Product Configurations, nothing changes until you save — Alfred then compares your edits with Shopify and opens 'Publish barcode changes to Shopify?', listing each change as a New assignment, an Overwrite or a Remove from Shopify. Publish writes them to Shopify; Discard puts the current Shopify value back in the table and leaves Shopify untouched. Alfred never edits a variant's additional barcodes, and never writes a carton barcode to Shopify.
Variants with more than one barcode
Shopify now supports up to 20 barcodes per variant, each optionally typed as UPC, EAN, ISBN, GTIN or ASIN. A common setup is to keep your own short code first — so it prints on price tags — and add the manufacturer's UPC as a second barcode. Alfred scans both as one unit of that product, so you can scan the UPC printed on the packaging when stock arrives without changing what your tags print. Add, remove and reorder these barcodes in Shopify; Alfred picks up changes on its own, and the first time someone scans a code Alfred hasn't seen, it checks Shopify on the spot, so a barcode added a minute ago scans straight away.
Carton barcodes and quantities
Shopify's barcodes identify a product — none of them carries a quantity, and scanning any of them at your point of sale sells one unit. A barcode that means '12 of these' only exists in Alfred: set the Carton ID/Barcode and Qty / Carton for the variant in Product Configurations. The carton barcode must be different from all of the product's own Shopify barcodes. If it isn't, scanning it would count one unit rather than a carton, so Alfred marks the field in red and won't save it. Carton barcodes work in every scanning screen, including the outer-case GTIN-14 codes printed on supplier cartons.
How a scan is matched
Spaces around the code are ignored and letters are matched regardless of case, so a scanner with Caps Lock on still works. Leading zeros count: a 12-digit UPC and the same number written as a 13-digit EAN are different codes to Alfred, so store the form your scanner reads. Products deleted in Shopify are never matched, even though Alfred keeps their history. If nothing in Alfred matches, Alfred asks Shopify before reporting 'Barcode not found' — which is why an unknown code takes a fraction of a second longer than a known one.
Scanners
Any USB or Bluetooth scanner that types into a text field works — there's no driver or setup inside Alfred. Scanners that send Enter or Tab after each code submit instantly. Scanners configured without a suffix work too: Alfred recognises the fast, even rhythm of a scanner and submits a moment after the last character. Codes typed by hand never submit on their own — press Enter or tap Add — so a half-typed code is never counted. Long codes are never cut short, even when their first digits happen to form a valid shorter barcode.
Sounds, recent scans and Undo
Each scan answers with a tone once it's been counted: a rising two-note tone for a product that's new to the list, a single note for one already on it, and a low buzz when nothing matched. Turn sounds off with the Sound on button. The Recent scans list shows your last five scans with the line's running total, and Undo reverses exactly what that scan added — a carton scan comes back out by the full carton quantity. Cells changed by a recent scan are highlighted in the table, and if a scan lands on a row you can't currently see, Alfred tells you and offers to show it. Scanning fast is safe: every scan is counted once, however quickly they arrive.
Barcodes elsewhere in Alfred
A barcode means the same thing everywhere in Alfred. Product search and every upload recognise any of a variant's Shopify barcodes — the first one or an additional one: product pickers and search boxes across Alfred, CSV uploads in sessions (one identifier column, SKU or barcode), transfer uploads (a sku or barcode column), purchase order uploads and Smart Import (SKU first, then barcode), Purchase Thresholds (variant ID, SKU or barcode) and supplied-products CSVs. Carton barcodes are the exception: they only work when scanning, because an upload's quantity is already in units. Count sheets print the first barcode, Export label file includes it for label apps like BarcodeMan and CTS, and supplier documents can show it as a Barcode / UPC column — that column is off unless you turn it on, in the PDF export options or as a default under Store Settings. When a value matches more than one product, uploads skip that row and tell you, rather than moving stock on whichever product came first.
How to Use
1. Set up barcodes in Shopify
On each variant in Shopify, put the code you want on price tags first. Add the manufacturer's UPC, EAN or ISBN as additional barcodes. Alfred reads all of them — there's nothing to copy across.
2. Add carton barcodes in Alfred
Go to Configurations → Product Configurations, find the product, and enter the case or carton's own barcode in Carton ID/Barcode and the number of units inside in Qty / Carton. Save. To set many at once, use Upload CSV with the SKU, Carton Barcode and Qty/Carton columns. Blank cells leave existing values unchanged, and the preview tells you why any SKU will be skipped.
3. Connect a scanner
Plug in or pair a USB or Bluetooth scanner. If you can choose, set it to send Enter after each code. Open any receiving session, stocktake, adjustment or draft transfer and click into the scan field — it reads 'Ready to scan…' and turns green when it's listening.
4. Scan
Scan items one at a time, or the carton's barcode to count the whole case. On adjustments, choose Increment or Decrement first. Watch Recent scans for each product and its running total, and use Undo if something was scanned twice.
5. Answer the prompt if a code is shared
If Alfred asks which product you scanned, choose the one in your hand or skip the scan. The next scan picks up where you left off.
Changing a product's first barcode
Edit Unit Barcode (Shopify) in Product Configurations and click Save. Review the Publish barcode changes to Shopify? list and click Publish, or Discard to leave Shopify as it was. A barcode already used by another product's first barcode in Shopify is refused with the product it belongs to, so you can fix one or the other. Bulk changes can come in through Upload CSV — imported unit barcodes are published to Shopify as part of the import, and blank cells leave existing barcodes alone.
Tips & Best Practices
- ✓Keep your own short code first in Shopify if it's what your price tags print, and add the manufacturer UPC second. Alfred scans both, and your tags stay the same.
- ✓Give each case or inner pack its own carton barcode. A 240-unit delivery packed in 12s becomes 20 scans instead of 240.
- ✓Set your scanner to send Enter after each code. It's the fastest and most reliable setup, though Alfred also works without it.
- ✓If the same barcode is on several sizes of a product, receive against the purchase order: Alfred counts the scan on the size that's on the order without asking.
- ✓Use Undo in Recent scans rather than editing a number by hand. It takes back exactly what the scan added, including a full carton.
- ✓Hover the +N on a product's unit barcode in Product Configurations to see every barcode Alfred will recognise for it.