Oversell protection: stop bundles and singles selling the same stock twice
The problem this solves
Say you have 2 units of a t-shirt on the shelf. You sell it as a single, and you also sell a "Pack of 2".
A shopper puts the Pack of 2 in their cart, then adds 2 singles as well. Shopify checks each cart line on its own: the pack line looks fine, the singles line looks fine. Nobody checks the total. The cart now asks for 4 units of a product you have 2 of, and the order goes through.
You find out when you go to pack it. Multipacks knows which of your products draw from the same physical stock — that is exactly what your bundle setup describes — so it can add the lines up
and catch this. Oversell protection is that check.
Four levels of protection
Pick how firm you want to be. Each level includes the ones above it.
| Level | What happens | Where you set it |
|---|---|---|
| 1. Warn | A notice appears in the cart: "Only 2 left of Blue Tee across your cart — needs 4." The shopper can ignore it. | Multipacks app |
| 2. Shopper removes | Same notice, plus a Remove out-of-stock item button. | Theme editor |
| 3. Remove automatically | The offending item is taken out of the cart and the shopper is told. No button, nothing to dismiss. | Theme editor |
| 4. Block checkout | The order cannot be completed while the cart is oversold, however the shopper got there. | Shopify checkout settings |
Levels 1–3 all happen in the cart, in the shopper's browser. They are the friendly version: the shopper sees the problem while they can still do something about it. A shopper who never opens the cart page, or who has JavaScript disabled, will not see them.
Level 4 is the one that actually enforces. It runs on Shopify's servers at checkout, so nothing gets past it. Most stores want level 3 and level 4: level 3 is the good experience, level 4 is the guarantee.
Before you start
-
An Online Store 2.0 theme. Most themes released since mid-2021 qualify
(Dawn, Refresh, Horizon, Sense, Craft and similar).
-
Your bundles configured in Multipacks — that is how the app knows which
products share stock.
- No plan requirement. Oversell protection is available on every plan.
Step 1 — Turn on the check (required for every level)
Grant the theme permission, if asked
Multipacks app → Preferences. If a yellow banner reads "Additional permission needed", click Re-authorize and approve. Until then the switch below stays greyed out.
Switch it on
Multipacks app → Preferences → Oversell warning → Enable.
This is the store-wide default and the master switch: nothing else in this guide works until it is on, including checkout blocking.
Optional: override one bundle
Open any bundle in Multipacks → Oversell warning:
- Inherit store default — follow the switch above (the normal choice).
- On / Off — force it for this bundle only.
Use Off for a bundle you are deliberately happy to oversell.
Step 2 — Choose what the shopper sees in the cart
These live in your theme, because they are part of your storefront.
-
Shopify admin → Online Store → Themes → Customize on your live
theme.
- Left sidebar → App embeds → switch Cart bundle manager on.
- Expand it and set:
| Setting | Effect |
|---|---|
| Oversell warning text | The notice itself. Placeholders: {title} product name, {available} units in stock, {needed} units the cart is asking for. |
| Let shoppers remove out-of-stock items | Adds a remove button to the notice. → Level 2 |
| Remove button text | Wording on that button. Default: Remove out-of-stock item. |
| Automatically remove out-of-stock items | Removes the item with no button and no dismiss. Overrides the setting above. → Level 3 |
| Auto-removed notice text | What the shopper is told after an automatic removal. Same placeholders. |
- Click Save.
Leave both checkboxes unticked for level 1, warning only.
Step 3 — Block checkout (the enforcing level)
This is a Shopify checkout rule you add yourself. Multipacks provides the rule; switching it on stays your decision, and you can remove it at any time.
- Shopify admin → Settings → Checkout.
- Scroll to Checkout rules → Add rule.
- Choose oversell-validation from the list. It is provided by the Multipacks app.
-
Give the rule a name your team will recognise. We suggest:
Multipacks — oversell protection. Shoppers never see this name; it is for your own checkout settings page.
- Leave "Block checkout if the app experiences a problem" unchecked. If Multipacks ever cannot answer, you want carts to go through rather than your whole checkout stopping. An outage should cost you an occasional oversell, not every order.
- Save.
A shopper with an oversold cart now cannot complete the order. They see a message naming the product, what is in stock, and what their cart is asking for.
Word the checkout message yourself
Multipacks app → Preferences → Checkout block message.
Default:
We can't complete this order — only {available} {title} left in stock, but
your cart needs {needed}.
Placeholders: {title} product name, {available} units in stock, {needed}
units the cart is asking for. Leave it blank to use the default.
Check it works
Do this on your live storefront, with a product you can safely take out of stock
for a few minutes.
- Pick a bundle and note one of its components.
- In Shopify, set that component's stock below what the bundle needs — for a 2-pack, set it to 1.
- Add the bundle to your cart on the storefront. You should see the warning, or the item removed, depending on the level you chose.
-
If you set up level 4, try to check out. Checkout should refuse, with your
message.
-
Now put the stock back and try again. The same cart should sail through.
This second test matters: without it, a blocked checkout could just as easily
have been blocked by something else entirely.
Products this deliberately skips
Anything set to "Continue selling when out of stock" in Shopify. That
setting is you telling Shopify you are happy to oversell that product, so
Multipacks leaves it alone at every level.
Untracked products. No stock figure, nothing to compare against.
Products where stock cannot be read at that moment. Multipacks treats
unknown as "no problem" rather than guessing at zero — it will never remove an
item or block an order on a number it does not actually have.
Troubleshooting
The Oversell warning switch is greyed out.
Either the theme permission is missing — look for Additional permission needed
and click Re-authorize — or your theme is not Online Store 2.0. The app says
which in a banner above the switch.
No warning in the cart.
- Is Oversell warning on in Preferences?
- Is the Cart bundle manager app embed on and saved in your live theme?
- Is that bundle's own override set to Off?
- Is the product set to Continue selling when out of stock?
- Is the cart genuinely oversold? The check compares the whole cart against real stock — plenty of stock means no warning, which is correct.
The warning shows but checkout still goes through.
Expected, unless you completed Step 3. Levels 1–3 inform; only the checkout rule enforces. Check Settings → Checkout → Checkout rules and confirm the rule is listed and active.
Checkout is blocked and I don't think it should be.
Read the message — it names the product, the stock figure, and what the cart is
asking for. Compare against that product's stock in Shopify. Remember that bundles count towards it: a 2-pack in the cart is asking for 2 units of the component, not 1. To let it through, either restock, set the product to continue selling when out of stock, or set that bundle's Oversell warning override to Off.
I want to turn blocking off in a hurry.
Shopify admin → Settings → Checkout → Checkout rules → remove or disable the rule. It takes effect immediately and does not touch anything else
in Multipacks.
Still stuck? Contact Multipacks support with your shop name, the product
involved, and what the cart contained.