Shopify Reporting Deep Dive: Tracking Unfulfilled Line Items Like a Pro

Hey everyone! I've been diving into some really insightful discussions on the Shopify Community forums lately, and one thread, in particular, caught my eye because it addresses a pain point many of you managing inventory and fulfillment will totally relate to. We're talking about getting a crystal-clear picture of what still needs to ship when you have partially fulfilled orders.

It's a common scenario: a customer orders five items, but only three are in stock immediately. You ship those three, and the order status becomes 'partially fulfilled.' But then, trying to pull a report that *only* shows you those two remaining unfulfilled items? That's where things get tricky with Shopify's native reporting, as our community members Breno_Freitas and lumine highlighted.

The Core Challenge: ShopifyQL's Order-Level View

Breno_Freitas kicked off the discussion by pointing out a significant gap in ShopifyQL, the powerful query language behind your custom reports. Currently, when you use the FROM sales dataset, there isn't a direct line_item_fulfillment_status field available for filtering. What we have is order_fulfillment_status.

Now, this works great for a quick overview, but it falls short for detailed operational needs. As Breno explained, if you filter by order_fulfillment_status = 'unfulfilled' or 'partial', the report will show all line items from those orders. That includes items that have already been shipped! Imagine trying to generate a precise pick-pack list for your warehouse based on that – it's a nightmare of irrelevant data.

This limitation makes it incredibly difficult to get an accurate, actionable list of exactly what still needs to go out the door, especially for stores dealing with frequent partial shipments or backorders. It's not just an inconvenience; it can lead to operational inefficiencies and missed fulfillment targets.

Community-Driven Workarounds: Getting Granular with Data

Thankfully, our community is full of clever folks finding ways to bridge these gaps. Lumine, a fellow store owner, shared some excellent workarounds that have been holding things together for their own operations, particularly during a 3PL (third-party logistics) handoff.

Option 1: Harnessing the GraphQL Admin API

This is the most direct and accurate method if you're comfortable with a bit of technical heavy lifting. Lumine's suggestion involves using the GraphQL Admin API and specifically the fulfillmentOrders query.

Think of GraphQL as a super-flexible way to ask Shopify for exactly the data you need. Here's the gist of how you'd approach it:

  1. Access the API: You'll need an API client or a custom script to interact with Shopify's GraphQL Admin API. Many developers use tools like Insomnia, Postman, or even Shopify's own GraphiQL app (which you can install on your development store).
  2. Construct Your Query: You'll want to query for orders that have a fulfillment_status of partial or unfulfilled. The key here is that the fulfillmentOrders object returns detailed information about each line item's fulfillment status.
  3. Identify Unfulfilled Items: Within the data returned by the fulfillmentOrders query, you'll find lineItems. Crucially, each line item will have a remainingQuantity field, along with its assignedLocation. This remainingQuantity is your golden ticket – it tells you exactly how many units of that specific item still need to be fulfilled.
  4. Process the Data: Once you've pulled this data, you can pivot it in a spreadsheet (like Google Sheets or Excel) or feed it into a small custom report endpoint. This allows you to create a clean list of only the items that have a remainingQuantity > 0, giving you that precise, actionable pick list you've been looking for.

This method, while requiring some technical savvy, provides the most accurate dataset for what's truly outstanding at a line-item level. It's a powerful way to bypass the current limitations of ShopifyQL for detailed fulfillment reporting.

Option 2: Real-time Updates with Shopify Flow + Webhooks

For those running higher-volume stores where near-real-time status updates are critical, Lumine also suggested a more automated approach: using Shopify Flow combined with a webhook.

Shopify Flow is an incredibly versatile automation tool built right into Shopify. You can set up workflows that trigger based on specific events in your store. In this scenario, you could configure Flow to:

  1. Listen for Fulfillment Events: Set up a Flow that triggers when an order's fulfillment status changes, or perhaps when a fulfillment order is created or updated.
  2. Send Data via Webhook: When the trigger fires, Flow can send a webhook – essentially an automated message – to your warehouse management system (WMS) or any other custom system you use for fulfillment. This webhook would contain detailed line-item level information, including quantities still needing fulfillment.

This method allows you to push line-item status updates directly into your fulfillment workflow, ensuring your warehouse always has the most current information without manual intervention. It's a fantastic solution for scaling operations and improving efficiency.

The Future: A Native ShopifyQL Field

While these workarounds are invaluable, both Breno_Freitas and lumine agree that the ideal solution would be a native one. They're both voting up the feature request for Shopify to expose a line_item_fulfillment_status field directly within ShopifyQL.

Imagine being able to simply filter your reports with something like WHERE line_item_fulfillment_status = 'unfulfilled'. It would simplify countless operations dashboards and make managing partial orders significantly easier for everyone. If this is a pain point for you too, I highly recommend finding that feature request in the Shopify Community and adding your voice – the more support these ideas get, the higher they climb on Shopify's development radar!

So, there you have it. While ShopifyQL might not give us that perfect line-item fulfillment filter just yet, the community has cooked up some robust ways to get the job done. Whether you're diving into the GraphQL API for precise data extraction or setting up automated workflows with Shopify Flow, there are paths to getting the accurate reporting you need for your fulfillment operations. It just goes to show how powerful and resourceful the Shopify merchant community truly is!

Share:

Use cases

Explore use cases

Agencies, store owners, enterprise — find the migration path that fits.

Explore use cases