Sync inventory across products
By the end you'll have one product automatically drawing down the stock of other products when it's fulfilled. Sell a gift box that always contains a candle, a mug and a bag of coffee, and fulfilling that box takes one of each off your shelves without you touching a spreadsheet.
An inventory sync shows nothing to customers. It adds no fields, no choices, no options to your product page. It's pure bookkeeping, and setup takes about a minute.
When you want one
You want an inventory sync when selling one product should consume stock from other products in your catalog. A curated gift box with a fixed list of contents. A starter kit assembled from items you also sell individually. A sampler pack where every item inside has its own product page. Anything where fulfilling one thing should reduce the stock of related things.
If customers are picking what goes inside, you don't want this. That's Build-a-Box. If they're choosing between options on a product, that's an option set. An inventory sync is for a fixed relationship you already know.
Set it up
- Open Optionfier from your Shopify admin and click New inventory sync.
- Fill in Name. Internal only, so name it after the product it covers.
- In the Trigger Product card, click the Trigger product field and choose Select. Shopify's product picker opens. Pick the product whose fulfillment should trigger the deductions, the gift box itself in our example. Note that this card only offers Select, so the product has to already exist in your store.

- The Linked Variants card lights up once the trigger product is set. Before that its button is disabled and it just tells you to pick a trigger product first. Click Add linked variant. (If your trigger product has more than one variant, a Trigger Matching Mode card shows up here too. Read the next section before you go further.)
- On the new Linked Variant row, click Variant and choose Select to pick the exact variant that should be deducted. It's a variant picker, not a product picker, so you're choosing "Candle, Large" rather than "Candle". The row stays flagged as invalid until you pick one.
- Set Quantity to deduct. It defaults to 1. Bump it when the box contains more than one of something, like two coasters. The helper text under the field reads back what you just configured ("When the trigger product is fulfilled, 2 unit(s) of this variant are deducted from inventory."), which is a good last check before you move on.
- Click Add linked variant again for each remaining item, one row per variant.

- In the Status card, toggle to Published, then save. The help text under it flips from "This inventory sync is inactive." to "This inventory sync is active and processing fulfillments.", which is the one thing to double-check before you close the page.
When the trigger product has variants
The steps above describe a single-variant trigger product, which is the common case for a gift box. Each Linked Variant row names one variant and one quantity, and every row fires when the trigger product is fulfilled.
Give the sync a trigger product with more than one variant and a Trigger Matching Mode card appears above Linked Variants, with two choices:
- All variants: "Any fulfilled variant of the trigger product deducts the same linked variants." One shared list, same deductions no matter which variant sold.
- Per-variant: "Each trigger variant has its own linked-variant deductions." The Linked Variants card splits into one sub-card per trigger variant, each with its own Add linked variant button and its own rows.
Per-variant is the one to reach for when the variants genuinely contain different things. A "Gift Box" product with Small and Large variants that hold different items is one sync in Per-variant mode, not two separate syncs. Optionfier picks Per-variant as the starting mode when the trigger product has multiple variants, so check the card before you start adding rows.
The Inventory Engine card near the bottom is informational. It's there to remind you what this thing does: deduct linked variant inventory when the trigger product is fulfilled, with no customer selection involved.
What the customer sees
Nothing. That's the whole point, and it's worth saying out loud because it's the most common confusion about this feature. There's no field on the product page, no extra line in the cart, no change at checkout. The customer buys the gift box and sees a gift box.
What changes is on your side. When you fulfill the trigger product, each linked variant's stock drops by the quantity you configured. Note the timing: deduction happens on fulfillment, not when the order is placed, so an unfulfilled order won't move any numbers yet.
Refunds run the same logic in reverse. Refund the trigger product with Restock items checked and every linked variant gets its stock back, respecting each row's quantity. Partial refunds restock proportionally. Uncheck Restock items and nothing comes back, exactly the way Shopify behaves with its own products. Cancel a fulfillment and Optionfier returns what that fulfillment deducted, minus anything an earlier refund already restocked, so you never see double-restocking.
The sync only runs one direction. Fulfilling the trigger draws down the linked variants; restocking or editing a linked variant never touches the trigger product.
Go deeper
- Inventory sync in the knowledge base
- Refunds for Text on order and Cancelled Fulfillments
- Inventory isn't updating
- Can't connect a variant to a choice, if a 3PL-stocked variant won't select