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:

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:

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

If the test fails

How Truestock handles it

Truestock Options & Bundles is our free Shopify app, built on the third approach.

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.