If you've been syncing your sheet with Shopify to manage inventory, at some point you'll run into this concern: "I have 100 units in the warehouse, but I've got 20 unfulfilled orders. The sheet says 100, but what I can actually sell is 80. I want to show that 80 correctly to customers."
That instinct is exactly right, but Shopify already has a similar concept built in — the relationship between two numbers called available and committed. In this article, in the context of sheet syncing, we'll work through how the "deduct unfulfilled orders" approach holds together and how it fits with the way Shopify works.
Why subtract "sheet inventory minus unfulfilled"
First, why would you even want to do this calculation? It comes from a real-world instinct. You have 100 units on the shelf. But 20 orders are already in and shipping tomorrow. At this moment, what you can actually sell is 80 units. Wanting customers to see 80 is completely natural.
The other motivation is oversell prevention. If you leave the sheet number at 100, Shopify will also show 100, and if another 90 orders come in on top of that, you've got 110 orders against 100 units of stock — an oversell. Display the number with unfulfilled orders already subtracted, and you head off that kind of incident.
So the calculation of "sheet inventory minus unfulfilled equals what's really left" is, operationally, a very healthy way to think. But if you try to implement it straight, you'll bump up against how Shopify actually works. Let's look at that next.
How available and committed relate
Shopify manages inventory across several states. The two that matter most here are available and committed. Understanding the difference helps you decide whether "sheet minus unfulfilled" is even necessary.
Inventory states in Shopify
Shopify's inventory roughly breaks down into the following states (summarized from the official help docs):
- On hand: the total number actually in the warehouse
- Committed: the number ordered but not yet shipped
- Available: the number that can be sold (On hand minus Committed minus other)
- Reserved: the number temporarily held
- Damaged: the number not available for sale
The key point is that what gets reflected on the customer's buy button is available. Shopify is already computing "On hand minus Committed" behind the scenes and showing the available number. In a sense, the work of deducting unfulfilled orders is already being done by Shopify.
Understanding how Shopify behaves
This is where things can get a bit confusing. When you sync 100 from your sheet, which state on Shopify is it being written to?
Most sync apps will write the sheet's number into either On hand or Available. Get this setting wrong and you'll see unexpected results.
If the sheet's number is sent as On hand, Shopify automatically subtracts Committed. Sheet says 100, Committed is 20, customer sees 80. That's the healthy behavior.
If, on the other hand, the sheet's number is sent directly as Available, Shopify does no subtraction. It overwrites Available with the sheet's 100, so either the 20 Committed units get double-counted or they vanish from the equation. This is often the cause of confusion.
How to handle this in your sheet sync
With all that in mind, let's think about the best way to operate on the sheet side. The short answer: you have three options.
- 011. Keep only the physical stock in the sheet and send it to Shopify as On hand. Let Shopify do the subtraction.
- 022. Compute the unfulfilled-deducted number in the sheet and send it to Shopify as Available.
- 033. Keep the physical stock in the sheet, and pre-deduct an estimated committed amount as a buffer.
Option 1 is the simplest and aligns naturally with how Shopify works. Your sheet just counts what's in the warehouse — no need to pull the Committed number into the sheet. The sync app stays simple too.
Option 2 means pulling Shopify order data into the sheet, which adds implementation overhead. You'd use Apps Script or a dedicated integration to fetch the unfulfilled count and subtract it in the sheet. It can be built, but if the timing of order data and sheet syncs gets out of step, a different set of problems crops up.
Option 3 is a clever operational shortcut. Based on the gut feel of "there's always roughly this many unfulfilled orders sitting around," you pre-deduct that amount as a buffer. Not perfect, but simple and easy to run.
The desire to subtract unfulfilled orders is itself a healthy one. But Shopify already has the Committed concept, and depending on your store's settings, you often don't need to subtract twice. Once you understand Shopify's inventory model, separate the question of "what do I want to subtract in my store?" from "what is Shopify doing automatically?" and the confusion clears up.
Even a single inventory number wears multiple faces — On hand, Committed, Available. When you set up syncing between your sheet and Shopify, it's worth pausing once to map out the relationships. A few hours of upfront understanding will save you months of confusion later.