Uncategorized

Shopify Says Out of Stock but Inventory Exists: Locations, Markets and Fulfillment Checks

If Shopify shows a product as sold out while you can clearly see units in the admin, the problem is usually not the total physical quantity. It is the quantity that Shopify considers sellable for that exact variant, at a location allowed to fulfill the order, in the customer’s sales context.

This distinction matters because Shopify does not treat every unit shown as On hand as immediately available to sell. Inventory can be committed to existing orders, unavailable because it is held by an app or safety-stock process, assigned to a location that does not fulfill the variant, or excluded by publishing and market settings.

1. The first number to check is Available inventory

A product can physically exist in your warehouse and still be unavailable for a new online order. Shopify separates inventory into several states.

Inventory state What it means for troubleshooting
On hand Total physical units at a location, including units that may not be sellable right now.
Available Units Shopify currently considers available to sell.
Committed Units already set aside for orders or certain reservations.
Unavailable Units held for reasons such as app reservations, damage, quality control or safety stock.
Incoming Units expected to arrive but not yet available to sell.

Shopify’s current inventory states documentation defines On hand as the total of Available, Committed and Unavailable inventory. That is why “I have 12 on hand” does not necessarily mean a customer can buy 12 units.

Open Products → Inventory or the individual variant and inspect the Available quantity at each location. If On hand is positive but Available is zero, the storefront behaviour may be correct.

Example: 8 units exist, but the storefront says sold out

Imagine one location shows:

  • On hand: 8
  • Committed: 5
  • Unavailable: 3
  • Available: 0

Nothing has disappeared. All eight units are accounted for, but none are currently sellable to a new customer.

If the numbers themselves are confusing, the related guide Shopify “Committed” vs “Reserved” Inventory explains why draft orders, transfers and reservations can affect the quantities you see.

2. Check the exact variant, not only the product total

A common mistake is to look at a product and see stock somewhere in the product card, while the customer is trying to buy a different size, colour or other variant.

For example:

  • Blue / Small: 14 available
  • Blue / Medium: 0 available
  • Black / Medium: 9 available

If the product page defaults to Blue / Medium, it can legitimately show that selection as unavailable even though the product family has stock in other variants.

Open the exact variant used in the failed storefront test and verify:

  1. inventory tracking is enabled as intended;
  2. the correct SKU is attached to the variant;
  3. the variant is stocked at the expected locations;
  4. the Available quantity is positive at a fulfilling location;
  5. “Continue selling when out of stock” is configured according to your business rules.

Do not enable overselling simply to hide an inventory configuration problem. If the store should stop accepting orders at zero, keep that protection and fix the underlying location or quantity issue.

3. Inventory exists at a location — but is it the right location?

Shopify inventory is location-based. A “location” may be a retail store, warehouse, office, fulfillment centre or an app-created fulfillment location.

The key question is not only:

Does this variant have inventory?

It is:

Does this variant have Available inventory at a location that can be used to fulfill this online order?

A business with multiple locations might have ten units in a showroom and zero in the warehouse used for online fulfillment. Another store may have stock at an old or inactive location after a migration.

Review Settings → Locations, then inspect the product’s inventory allocation. Shopify’s multiple-location inventory documentation explains how products are assigned across locations and fulfillment apps.

A dash under Available is a useful clue

Shopify notes that a variant can show On hand inventory at a location that does not fulfill the variant. In that situation, Available may display as a dash rather than a sellable number.

That is a very different problem from “inventory is zero.” It means stock exists in the data, but that location is not currently contributing sellable inventory for new orders.

4. Check whether the location is allowed to fulfill online orders

Stocking an item at a location and using that location for fulfillment are related but separate concepts.

Typical failure patterns include:

  • a warehouse was added but is not configured to fulfill online orders;
  • a location was deactivated but still contains inventory records;
  • a product was removed from one location and unintentionally left at another;
  • a fulfillment app took over inventory management;
  • order routing sends orders toward a location with no Available quantity;
  • inventory was imported to the wrong location name.

Do not “fix” the storefront by adding arbitrary stock to several locations. That can create real overselling later. First determine which physical or app location actually owns the inventory.

5. If inventory is correct, check whether the product is actually sellable in the customer’s market

A product can be active in Shopify and still not be available to every customer. Market, catalog and sales-channel settings can prevent a customer from purchasing an otherwise stocked item.

Test the same product using the same country or region as the affected customer. Then verify:

  • the product is published to the Online Store;
  • the product is available in the relevant market;
  • the relevant catalog includes it, if catalogs are being used;
  • there is no market-specific product exclusion;
  • the selected variant is available, not merely the parent product.

If the product exists in Admin but does not appear where expected, use the detailed checklist in Shopify Product Is Active but Missing From a Sales Channel?.

This distinction is important: an inventory problem and a publishing problem can look almost identical from the customer’s point of view. Both can result in a product that cannot be bought.

6. Dropshipping and fulfillment apps can create their own inventory location

If a supplier, 3PL, print-on-demand service or dropshipping app manages fulfillment, check whether the app created a dedicated location and whether the variant is assigned to it.

Shopify states that when inventory is managed by an inventory app, quantities can be allocated to the app location. This creates several possible mismatches:

  • physical stock was entered manually at your default location while the app controls the variant elsewhere;
  • the app reports stock but the product is no longer correctly assigned;
  • an integration changes inventory after your manual correction;
  • two systems compete to update the same SKU;
  • the app location exists but does not participate in the intended fulfillment route.

Do not keep correcting stock manually if an app changes it back

If a quantity returns to zero after you change it, inspect the adjustment history before making another edit. Repeated manual corrections can hide the identity of the system that is writing the value.

7. Inventory adjustment history can tell you who changed the number

Shopify records inventory adjustments and can show whether the change came from a staff member, system process, app, transfer or reservation.

Open the relevant variant’s inventory history and look at the time immediately before the product became unavailable. Useful clues include:

  • a reservation was created;
  • a transfer changed state;
  • an app moved stock into Unavailable;
  • a staff member adjusted On hand;
  • inventory was removed from a location;
  • an import changed quantities.

The official inventory adjustment history guide explains the common activity labels.

8. Check whether shipping makes the item effectively impossible to buy

Sometimes the product appears available until the customer enters an address, then checkout fails. That is not normally a stock-status problem. It may be a shipping profile, fulfillment origin or market problem.

Test the item by itself in the cart. If it can be added but checkout reports that shipping is unavailable, follow the separate guide Shopify Says “Shipping Not Available” at Checkout.

This is especially useful when two products work separately but fail together because they are fulfilled from different origins or shipping profiles.

A controlled test sequence that prevents random changes

When a store is live, changing five settings at once makes diagnosis harder. Use one known SKU and work through the chain in order.

  1. Choose the exact failing variant.
  2. Write down its current On hand, Available, Committed and Unavailable quantities.
  3. Check every location carrying that variant.
  4. Identify which location should fulfill the online order.
  5. Confirm positive Available stock at that location.
  6. Check Online Store publishing and the customer’s market.
  7. Check whether an app manages the inventory.
  8. Review inventory adjustment history.
  9. Open a private/incognito storefront session and select the exact variant.
  10. Add only that product to the cart and test the target destination.

If the item works after one specific correction, stop changing settings and document what caused the mismatch.

Quick diagnosis table

What you see Most useful next check
On hand > 0, Available = 0 Committed and Unavailable states
On hand > 0, Available shows “—” at a location whether the location fulfills the variant
One size is sold out, others work exact variant inventory
Admin shows stock, product missing online sales channel, Markets and catalog availability
Manual quantity changes revert inventory app and adjustment history
Product adds to cart but checkout has no delivery shipping profile, origin and market
Stock appears in the wrong warehouse location assignment and CSV/import mapping

FAQ

Why does Shopify show On hand stock but still say sold out?

Because On hand includes units that can be Committed or Unavailable. New orders depend on Available inventory at an appropriate fulfillment location.

Can inventory exist at a Shopify location without being available to sell?

Yes. A location can hold On hand inventory even when the variant is not active for fulfillment there. App holds, reservations and other inventory states can also prevent units from being Available.

Should I enable “Continue selling when out of stock” to fix this?

Not as a troubleshooting shortcut. That setting intentionally allows overselling. If your business should stop at zero, find the incorrect inventory, location or publishing configuration instead.

Can Shopify Markets make a stocked product unavailable?

Market and catalog configuration can restrict whether a product is offered to a customer even when inventory exists. Treat product availability and inventory availability as separate checks.

How do I know whether an app changed my inventory?

Review the variant’s inventory adjustment history. It can identify system processes, third-party apps, staff changes, transfers and reservations associated with quantity changes.

Need hands-on help?

Let’s make your store easier to run — and easier to buy from.

Explore services