Why your Shopify options app isn't tracking add-on inventory (and how to check)
Customers pick add-ons on your product pages — a gift box, a spare strap, a case — and the stock count for those items drifts anyway. Before you blame a miscount, check the mechanics: Shopify only reduces stock for what reaches the order as a real variant. Here is why add-ons often don't, and a five-minute test that tells you whether yours do.
The one-line version: if an add-on lands on the order as text, or as a stand-in "fee" product, the real component's stock never moves — and you keep selling it after the shelf is empty.
Why add-on inventory stops tracking
Shopify keeps inventory per variant, per location, and an order only reduces the variants that are actually on it. Anything else is invisible to inventory, however clearly it shows up on the packing slip. Options apps get a customer's choice onto the order in one of three ways.
1. Line item properties
The choice is saved as text on the main product's line, like Gift box: Yes.
Properties don't point at a variant or change a price on their own, so Shopify has nothing to
decrement. That is correct for personalization with nothing to count — engraving text, a
gift message — and wrong for a physical item you stock.
2. A stand-in "fee" product
A second, usually hidden, product is added to the cart at the add-on's price. The money is collected, but the variant on the order is the stand-in, not the gift box on your shelf, so any stock that moves is the wrong stock. Some setups can point an add-on at the real product instead — which is why the test below checks what lands on the order, not which app you use.
3. Expansion into real component variants
A Shopify Function (a Cart Transform) replaces the cart line at checkout with the base variant plus each chosen component's own variant. Every component is a genuine line item, so Shopify decrements it like anything else you sell. Shopify's own free bundles app builds fixed bundles from real components too, as do a number of third-party apps. You can't tell which approach you have from the product page. You can from an order.
The five-minute self-test
This reads the answer off Shopify itself, so it works whichever app you use. Run it for a priced add-on, and again for a bundle if you sell both — they are not always handled the same way.
Step 1: Look at an order you already have
Open a recent order where a customer chose the add-on. If it appears as text under the main
product, like Gift box: Yes, it is a line item property and never reduces stock
— you can stop here. If it is its own line item, click it: is it the product you pull off
the shelf, same SKU, or a generically named product that exists only to carry a price? Either
way, carry on. Seeing a line is not the same as seeing stock move.
Step 2: Write down the component's stock
Find the variant for the physical add-on in Products — the SKU you count on the shelf. If there is no product for it anywhere in your catalog, that is your answer: the add-on exists only in your options app's settings, and Shopify has nothing to count. Otherwise:
- Confirm Track quantity is on for that variant. If it is off, nothing decrements, however the add-on is recorded.
- Note its Available and Committed numbers on the Inventory page, at the location that ships your online orders — and the main product's Available too.
Step 3: Place a test order with the add-on selected
Select the add-on on your storefront, note the price the page shows, and check out a quantity of 2 — a correct setup moves the component by 2. To avoid a real charge, use your payment provider's test mode or a temporary manual payment method (Settings > Payments). If orders flow automatically to a warehouse or fulfillment service, hold this one.
Step 4: Read the order
Open it in your admin and check that:
- The add-on is its own line item, not text under the main product.
- That line is the real component — the product and SKU from step 2. Shopify may group it under the product it was bought with; that is fine.
- The prices add up to what the product page showed.
Step 5: Recheck the stock
The component's Available should be lower by the quantity ordered, and Committed higher by the same amount. Available drops when the order is placed; On hand only changes at fulfillment, so there is no need to wait. For a bundle, each component should drop by its quantity in the bundle times the number of bundles ordered. If only the bundle product's own count moves, its components are not being counted.
Step 6: Clean up
Cancel the test order, choose to restock the items, and confirm Available is back where you started. Remove the manual payment method if you added one.
What your results mean
- Own line, real variant, stock dropped by the right amount: your add-on inventory tracks. Repeat for your other add-on types, then stop worrying about it.
- Text under the main product: a line item property. A physical add-on sold this way is never counted, which is how a store oversells a component it ran out of weeks ago.
- A stand-in product on the order: the money is collected, but whatever stock moved is not the item you ship.
- Real variant, but no change in stock: check Track quantity, and the location the order was assigned to — inventory is kept per location.
If the test fails
- Link the add-on to its real variant, if your current app supports it, and rerun the test.
- Use native Shopify variants when the choice changes which item you ship rather than adding a second one — a size, a color, a finish. They track with no app at all.
- Move to an approach that expands into real components, and run this same test before you trust it.
How Truestock handles it
Truestock Options & Bundles is our free Shopify app, built on the third approach.
- Every priced add-on links to a real variant, picked from a Shopify product picker; the add-on's price fills in from it.
- At checkout, a Cart Transform Function expands the line into the base variant plus each selected component. Each one decrements its own inventory and appears on the order with its own cost per item.
- Prices come from the app's configuration on the product, not from the browser, so a shopper can't edit what an add-on costs.
- Dropdowns, radio buttons, swatches, checkboxes, and text and number fields, with rules that show, hide or require an option based on another choice.
- Fixed bundles with a percent or fixed discount, which expand into their components at checkout.
- Option sets can be imported from an export, with a preview and warnings before anything is created, and a flag on every priced add-on without a linked variant.
It is free, with every feature included. Once it is set up, run the self-test on a Truestock add-on — it is the check we would want you to make.
Install on Shopify → Questions? Tell us about your setup
Shopify is a trademark of Shopify Inc. Truestock is not affiliated with or endorsed by Shopify. The approaches above are general techniques, not descriptions of any particular app — run the self-test on your own store to see how your setup behaves.
Questions
Why isn't my Shopify options app reducing inventory for add-ons?
Shopify only reduces stock for variants that appear as line items on an order. If an add-on reaches the order as line item properties or as a stand-in fee product, the real component's variant is never on the order, so its stock never moves.
Do line item properties affect inventory in Shopify?
No. Line item properties are text on a cart line, such as a gift message. They don't point at a variant, so Shopify has nothing to decrement. They suit personalization with nothing to count, not physical add-ons.
Does an add-on's inventory drop when the order is placed or when it ships?
When the order is placed, the variant's Available quantity drops and its Committed quantity rises by the same amount. On hand drops later, when the order is fulfilled.
Do I need Shopify Plus for add-ons that track inventory?
No. Truestock uses the Cart Transform expand operation, which works on every Shopify plan. Product options do need the Online Store sales channel and a theme that supports app blocks; bundles work without the block.
What can't Truestock do?
Add-ons can only add to a price, not subtract from it; use a Shopify discount for a cheaper choice. There are no file-upload options. And a live bundle prices its parent product at the bundle total, so unpublish or delete bundles before uninstalling, or that price can't be restored for you.
Does Truestock work with subscriptions and other currencies?
Partly. Shopify doesn't expand lines bought on a subscription, so those lines aren't split into components. With Shopify Markets, add-ons in another currency still expand but are charged at each component's own catalog price, and bundles in another currency don't expand: they sell at the converted bundle total without moving component stock.
Can I bring my option sets over from my current app?
If you have an export of them, Truestock can import it as drafts, with a preview and warnings before anything is created, including a flag on every priced add-on that isn't linked to a real variant. Reading another app's export is best-effort, so check the preview.