Upload
Drop the cards that came back. Empty ones are skipped. Duplicates keep the photo with the number.
Paste a Gemini API key once. SnapOrder keeps it in this browser and writes it to the live server, so a hard refresh or a new push does not ask for it again.
No Gemini key yet. Filename hints still work (qty-12.jpg, empty.jpg). Add a key to read real handwriting.
New cards encode the shop in the QR. Use this only when an older card has no name, or the pile is all one customer.
Upload the whole album. Every photo is scanned. 3-up and 4-up sheets are read from the QR first, then every Qty box on that sheet. Empty boxes stay on the list at 0 so you can type a missed number; a numbered copy wins if the same card comes back twice.
No scan yet. Drop the returned cards, then press Scan quantities.