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.

Local browser scanSafe fixes onlyShopify-focused checks

Browser-side scan

Drop an inventory or location export CSV

-

No CSV selected

No CSV selectedUpload an inventory or location export with SKU, location, On hand, and Available to find stock that is not sellable.
Private by default. Your Shopify inventory or location CSV data stays in this browser session. The export applies only safe deterministic changes and leaves manual-review items in the findings list.

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

  1. Export a sanitized inventory or location report with SKU, location, On hand, and Available or an Active at location column.
  2. Upload the CSV and review the variants flagged with on-hand stock that is not sellable.
  3. Export the activation exception worksheet and check each flagged location and variant.
  4. 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.

Before
SKU,Location,On hand,Available
WIDGET-2,Pop-up Store,8,
After
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.

Related tools

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.