Egidoo Scan

Connect this station

One-time setup. Values come from your Supabase project (Docs → DEPLOY guide).
|||

Egidoo Scan

Scan a badge to start · orders loaded: 0
No worker
scan your badge
online
Ready
Scan a label
Point the scanner at the shipping label barcode. The result shows here.
wedge mode + Enter suffix
—
0
scanned today
0
not scanned
0
labels loaded
0
duplicates
0
unmatched

By worker (today)

By station (today)

TimeStationWorkerOrderTrackingResult
TimeWorkerOrderPlatformTrackingResult
OrderPlatformTrackingExtraScanned

Every PDF import batch, newest first, grouped by day — use it to check whether a folder or file was uploaded before scanning starts. Recorded from v34 on; “Start new day” does not erase it.

—

Everything the system has ever recorded, straight from the server: find any tracking number, order, file or product across all days, browse a whole day's scans, or export the complete tables.

or or
—
Full exports:

Packing errors, by worker. Find the order in the History tab and click Flag error…; it lands here against the worker who scanned it. Error rate = flagged errors ÷ packages that worker matched in the period.

—

Scans that didn’t match any imported order — from every station, straight from the server, so a package scanned at one station can be re-matched from any other. Usually this means the day’s CSV wasn’t imported yet, or the barcode is a format the parser doesn’t know — send me the raw string and I’ll add it. You can re-run all unmatched scans against current orders after importing.

TimeStationWorkerRaw scanBest guess tracking

Add each worker, then print this page (the print view shows only the badges). Laminate them or tape them at the station. Scanning a badge switches the active worker instantly — the badge barcode is EMP-NAME in Code 39, which every scanner reads out of the box and which a Code 128 minimum-length lock (the routing-barcode fix) never blocks.

—
Scans starting with this are treated as worker badges, not labels.
Switch each scanner to USB virtual COM mode (config barcode in its manual), then connect it here. Each scanner gets its own private channel — simultaneous scans can never garble each other. Worker binding works the same: badge in with the scanner once.
Spoken through the PC speakers so workers away from the screen hear problems. Plug in a loud speaker and this carries across the packing area.
Export captures everything on this station — orders, label links, scan log, unmatched, badges, settings — as one file. Import it on another PC (or send it for debugging) to reproduce this station exactly. Importing replaces that station’s current data.

Why some barcodes don’t look like tracking numbers

Carriers pack routing data around the tracking number, or print more than one barcode. This station normalizes every scan before matching, so any of these work:

What you scannedWhat it containsWhat the station does
UPS 1D barcode1Z999AA10123456784Used as-is — this is the tracking number.
UPS MaxiCode (square 2D)A structured routing message with the 1Z insideFinds the 1Z… inside the mess. Better: disable 2D on the scanner.
USPS / Ground Saver second barcode420 07044 92001…Strips the 420+ZIP routing prefix, keeps the tracking.
FedEx Ground (34 digits)9612 0190 … 786 123 456 789Tracking is the last 12 digits — extracted automatically.
FedEx Express (32–34 digits)Form data + tracking at the endSame last-12 rule.
Amazon LogisticsTBA123456789012Recognized directly.
Small barcode above the address420 98936 9035Routing only — no tracking inside. The station says “scan the other barcode.”
Platform package barcodePK-4464876405064450511-0Matched too, if you map that column as “Alt ID” when importing.

Try it without a scanner: click the input box and type 420070449400111899223100000000 or 96121909999999990000000786123456789 after loading the demo data, then press Enter.

Several scanners on one PC

Use 2.4 GHz dongle scanners (one USB receiver each, on a powered hub — not Bluetooth) and configure each scanner, via its manual’s setup barcode, to prepend a prefix: S1-, S2-, … When a worker scans their badge with their scanner, that scanner is bound to them, and every label it scans is credited to them — ten workers can share one PC. Practical note: heavy simultaneous scanning on one PC can occasionally interleave two scans into one garbled string; the station rejects it as “no match,” both workers just rescan. If that happens often, split across two or three cheap PCs.

The pre-scan layer (any barcode matches)

Dual-carrier labels (FedEx Ground Economy, UPS Ground Saver) carry two unrelated numbers, and the platform reports only one. Fix: Orders → Import label PDF — drop in the day’s printed label PDFs (bulk multi-page files are fine, one label per page). The station decodes every barcode on every label right in the browser, no internet needed, and ties each label’s numbers together — after that, whichever barcode the worker scans, it matches. The label_prescan.py command-line tool does the same job outside the browser and its CSV imports via “Import label links”.

Labels-only mode: you can skip the order CSV entirely. Pick the platform in the dropdown, import the label links, and each label becomes a scannable record on its own (tagged “from label”). If you import an order CSV later, matching rows fill in the real order IDs in place — scans and worker credit are kept. The CSV adds two things labels can’t: the platform’s order ID, and orders that were never labeled at all.

Also disable UPC-A / EAN-13 / EAN-8 symbologies in 123Scan — those are the retail barcodes printed on the products themselves. With them off, aiming at the product does nothing at all, same as the routing barcode. The station also recognizes product barcodes and website QR codes and says so, as a backstop.

Scanner setup that prevents 90% of weirdness: put the scanner in keyboard (HID) mode with an Enter suffix, and disable 2D symbologies (MaxiCode, PDF417, QR, Aztec, DataMatrix) so it only reads the 1D Code 128 barcodes — those always carry the number you want.