> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Fulfillment Status, Shopify

> Fulfillment Status for Shopify stores. Tracked live in Vortex IQ Nerve Centre. How to read it, why it matters, and how to act on it.

**Metrics type:** [Supporting Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

## At a glance

> Order distribution by `displayFulfillmentStatus`. The operational health view: how many orders are fulfilled, in progress, partially fulfilled, restocked, or unfulfilled?

|                               |                                                                                                                                                                                                                                                                                                               |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**            | `GROUP BY displayFulfillmentStatus`. Each order contributes one to its status bucket. Statuses: `FULFILLED`, `PARTIALLY_FULFILLED`, `IN_PROGRESS`, `OPEN`, `UNFULFILLED`, `SCHEDULED`, `RESTOCKED`, `VOIDED`.                                                                                                 |
| **API endpoint**              | `Admin GraphQL. Order.displayFulfillmentStatus`.                                                                                                                                                                                                                                                              |
| **State semantics**           | `FULFILLED` = all line items shipped; `PARTIALLY_FULFILLED` = some shipped; `IN_PROGRESS` = pick-and-pack in flight; `OPEN` / `UNFULFILLED` = nothing shipped yet; `SCHEDULED` = future-fulfillment scheduled (B2B common); `RESTOCKED` = cancellation with restock; `VOIDED` = cancellation without restock. |
| **VAT / tax treatment**       | Not applicable.                                                                                                                                                                                                                                                                                               |
| **Shipping**                  | Not applicable directly.                                                                                                                                                                                                                                                                                      |
| **Discounts**                 | Not applicable.                                                                                                                                                                                                                                                                                               |
| **Refunds**                   | An order can be both REFUNDED (financial status) and FULFILLED (fulfillment status); the two states are independent.                                                                                                                                                                                          |
| **Cancelled / voided orders** | VOIDED and RESTOCKED are their own buckets.                                                                                                                                                                                                                                                                   |
| **Currency**                  | Multi-currency safe.                                                                                                                                                                                                                                                                                          |
| **Channels / sources**        | Online + POS + B2B all contribute. POS auto-fulfills at checkout (FULFILLED). B2B often has SCHEDULED orders.                                                                                                                                                                                                 |
| **Multi-location stores**     | An order from multiple locations may flip FULFILLED only when the LAST location ships. Partials in multi-location are common.                                                                                                                                                                                 |
| **Time window**               | `30D` (single window)                                                                                                                                                                                                                                                                                         |
| **Alert trigger**             | None on this card directly; pair with [Fulfillment Rate](/nerve-centre/kpi-cards/shopify/fulfillment-rate) for the alerted ratio.                                                                                                                                                                             |
| **Roles**                     | owner, operations                                                                                                                                                                                                                                                                                             |

## Calculation

```
GROUP BY displayFulfillmentStatus
  WHERE date BETWEEN [period_start, period_end]
```

## Worked example

A US apparel brand on Shopify Plus. Period: 12 Apr 26 to 11 May 26.

| `displayFulfillmentStatus` | Order count | Share    | Note                                |
| -------------------------- | ----------- | -------- | ----------------------------------- |
| `FULFILLED`                | 5,820       | 85.1%    | Shipped                             |
| `IN_PROGRESS`              | 412         | 6.0%     | Pick-pack in flight                 |
| `PARTIALLY_FULFILLED`      | 218         | 3.2%     | Some line items shipped             |
| `OPEN` / `UNFULFILLED`     | 184         | 2.7%     | Nothing shipped, the backlog signal |
| `SCHEDULED`                | 102         | 1.5%     | B2B and pre-orders                  |
| `RESTOCKED`                | 78          | 1.1%     | Cancellations with restock          |
| `VOIDED`                   | 26          | 0.4%     | Cancellations without restock       |
| **Total**                  | **6,840**   | **100%** |                                     |

Five things to notice:

1. **2.7% OPEN is the backlog alarm.** 184 orders that have not started picking. Sort the OPEN list by age; anything aged >24h needs ops triage. The combined OPEN + IN\_PROGRESS + PARTIALLY\_FULFILLED is your real-time work-in-progress; here that is 11.9%, healthy for a busy DTC brand.
2. **Partials at 3.2% mean SKU stockouts.** 218 orders where some items shipped but at least one is backordered. Each is a customer-promise issue. Pair with [Line Item Fulfillment](/nerve-centre/kpi-cards/shopify/line-item-fulfillment-status) for the SKU-level diagnosis; a single OOS hero SKU often dominates.
3. **SCHEDULED at 1.5% is mostly B2B.** Wholesale orders with future ship-dates sit here. If you're a DTC-only brand and SCHEDULED is non-zero, you're likely running pre-orders or back-orders; check inventory policy.
4. **RESTOCKED + VOIDED together = cancellation events.** 1.5% combined; cross-reference with [Cancellation Rate](/nerve-centre/kpi-cards/shopify/cancellation-rate). RESTOCKED is the customer-friendly path (inventory recovered); VOIDED suggests test orders or fraud cancellations without inventory return.
5. **POS dominates the FULFILLED bucket disproportionately.** A retail-brick brand with strong POS sees 90%+ FULFILLED because POS auto-fulfills at the till. To assess true e-commerce ops health, filter to online-store orders only.

## Sibling cards merchants should reference together

The status breakdown is the diagnostic. Pair with these:

| Card                                                                                                   | Why pair it with Fulfillment Breakdown      | What the combination tells you                                             |
| ------------------------------------------------------------------------------------------------------ | ------------------------------------------- | -------------------------------------------------------------------------- |
| [Fulfillment Rate](/nerve-centre/kpi-cards/shopify/fulfillment-rate)                                   | The headline FULFILLED-share metric.        | Breakdown shows where the rate's denominator went.                         |
| [Fulfillment Over Time](/nerve-centre/kpi-cards/shopify/fulfillment-rate-over-time)                    | Daily timeseries.                           | Catches step-changes (3PL outage on a specific date).                      |
| [Unfulfilled Orders](/nerve-centre/kpi-cards/shopify/unfulfilled-orders)                               | Real-time backlog.                          | The OPEN bucket here ≈ unfulfilled-orders count.                           |
| [Line Item Fulfillment](/nerve-centre/kpi-cards/shopify/line-item-fulfillment-status)                  | Per-line-item state.                        | Diagnoses partials at the SKU level.                                       |
| [Products with Zero/Negative Stock](/nerve-centre/kpi-cards/shopify/products-with-zero-negative-stock) | Stockout root cause for partials and opens. | A persistent OOS predicts a rise in OPEN + PARTIALLY\_FULFILLED.           |
| [Cancellation Rate](/nerve-centre/kpi-cards/shopify/cancellation-rate)                                 | RESTOCKED + VOIDED counterpart.             | Cross-check VOIDED count vs cancellation count.                            |
| [`datadog.dd_incident_count`](/nerve-centre/datadog/dd_incident_count)                                 | 3PL / warehouse incidents.                  | Operational incidents predict a rise in OPEN + IN\_PROGRESS within 24-72h. |

## Reconciling against the vendor's own dashboard

**Where to look in Shopify Admin:**

[Orders](https://admin.shopify.com/orders) → filter by *Fulfillment status*. Counts per filter should align with this card's bucket counts.

Other Shopify Admin views:

* **Reports → Sales by fulfillment status**: a £-revenue split by status; complementary to this count split.
* **Settings → Locations**: relevant for multi-location stores; affects how partial fulfillment surfaces.
* **Apps like ShipStation, ShipBob**: 3PL-side fulfillment tracking; should align with the FULFILLED count per their lag.

**Why our number may legitimately differ from Shopify Admin:**

| Reason                         | Direction              | Why                                                                                                        |
| ------------------------------ | ---------------------- | ---------------------------------------------------------------------------------------------------------- |
| **Time zone**                  | Boundary days          | Standard time-zone gap.                                                                                    |
| **Status mapping**             | Either                 | Shopify's "Fulfilled" filter may include PARTIALLY\_FULFILLED depending on settings; the card splits them. |
| **Multi-location aggregation** | Either                 | Multi-location stores show partials more often in detailed views; the card aggregates.                     |
| **Test orders**                | Ours slightly higher   | Test order filter not applied.                                                                             |
| **Sync lag**                   | Ours lower for "today" | 5 to 15 minute index lag.                                                                                  |

**Cross-connector reconciliation:**

| Card                                                                                          | Expected relationship                                  | What causes legitimate divergence                              |
| --------------------------------------------------------------------------------------------- | ------------------------------------------------------ | -------------------------------------------------------------- |
| [`datadog.dd_incident_count`](/nerve-centre/datadog/dd_incident_count)                        | Warehouse / 3PL incidents drive OPEN + IN\_PROGRESS up | Indirect signal; only valuable if 3PL monitoring is connected. |
| [`shopify_xc_revenue_at_risk_from_incident`](/nerve-centre/kpi-cards/shopify/revenue-at-risk) | Composite cross-platform risk                          | Pair on the dashboard during ops outages.                      |

***

<details>
  <summary><em>Same-metric documentation cross-reference (for agencies running multiple platforms)</em></summary>

  The same definition lives on other commerce platforms. Cross-platform navigation only.

  * [`bigcommerce.fulfillment_breakdown`](/nerve-centre/kpi-cards/bigcommerce/fulfillment-status)
  * [`adobe_commerce.fulfillment_breakdown`](/nerve-centre/kpi-cards/adobe-commerce/fulfillment-status)
</details>

## Known limitations / merchant FAQs

**Why is my OPEN bucket high?**
Three usual causes:

1. **Stockout on a high-velocity SKU.** Orders pile up waiting for inventory.
2. **3PL or warehouse capacity issue.** Pick-and-pack cannot keep up.
3. **Order volume spike.** Sale week or viral moment outpaces fulfillment throughput.

**Why is my PARTIALLY\_FULFILLED bucket non-zero?**
Almost always one or more SKUs are out of stock and the rest of the order shipped. Cross-reference [Products with Zero/Negative Stock](/nerve-centre/kpi-cards/shopify/products-with-zero-negative-stock) to find the bottleneck SKU.

**What's the difference between OPEN and IN\_PROGRESS?**
OPEN / UNFULFILLED = no fulfillment record exists yet. IN\_PROGRESS = fulfillment record created (label printed, picking started) but not marked complete. The progression is OPEN → IN\_PROGRESS → FULFILLED.

**Why does SCHEDULED appear?**
Either pre-orders, back-orders, or B2B orders with future ship dates. If your store doesn't run those, audit; this can indicate misuse of the SCHEDULED status.

**Multi-location, how does this affect the breakdown?**
Multi-location orders may appear PARTIALLY\_FULFILLED if one location ships first. Once both locations ship, the order flips to FULFILLED.

**Multi-currency, any impact?**
None on the count distribution.

**Shopify Plus vs basic?**
Plus stores can use Flow automations to manage SCHEDULED orders, B2B-specific fulfillment workflows, and multi-location routing. The card behaves identically; the population mix differs.

**Refresh cadence?**
5 to 15 minute index lag. Status transitions propagate quickly.

**B2B vs DTC?**
B2B has more SCHEDULED. DTC is dominated by FULFILLED. Mixed stores benefit from filtering by tag.

**The card shows a rising OPEN bucket, what should I do?**

1. Open Shopify Admin → Orders → filter *Unfulfilled*. Sort by age.
2. Identify SKUs holding up the oldest orders. Cross-reference with [Inventory Alerts](/nerve-centre/kpi-cards/shopify/products-with-zero-negative-stock).
3. For aged-OPEN with no inventory issue, escalate to 3PL ops.
4. For volume-spike, accept temporary degradation; protect customer comms with extended SLA messaging.
5. Email customers proactively for orders aged >5 days; the brand-trust hit of silence is worse than the operational delay.

***

### Tracked live in Vortex IQ Nerve Centre

*Fulfillment Status* is one of hundreds of KPI pulses Vortex IQ tracks across Shopify and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English.

[Start for free](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
