Why Shopify Shows Out of Stock When Inventory Exists in Cin7

Shopify showing out of stock but your warehouse has inventory? Old open orders in Cin7 may be holding allocation. Here is how to find and fix it.

SYSTEMS AND SOFTWAREECOMMERCE

Christo Kleinhans, COO @ Fiskal

5/18/20266 min read

Cin7 Allocated Stock Issues: How Old Orders Suppress Shopify Availability

Christo Kleinhans, COO @ Fiskal

Your warehouse has stock.
Shopify says the product is unavailable.

You check the Cin7-Shopify integration:

  • sync active

  • inventory updates enabled

  • warehouse mappings correct

Everything looks fine.

In many cases, the issue is not the sync itself. It is a stale allocation inside Cin7.

Old operational commitments continue reserving stock long after they should have been fulfilled, voided, or resolved. Shopify reads the available quantity supplied by Cin7, sees zero available stock, and correctly marks the product as unavailable.

The stock still exists physically.
But operationally, Cin7 believes it is already committed somewhere else.

This usually appears as inventory that physically exists in the warehouse but remains unavailable online because allocated stock is suppressing available quantity inside Cin7.

This issue commonly appears after Black Friday periods, overselling events, partial fulfilments, delayed Purchase Orders, and rushed operational cleanup where older workflow commitments were never fully resolved.

Over time, the gap between physical inventory and operational inventory state grows wider. Teams stop trusting availability figures, replenishment becomes unreliable, and stock gets reordered unnecessarily.

TL;DR

  • Cin7 pushes Available quantity to Shopify, not On Hand stock.

  • Available quantity is calculated as:

Available = On Hand - Allocated

  • Old Authorized orders can continue holding allocation indefinitely.

  • This suppresses Shopify availability even when physical stock still exists in the warehouse.

  • The issue often develops through stale orders, partial fulfilments, and delayed backorders.

  • The fix is a structured audit of unresolved operational commitments inside Cin7.

How the Cin7 Accounting Close Process Functions

In Cin7, inventory exists in multiple operational states:

  • On Hand

  • Allocated

  • Available

  • In Transit

Shopify does not read physical warehouse stock directly. It reads the Available quantity supplied by Cin7.

Available quantity is calculated as:

Available = On Hand - Allocated

That distinction is critical.

A product can physically exist on the shelf while still being unavailable operationally because the system believes the stock has already been committed elsewhere.

Cin7 is not asking:
“Do you physically have stock?”

It is asking:
“Is this stock already reserved by another workflow?”

In most standard Cin7 configurations, stock becomes allocated when a sales order is Authorized. That allocation remains until the order progresses, is fulfilled, or is closed correctly.

If orders remain operationally open for weeks or months, they continue suppressing available quantities indefinitely.

This creates a visibility gap where warehouse teams still see stock physically present while Shopify shows zero available inventory and purchasing teams react to distorted replenishment signals.

The integration itself may still be functioning correctly. Shopify is simply reflecting the operational inventory state Cin7 is providing.

Businesses often experience Shopify showing products out of stock while inventory still exists physically, available stock no longer matching warehouse counts, and sudden over-ordering despite stock already being present on the shelf.

The issue is not inventory count alone.
It is inventory state.

The Three Backlog Patterns That Suppress Availability

Stale allocation usually develops through a small number of recurring operational patterns.

1. The Allocation Anchor

Any order in Authorized status without an Authorized Pick continues reserving stock indefinitely, regardless of the order’s age.

This often happens because customers cancel informally, fulfillment workflows stop midway, stockouts interrupt fulfillment, or operators move on without resolving the order properly.

Individually, these orders may seem harmless. Collectively, they can suppress available quantity across large portions of the catalogue and create ongoing inventory visibility issues between Cin7 and Shopify.

2. Partial Fulfilment Residue

Partially fulfilled orders leave outstanding fulfilment quantities behind. Those remaining lines continue holding allocation until they are resolved operationally.

This commonly accumulates after Black Friday, flash sales, warehouse bottlenecks, and high-volume fulfilment periods where teams move quickly and cleanup processes lag behind.

A business may successfully fulfil most of an order while a small residual quantity quietly remains allocated in the background for months.

Over time, these residual allocations distort available quantity, replenishment planning, and overall trust in inventory availability.

3. Delayed Backorder Commitments

Cin7 can reserve future inventory against incoming Purchase Orders when sales orders are authorized for more stock than is currently On Hand.

Those backorders continue holding allocation against Expected or On Order inventory linked to incoming Purchase Orders.

When inbound stock becomes delayed, incomplete, or no longer arrives, the allocation can remain operationally active even though the original supply assumption is no longer realistic.

This creates a false operational inventory state where stock appears committed, available quantity stays suppressed, and replenishment signals become unreliable.

The warehouse may already contain sufficient physical inventory while the system still behaves as though future commitments must remain protected.

Why This Creates Commercial Damage

This issue is not just operational.
It directly affects revenue capture, purchasing behaviour, inventory investment, cash flow, and fulfilment confidence.

When stale allocation suppresses available quantity, sellable products disappear from Shopify even though inventory still exists physically. Purchasing teams respond to distorted replenishment signals, inventory gets reordered unnecessarily, and working capital becomes tied up in excess stock.

Over time, inventory planning becomes less reliable because operators stop trusting the system’s availability figures. Teams begin compensating operationally through manual stock adjustments, spreadsheet tracking, or repeated integration investigations.

Those actions may temporarily relieve the symptom while allowing the underlying allocation distortion to continue compounding underneath the surface.

The longer stale allocation remains unresolved, the harder inventory availability becomes to trust operationally.

The 3-Month Audit

The purpose of the audit is not simply to clear old orders.

It is to identify where operational inventory state no longer reflects commercial reality.

For most ecommerce operators, 90 days is a practical starting point:

  • old enough to surface stale operational commitments

  • recent enough to still affect live availability and replenishment decisions

The exact threshold should reflect the business’s fulfilment cycle and operational cadence.

Step 1 — Pull the Pending Sale Orders Report

Filter the native Sale Order Details report, or your custom Fiskal Pending Sales Orders dashboard, by order age:

  • 90+ days

  • then 60+

  • then 30+

Focus on:

  • Authorized orders

  • unresolved fulfilment lines

  • delayed backorders

  • orders without active fulfilment progression

The goal is to identify operational commitments that are still suppressing availability long after they should have been resolved.

This report is usually where the hidden allocation backlog becomes visible for the first time.

Step 2 — Compare On Hand vs Available

Open the Product Availability Report.

Compare:

  • On Hand

  • Available

If On Hand is materially higher than Available, the difference is the allocated quantity.

That allocation gap should roughly align with genuine open operational commitments.

If it does not, stale allocation is likely suppressing sellable stock.

This is one of the fastest ways to diagnose:

  • Cin7 available stock issues

  • Shopify out-of-stock discrepancies

  • hidden inventory suppression

  • distorted operational inventory state

Step 3 — Identify Operationally Dead Orders

Not all allocation is incorrect.

Some orders are still commercially valid and should remain allocated.

The audit focuses on commitments that no longer have a realistic fulfilment path:

  • abandoned orders

  • informal cancellations

  • unresolved partial fulfilments

  • stale backorders

  • inventory linked to inbound stock that never arrived

The purpose is not to remove allocation blindly.
It is to separate genuine operational demand from stale workflow residue.

Step 4 — Void Stale Operational Commitments Correctly

Where orders are operationally dead, Voiding is usually the cleanest resolution path because it releases allocation and removes the stale transactional commitment from the workflow.

Undo remains a valid system function that returns an order to Draft status, but if Undo is used on an Authorized task, associated line items should also be removed to avoid downstream WMS issues during Receiving or Picking.

For Shopify-originated orders, clear or resolve the related integration log entries within the Shopify module afterward. This ensures that any future updates or reorders matching that ID can synchronize cleanly without being blocked by historical log footprints.

Once stale allocation is released:

  • Available quantity should recover

  • Shopify availability should update naturally

  • replenishment signals should stabilise

  • inventory visibility should improve

Do not use manual stock adjustments to compensate for allocation distortion. That only increases the gap between physical warehouse reality and operational inventory state.

Step 5 — Assign Ongoing Allocation Ownership

Cin7 will not automatically enforce order hygiene.

A designated operator or Super User should regularly review:

  • Pending Sale Orders

  • aged allocations

  • unresolved fulfilment residue

  • delayed backorders

  • unusual allocation gaps

  • Authorized orders without active Pick progression

This becomes especially important in WMS-driven environments.

When stale allocations remain active, warehouse pickers using the WMS app may see inventory as already committed elsewhere, even when stock physically exists in the warehouse. Over time, this creates “ghost” stockouts where fulfillment teams struggle to reconcile what the system says is available versus what is physically on the shelf.

During peak periods, this review should happen weekly.

Without operational ownership, stale allocation eventually returns and the same inventory visibility problems reappear later under greater operational pressure.

Peak periods do not create allocation problems.
They expose workflows that were already drifting underneath the surface.

When Inventory Exists but Availability Does Not

If products you can physically fulfill are still appearing unavailable online, the issue may not be inventory shortage or sync failure.

In many cases, operational inventory state and physical warehouse reality have drifted apart.

Old orders, unresolved fulfilment residue, delayed backorders, and stale operational commitments continue suppressing available quantity long after the original workflow should have been resolved.

Over time, this creates hidden lost revenue, distorted replenishment planning, tied-up working capital, unnecessary purchasing, and declining trust in inventory availability.

Fiskal helps product-based businesses diagnose stale allocation, inventory-state distortion, and Shopify availability issues inside Cin7 environments.

The goal is not just to “fix the sync.”
It is to restore alignment between:

  • warehouse stock

  • operational commitments

  • replenishment logic

  • sellable availability

Need Clarity on Your Inventory and Availability?

Learn how Fiskal supports Cin7 environments where order lifecycle, allocation logic, and Shopify availability have drifted from warehouse reality.

📞 Or call us directly: (954) 415-7895

Share on your socials.