v105

📥 Offline Write Queue

⚠ Last pick may not have saved — tell your supervisor if this repeats. (tap to dismiss)
ArtzFolio · Vishnu Image Folio 📦 Scan-Pick-Pack
Tap 📷 to open camera — QR · Code 128 · Code 39 · EAN · UPC · ITF and more
1 PICK LIST
›
2 BIN
›
3 PRODUCT
📷 Camera Not Available Camera access was denied or is not supported.

💡 You can still scan without the camera: Use a Bluetooth barcode scanner gun connected to the phone, or type the code in the text box and press Enter.
📦 Multi-Item Order
Item 1 of ...
📱 Scan Pick List QR Code Tap 📷 and point at col H QR on the printed pick list
Scan a Pick List QR code to begin
🔍 Scan Either Barcode to Verify Product
SKU Barcode —
OR
ASIN / Code 128 —
⚠ Live database not reachable right now. Movements cannot be recorded until this reconnects — check your internet connection.

📋 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).
⚠ Live database not reachable right now. Showing no data until this reconnects.

📦 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.
⚠ 0 SKUs at or below reorder point

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 ▼

⚠ Live database not reachable right now. Dashboard data cannot be loaded until this reconnects.
⚠ 0 SKUs at or below reorder point
⚠ Negative stock detected

📊 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

  1. In Excel: paste orders in 4. Order Entry (cols A–D only; Product & ASIN auto-fill from SKU Database)
  2. Run Step1 → Step2 → Step3_GenerateBarcodes → print 6. Print Picklist
  3. Open this app → tap the blue 📷 camera button → scan the Pick List QR (col H)
  4. Go to the bin → scan the Bin QR sticker on the shelf
  5. Scan the SKU barcode or the ASIN barcode on the product
  6. If Qty > 1: scan once per unit until all are confirmed
  7. Tap CONFIRM

📷 Camera — How to Open & Scan

  1. Tap the blue camera button inside the app (in the scan bar at the top)
  2. Tap Allow when Chrome asks for camera permission
  3. The camera overlay will open — point it at a barcode or QR code
  4. Supported formats: QR Code, Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E, ITF, DataMatrix, PDF417, Aztec
  5. 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
  6. If the camera button shows an error banner: use a Bluetooth scanner or type the code manually and press Enter

📱 Opening on Android Phone

  1. Send this HTML file to your phone (WhatsApp, USB, Google Drive)
  2. On the phone: open Files by Google app → find the HTML file → tap Open with Chrome
  3. Do NOT type a URL in Chrome's address bar — always use the Files app to open it
  4. Tap Allow when Chrome asks for camera permission
  5. 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)
    TRANSFER is the only Action that uses ToBin, and one TRANSFER row deliberately writes two ledger entries (out of one bin, into the other) so the move is traceable at both ends. Every row needs a Bin and a positive Qty — never type a negative quantity, the Action itself decides the direction. Same per-row OK/FAILED result as before.
  • 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.
1.0x
⚠ No barcode scanner available on this device/connection Close this and type the code manually in the field, or use a Bluetooth/USB scanner gun.
Point at the barcode or QR code
👁 Image looks blurry — hold the barcode a little further away and keep it steady.
Zoom1.0x
Loading scanner...
Scanning…

🔒 Employee Login

Enter your employee code and 4-digit PIN to begin.

Choose

🔒 Held stock
❓ What is this screen?
  • Printing reserves stock. When pick slips are printed, their units are held for those orders, so no other order can take them.
  • Picking removes it. Scanning the slip, the bin and the product takes the units out of stock - the hold ends there.
  • Release only if an order was cancelled or will not be packed. Releasing puts the units back as free stock, and that slip will no longer work.
  • Finished batches close by themselves once nothing in them is held any more.
📋 Reserved stock
❓ What is reserved stock? When should I release it?
  • Reserved means these units are kept aside for one order, because a pick slip was printed (Amazon bill stamping) or a bulk / Excel pick sheet was made. No other order can take them.
  • Picking the slip (slip, bin, product) takes the units out and ends the reservation by itself.
  • Release a line only when it will not be picked: the order was cancelled, or the team already packed that order from other stock.
  • Order already dispatched another way the same order and product already left stock by another route (phone dispatch, bulk or Excel), or its Amazon order line is marked picked. Usually safe to release — check first.
  • Some units of this order already went out another way part of the order went out by another route, but not all the reserved units. Check before releasing.
  • Old – check held more than 2 days. Find out if the order is still coming.
  • All dates and times on this screen are India time (IST).
  • Releasing only frees the stock in this app. It does not change or cancel anything on Amazon. The printed slip for that line stops working.

🔒 Your PIN

Confirm this change with your own PIN.