Inventory and selling via sets and individually

Topic summary

A store selling items in sets of 5 wants to also sell individual units while keeping accurate inventory. Currently, inventory is tracked as “sets,” and they need conditional deductions: 5× per purchase on pages tagged (e.g., “setsonly”), and 1× on individual-item pages, without changing the user experience.

Key constraints: over 1,200 variations; switching SKU quantities to actual unit counts complicates set pages. (SKU = product identifier.)

Proposed/observed solutions:

  • No native Shopify feature to multiply inventory deductions based on page tags; likely requires custom theme or checkout logic.
  • Bulk order/minimum quantity apps can enforce multiples, but introduce page load and UI issues.
  • Frontend customization: replace the quantity selector with increments of 5 when a tag (e.g., “set-5”) is present; Shopify Support may provide code for Shopify Plus (enterprise tier), unclear for non-Plus.

Current outcome: No finalized solution; one participant may pursue custom templates or drop mandatory multiples entirely.

Status: Unresolved and open. Key question remains how to implement conditional inventory deductions without performance or UX trade-offs.

Summarized with AI on January 17. AI used: gpt-5.

We have designed our products to be sold in sets of 5 of the exact same item. We have over 1200 variations across the site.

We now want to sell individual items as well.

Under the per-set model, when we receive 100 items we were setting the quantity in shopify to 20. A sale of 1 set deducted 1 from the quantity leaving 19 sets available. We knew the actual stock count is quantity on hand *5. Works perfectly and this is how the shop is currently set up.

To sell individually this won’t work, so we need to change all of our SKU quantities to the actual values (IOW 5 x current stock at hand). But that leads to a problem for those pages where we still sell sets of 5.

We need something that will run behind the scenes that effectively says, "when a sale is made and the page has a ‘setsonly’ tag, the quantity deducted from the SKU should be 5 x the quantity purchased. Otherwise it should be 1x.

This would cause the stock count to drop by 10 when 2 sets were purchased from a ‘setsonly’ page, but for the pages selling individual items the quantity selected (2) is deducted.

Is there a way to establish this different handling of inventory adjustment in Shopify, so that the correct number of items sold is deducted from stock regardless of whether the buyer is on a page that sells items in sets of 5, or on pages selling them individually? Our goal is to have a solution that to our customers does not require them to think or interact with the site any differently than they do today. In other words, with minimal to no change to the user experience.

1 Like

Did you find a solution to this? I need to do something similar.

Not coded in Shopify directly, nor a template that provides this functionality. I may end up going the custom template route where the logic is coded into the individual pages and the checkout page – at a not insignificant cost I suspect. I did test drive a couple of bulk order apps that allowed one to set minimum orders before activating the Add to Cart button, but they added pretty significant load time to the page and quite frankly, looked fugly. But a couple did work which at least promises the solution is possible. Possible, attractive and affordable however seem to be somewhat exclusive features.

Bottom line is I may need to rethink the entire site and selling method - dropping the multiple requirement entirely. Then let the customer decide when sufficient has been ordered to justify the shipping cost, which seems how many base sales nowadays.

You could modify the quantity selector so it shows increments of 5 (i.e. 5, 10, 15, 20). The custom code can be implemented so that it replaces the normal quantity selector when a particular tag is present, like “set-5” or something.

I recently reached out to Shopify Support about a similar use case and their frontend team was able to provide custom code for our theme to accomplish this, but you probably have to be on Plus for them to do that.