1 PICK LIST
›
2 BIN
›
3 PRODUCT
📦 Multi-Item Order
Item 1 of ...
Scan a Pick List QR code to begin
📋 Today's Cycle Count ▼
A small daily list of SKUs to physically recount, so drift gets caught early. Tap Count to enter what you actually find, or Skip for today.
📦 New Stock
↩ Returns
➕ Found
➖ Remove/Lost
🔧 QC Hold
🔓 QC Release
⚖ Set True Count
📤 Dispatch Out
⇆ Transfer
📦 New Stock In
Scan or type the SKU or ASIN barcode of the product being brought into stock, enter the quantity, then submit. This adds to live stock immediately.
Product — scan or type the SKU or ASIN
Bin
💾 Bulk Upload (CSV)
For many rows at once. Download the template, fill it in Excel, then upload it here. v80: the template is now a real Excel file — drop-down on the Action column, filters, an Instructions sheet and worked sample rows, so there is no guessing what to type. Save it as CSV before uploading. Action can be: INBOUND, RETURN_IN, FOUND, LOST, REJECTED, QC_HOLD, QC_RELEASE, TRANSFER (needs both Bin and ToBin), or DISPATCH (stock leaving for an order — put the order number in the ToBin column).
📦 Bin Lookup
Type a SKU or ASIN to see every bin holding it, or a bin code to see everything in that bin. Bins are created automatically the first time you use them — there is no fixed list to be limited to.
Live Stock (0)
Loading...
📜 Scan Log (0)
- No scans yet
🗃 Database
Every product listing, with every field from Excel tab 6. Only an Admin or Supervisor sees this tab. Changes ask for your own PIN, are written to the Audit Log, and reach Excel tab 6 on its next open or SYNC NOW. Cost and price fields are shown only after your PIN.
🗄 Bins ▼
📊 Owner Dashboard
🔍 Filters
Loading...
📦 Stock Status
📁 Category Breakdown
🏷️ ABC Tier
🏭 Bin UtilizationTop bins by units, within selected date range
🔥 Top MoversBy transaction volume, within selected date range
📈 Daily Activity TrendUnits in vs. out, within selected date range
👤 Staff PerformanceTransactions per employee, last 14 days
👤 Today — Staff Breakdown
Loading...
📅 Last 14 Days — Staff Performance
Loading...
Active hours are estimated from scan activity, not shift records — use as a rough guide, not a precise measure.
📋 Daily Workflow
- In Excel: paste orders in 4. Order Entry (cols A–D only; Product & ASIN auto-fill from SKU Database)
- Run Step1 → Step2 → Step3_GenerateBarcodes → print 6. Print Picklist
- Open this app → tap the blue 📷 camera button → scan the Pick List QR (col H)
- Go to the bin → scan the Bin QR sticker on the shelf
- Scan the SKU barcode or the ASIN barcode on the product
- If Qty > 1: scan once per unit until all are confirmed
- Tap CONFIRM
📷 Camera — How to Open & Scan
- Tap the blue camera button inside the app (in the scan bar at the top)
- Tap Allow when Chrome asks for camera permission
- The camera overlay will open — point it at a barcode or QR code
- Supported formats: QR Code, Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E, ITF, DataMatrix, PDF417, Aztec
- Tap the floating ✕ button (top of the camera view) to close the scanner anytime; the phone's Back button now also safely closes the scanner instead of exiting the app
- If the camera button shows an error banner: use a Bluetooth scanner or type the code manually and press Enter
📱 Opening on Android Phone
- Send this HTML file to your phone (WhatsApp, USB, Google Drive)
- On the phone: open Files by Google app → find the HTML file → tap Open with Chrome
- Do NOT type a URL in Chrome's address bar — always use the Files app to open it
- Tap Allow when Chrome asks for camera permission
- If camera still fails: Chrome menu → Settings → Site Settings → Camera → Allow for this file
📚 Glossary
AF2 — ArtzFolio pick-list QR format. All pick-list QR codes start with AF2|
BIN — Physical shelf location. BIN QR stickers are on the shelf/rack. Bin QR data starts with BIN|
ASIN — Amazon product ID. Its Code 128 barcode on the product label is accepted at step 3 instead of the SKU barcode
Set Size — Pieces inside one sellable unit (e.g. Set of 10 = 10 pieces packed together)
🔄 ACTIONS / STOCK / Bulk Upload — Bin-Level Stock
- Actions tab — records one stock movement at a time (New Stock In / Returns In / Found / Remove-Lost / QC Hold / QC Release / Set True Count / Transfer). A Bin is now required on every movement except Set True Count — the app auto-fills the SKU's usual bin, but you can always overwrite it (e.g. new stock landing in RECEIVING instead of the SKU's normal shelf).
- Set True Count — a pill on the Actions tab, for a physical stock count only (not daily use). v80: this now counts ONE BIN at a time. Type the bin you physically counted and the number you found in that bin; the app compares it against what that same bin currently shows and saves only the difference. Any other bin holding the same SKU is listed in the confirmation box and is never changed. A note is recommended but not required. Bin is required here too, like every other action.
Why this changed: before v80 the app compared your one-bin count against the SKU's total across every bin, so counting a SKU that lived in two bins silently pushed one bin negative — and the next action on that bin then failed with a confusing error. If a SKU sits in several bins, count each bin separately. - 💾 Bulk DISPATCH — v82. The Bulk Upload (CSV) list now also accepts DISPATCH, for booking out many orders at once. Put the order number in the ToBin column. This is the same action, same wording and same column as the Excel sheet's DISPATCH, so one filled-in sheet works in either place.
- 📤 Dispatch / Order Out — new 8th pill (v81). Use it whenever stock physically leaves for a customer order. Scan the SKU, confirm the bin it came from, enter how many, and add the order number and channel.
Why this matters: until now the system recorded 2,702 stock-in entries and not one stock-out. That is why low-stock alerts never fired and every SKU showed as ABC tier “C” — the reports had no sales to work from. Booking dispatches here (or completing a pick on the PICK tab) is what switches all of that on. - 🗃 DATABASE tab (Admin / Supervisor, v96) — find any listing, Open it to see and edit every field from Excel tab 6, switch it ON or OFF for stock, or use Quick Add Listing for a product that is not in the system yet (title, SKU, ASIN, product type; bin and opening stock optional). Every change is confirmed with your own PIN and recorded in the Audit Log. The Bins section lists every bin and lets you delete an empty one.
What happens if you just scan an unknown code instead: nothing is ever placed in a random bin. On New Stock or Returns an amber “Register New SKU” panel opens so you can add it and carry straight on. On Remove/Lost, QC Hold, QC Release or Set True Count the app refuses outright — counting or removing something that was never received is a mistake, not a new product. - QC Release — a pill on the Actions tab, previously only reachable via Bulk Upload (CSV). Releases stock that was QC-Held back into sellable count, using the same SKU/Bin/Qty/Note form as the rest of this tab.
- Transfer — new pill on the Actions tab (v92, 2026-09-19). Moves existing stock from one bin to another — the SKU's total is unchanged. Enter the bin it's moving FROM (the usual Bin field), the bin it's moving INTO, and the quantity. Writes as two linked rows (stock out of the old bin, into the new one) — the same way a bulk-upload TRANSFER row already worked, just as a single-item action here. To move an entire scanned session's contents to a different bin in one go, use the Admin Panel's Scan Sessions page instead.
- Bulk Upload (CSV) — on the Actions tab: download the template, fill it, upload.
There are exactly 8 allowed Action values, and the Excel template now blocks anything else:
- INBOUND — New stock arriving into the warehouse for the first time — a fresh purchase or production batch being put away. (adds to stock; needs SKU, Bin, Qty)
- RETURN_IN — A customer return physically received back into the warehouse. (adds to stock; needs SKU, Bin, Qty)
- FOUND — Untracked stock discovered during a physical count — genuinely present on the shelf but missing from the system. (adds to stock; needs SKU, Bin, Qty)
- LOST — Stock leaving the system without a sale: missing, shrinkage, theft, damage, expiry or any deliberate write-off. Put the actual reason in the Note column — that is what separates a breakage from a theft in the permanent record. (reduces stock; needs SKU, Bin, Qty, Note)
- REJECTED — Stock that failed a quality check and is being taken out of sellable stock permanently. (reduces stock; needs SKU, Bin, Qty, Note)
- QC_HOLD — Quarantine: takes stock out of the sellable count while it waits for a quality decision. The goods are still physically there — they just must not be sold yet. Release them later with QC_RELEASE. (reduces stock; needs SKU, Bin, Qty)
- QC_RELEASE — The opposite of QC_HOLD — passes quarantined stock back into the sellable count after it clears its quality check. (adds to stock; needs SKU, Bin, Qty)
- TRANSFER — Moves stock from one shelf location to another. Total stock does not change — only where it sits. Bin is where it is moving FROM, ToBin is where it is moving TO. (moves between bins, total unchanged; needs SKU, Bin, ToBin, Qty)
- Bin-mismatch note — if the bin you use is different from that SKU's usual bin, the result still says OK (this is never blocked) but adds a short note so you can catch a typo, e.g. "OK (note: this SKU's usual bin is A12, this entry used B04)".
- STOCK tab — live, read-only view of current quantities. Search by SKU, ASIN, or Bin to find where something is right now.
- Actions / STOCK / Bulk Upload all write to the SAME live database as this Excel file and the Admin Panel — there is no separate copy anywhere, and every write is tagged with which tool made it (visible to an admin as "entry_source").
🔧 Troubleshooting
- Camera button does nothing / black overlay — Tap the blue button inside the app (not the Chrome address bar icon). On first use, wait 2–3 s for permission prompt
- QR not scanning — Hold phone 15–25 cm from QR code, good light, keep still; the orange scanning line shows it is active
- Product mismatch — Try scanning the ASIN barcode instead of SKU label (or vice versa)
- Wrong bin scanned — Tap ← Back, go to the correct bin and scan again
- CONFIRM not visible — Scroll down; all required qty scans must complete first
- QR missing in Excel pick list — Re-run Step3_GenerateBarcodes in Excel
👤 Logged-In Employee
Not set
🔒 Phone Code
Loading...
📊 Google Sheet Sync
Every confirmed scan is logged automatically to the ArtzFolio Google Sheet. This is preset and locked - staff cannot view or change the address.
✓ Google Sheet sync: LIVE (locked)
💡 In your Apps Script, set doPost(e) to parse
JSON.parse(e.postData.contents). Fields: ts, empName, empCode, orderID, sku, channel, qty, bin, action.📜 My Recent Scans (this device only)
Stores up to 500 entries in this browser only — not permanent, and cleared if you clear this device's storage. This is a personal convenience list, not the official record. Use the ↓ CSV button in the Log tab to export before clearing. The real, permanent record of every action lives on the server and cannot be cleared from here — see "My Activity (server record)" below.
0 entries stored
☁ My Activity (server record — permanent)
Your last 50 stock actions, pulled directly from the live database. This survives clearing this device — it is the durable record of your own activity.
🔄 Session Recovery
Your current pick session is auto-saved. If the app is refreshed mid-order, it will resume where you left off.
📦 ArtzFolio Scan-Pick-Pack v91
Full changelog available on request.