On-hand but not sellable
Shopify Inventory Location Activation Audit
Scan an inventory or location export for variants that hold on-hand stock at a location yet stay unavailable because the location is not activated for them.
Browser-side scan
Drop an inventory or location export CSV
No CSV selected
Multi-location Shopify merchants move stock with transfers, CSV imports, or the bulk editor, but a variant can keep On hand greater than zero while staying unsellable when it is not activated at that location. This audit reads a sanitized inventory or location export, compares on-hand stock against available-to-sell and any active-at-location column, and flags the variants that need activation. It exports an exception worksheet for manual or Admin API follow-up and never calls Shopify or writes inventory.
Import blockers
Common causes this scan checks
- A variant has On hand greater than zero at a location but Available stays blank or zero.
- Stock was transferred or imported to a location that was never activated for the variant.
- POS or online orders cannot fulfill from a location because the variant is inactive there.
- Merchants need an exception list of variants to activate before stock becomes sellable.
Workflow
How to use the cleaned CSV
- Export a sanitized inventory or location report with SKU, location, On hand, and Available or an Active at location column.
- Upload the CSV and review the variants flagged with on-hand stock that is not sellable.
- Export the activation exception worksheet and check each flagged location and variant.
- Activate the variants at the location manually in Shopify admin or through an approved Admin API workflow.
Auto-fix policy
What the export can safely change
- Detects SKU, variant ID, location, On hand, Available, and active-at-location columns by common header names.
- Flags rows where on-hand stock is positive but available-to-sell is blank, zero, or the location is inactive.
- Exports an exception worksheet with a recommended activation action per variant and location.
- Runs fully in the browser and never calls Shopify APIs or stores inventory data.
CSV example
CSV example: location activation exception worksheet
The audit flags variants that hold on-hand stock at a location but stay unsellable, then exports an exception worksheet recommending activation before the stock can sell.
SKU,Location,On hand,Available WIDGET-2,Pop-up Store,8,
SKU,Variant ID,Title,Location,On hand,Available,Active state,Exception,Recommended action WIDGET-2,,,Pop-up Store,8,,,Yes,Activate this variant at the location so on-hand stock becomes sellable
FAQ
Shopify CSV questions
Does this activate variants at a location automatically?
No. It produces a local exception worksheet for review. Merchants still activate variants in Shopify admin or through their own approved Admin API workflow.
What columns does the audit need?
Include SKU or Variant ID, Location, and On hand, plus either an Available column or an Active at location column so sellability can be judged.
Why is stock on hand but not sellable?
A location can hold physical stock for a variant that was never activated there, so Available stays blank or zero and orders cannot be fulfilled from that location.
Does my inventory data leave the browser?
No. The file is read locally with the File API. The audit never uploads the CSV or calls Shopify.
Feedback
How is this tool working for you?
Found a bug, a false alarm, or a missing check? Tell me — a human reads every note.