CANVAS CHECKOUT SIMULATION

Free GS1 2D Retail POS Test Lab

Run dual-marked packs through a tiny supermarket till. One physical item with two barcodes should still be charged once.

Interactive GS1 2D retail checkout game

Your browser needs Canvas support to run this checkout game.

Press Space to scan, R to repeat the same presentation, number keys 1 through 5 to choose a level, M to reduce motion, and question mark to reopen the briefing. You can also drag the package into the scanner or click Scan Item.

Interactive checkout lab ready.

Simulation uses deterministic fixtures. Real SDK results come only from image decoding.

Keyboard: Space scan · R repeat pass · 1–5 levels · M motion

A teaching simulator, not a certification tool. Synthetic products, prices and events. Real Decode sends the generated or uploaded image to Dynamsoft and reports genuine results, including no-result and errors. It does not prove physical POS readiness or print quality.

THE RULE BEHIND THE GAME

Deduplicate a package presentation, not a GTIN.

A barcode tells the checkout what product this is. It does not tell it which physical package just crossed the scanner. Matching carrier reads inside one presentation become one cart commit; a second package is a new presentation.

01

Read the carriers

EAN-13 supplies a GTIN. The QR carries a GS1 Digital Link URI with AI (01), lot and expiry. Both symbols in the game are real, rendered images.

02

Normalize and compare

The linear value becomes a canonical GTIN-14 and its check digit is verified. Two valid but different GTINs are a conflict, not a race for the scanner to win.

03

Commit once per pass

Same GTIN, same package: one unit. Same GTIN, second physical package: another unit. A permanent GTIN cache would block a legitimate second purchase.

IMPLEMENTATION NOTE

One logical acknowledgement

The pure POS engine groups identities inside one presentation. The canvas only visualizes the result; the SDK adapter cannot override these business rules.

Read the GS1 2D at Retail POS guideline
uniqueGtins = validReads.map(normalize).unique()
if (uniqueGtins.size > 1) needsReview()
else if (presentation.wasCommitted) ignore()
else cart.increment(uniqueGtins[0], 1)
What is dual marking?

A package carries both an established EAN/UPC symbol and a 2D carrier, often to add richer product data during migration. When both represent one item, the POS processes one set of desired data rather than charging twice.

Does Ambition 2027 make EAN-13 invalid?

No. It is an industry POS-readiness goal for defined 2D carriers, not a claim that 1D barcodes stop working in 2027. Existing linear checkout remains part of this lab.

Why does level 4 need two scans?

Each click creates a new physical package presentation. Clicking Repeat Pass explicitly reuses the same presentation and must not add another unit.

What does SDK mode prove?

It shows whether Dynamsoft decoded the generated or uploaded image and exposes the genuine returned text. It does not establish camera grouping, scanner hardware behavior or GS1 certification.