---
title: Shopify Variant Inventory Policy: Continue vs Deny Explained
date: 2026-04-03
description: What Shopify's variant inventory policy actually does, when to switch from Deny to Continue, and how to flip it across thousands of variants in one pass.
tags: ["Guides","Inventory","Products"]
url: https://www.getaltera.com/blog/2026-04-03-shopify-variant-inventory-policy-continue-vs-deny/
---


You opened a variant in the Shopify admin and saw a checkbox labeled **Continue selling when out of stock**, tucked away under *More details*. Or, worse, you exported a CSV and saw a column called `Variant Inventory Policy` with the values `continue` and `deny`, and Shopify's own documentation barely explains what either one does.

It's a small setting with a big consequence: whether your store can sell what it doesn't have. Here's what each value actually does, when to use which, and how to flip it across the whole catalog without spending an afternoon clicking through variants one at a time.

![Shopify admin "Continue selling when out of stock" checkbox](/images/blog/variant-inventory-policy-admin-checkbox.png "Shopify admin 'Continue selling when out of stock' checkbox  ")

## The two values, in plain English

### The `deny` policy: default

The *Continue selling when out of stock* checkbox is **off**. Shopify stops selling the variant the moment inventory hits 0. The "Sold out" state appears on the storefront, the Add to Cart button is disabled, and that's that. This is what most stores want, most of the time, and it's why Shopify makes it the default.

In the collapsed *More details* row, this shows as `Sell when out of stock` set to `Off`.

### The `continue` policy: oversell mode

The checkbox is **on**. Shopify keeps selling the variant past 0. Inventory goes negative. There's no "Sold out" state. The customer adds to cart and checks out exactly as if there were a thousand units in the warehouse.

This is *oversell mode*. The merchant has decided, deliberately, to accept orders they can't immediately fulfill. In the collapsed view it reads `Sell when out of stock` set to `On`. In the CSV column `Variant Inventory Policy`, it's the value `continue`.

## When to actually use Continue

Continue is the right call in four situations, and one situation where it'll burn you.

**Made-to-order or print-on-demand.** Inventory is conceptually infinite — you produce on demand, so a "sold out" state doesn't make sense and only loses sales. Set every variant to `continue` and forget about it.

**Preorders and backorders.** You know the restock date. You want to keep taking orders against it. Pair `continue` with a clear delivery estimate on the product page so the customer isn't surprised when their order doesn't ship that afternoon.

**Dropshipping with a trusted upstream.** Your supplier has stock; you don't track it locally. The local inventory count is meaningless, so don't let it gate sales.

**Bundles and kits.** The variant itself is a "ghost" SKU, and real inventory lives on the components. The bundle's own count will always be 0, so `deny` would mean you can never sell the bundle at all.

{{< figure src="/images/blog/variant-inventory-policy-decision-tree.gif" alt="Decision tree for Continue vs Deny" caption="Continue when inventory is conceptual or restock is dated. Deny otherwise." >}}

And the anti-pattern: **don't use Continue to mask understocking.** If you can't fulfill in a reasonable window, oversells turn into refunds, support tickets, and chargebacks. Continue is for *intentional* oversells, not accidental ones. If you find yourself flipping it on because a supplier is late, fix the supplier; don't paper over it with a setting.

## The setting Shopify hides: per-location behavior

Variant inventory policy is variant-level, not location-level. If you sell out of multiple locations, `continue` means "keep selling even when total inventory across all locations is 0." There's no native "continue at the warehouse but stop at the retail store" toggle for the online store.

There is one carve-out worth knowing: **POS is excluded.** When you tick *Continue selling when out of stock*, Shopify shows a small `POS excluded` badge next to the checkbox, and the policy doesn't apply at the point of sale, so your in-store staff won't accidentally ring up a variant that's at zero. The setting only governs the online store.

If you need finer location-aware behavior beyond that, the workarounds are location-specific publishing or a third-party fulfillment-priority app. It's worth knowing the limitation exists before you go looking for a checkbox that isn't there.

## How to change it across many variants at once

Three methods, ordered from smallest catalog to largest.

### A. Shopify admin (1–50 variants)

Open the bulk editor, add the *Continue selling when out of stock* column, and tick the boxes you want flipped. Fine for small catalogs. Past about 50 rows it stops being fine. You're scrolling, your filters reset, and one mis-click changes a row you didn't mean to touch.

{{< figure src="/images/blog/variant-inventory-policy-bulk-editor.png" alt="Shopify bulk editor with the Continue selling when out of stock column" caption="Fine for a few dozen rows. Painful past that." >}}

### B. CSV export → edit → import (50–10,000+ variants)

This is the workflow Altera was built for, and it's the right answer for any catalog past a couple hundred variants:

1. Export your products with the `Variant Inventory Policy` column included.
2. Open the file in Excel or Google Sheets.
3. Filter to the variants you want to change, by tag, vendor, SKU pattern, product type, or whatever the rule is.
4. Set the column to `continue` or `deny`.
5. Re-import.

A few minutes, no clicking through variants, and the change is auditable because you have the spreadsheet.

> **Already using Matrixify?** Your existing files work in Altera with no reformatting. The `Variant Inventory Policy` column is identical.

### C. CLI (developer / agency option)

If you're managing multiple stores, or scripting this as part of a release process, the CLI is faster than any UI:

```bash {caption="Export products with variants, edit the column, re-import. Same shape as the spreadsheet workflow."}
npx altera export create products:+variants__id,+variants__inventoryPolicy \
   --output InventoryPolicy.xlsx

# Edit the Variant Inventory Policy column in the Excel

npx altera import create InventoryPolicy.xlsx
```

Same column, same values, no admin in the loop.

## Three mistakes to avoid

1. **Setting Continue on every variant "just in case."** You'll oversell Black Friday and hate yourself. Continue is intentional, per-product, per-context.
2. **Forgetting that Continue removes the sold-out state entirely.** The customer has no way to know there's a wait. If you're using Continue for preorders or backorders, communicate the timeline on the product page yourself; Shopify won't do it for you.
3. **Mixing Continue with auto-archive rules.** If a variant is set to archive at 0 inventory, Continue won't save it from being hidden. Pick one behavior or the other.

## Pick one per variant and move on

Continue and Deny do one job. They decide whether the store keeps selling when inventory hits zero. The default works for most products, but most catalogs have a handful of variants that need the other setting (preorders, made-to-order, bundles). Pick the right one per variant, flip them in bulk when the policy changes, and you can stop thinking about it.

