Admin / New feature

Product Variant Publishing
A new feature that lets you toggle visibility on a per-variant basis

Visibility control, until now limited to the product level, can finally be set at a granularity like "hide only the red S" or "publish only the bulk B2B size to the wholesale channel"—with no need to delete variants or create duplicate products.

On this page
  1. What's actually changing (a 30-second overview)
  2. How it works: variants and channels
  3. Three entry points for managing it
  4. Old workarounds vs. Variant Publishing
  5. Expected use cases (as documented by Shopify)
  6. How to set it up (3 steps)
  7. Key points for developers
  8. Three use cases for your business
  9. A one-line summary for your pitch

1What's actually changing

Until now, Shopify's "published/hidden" status could only be controlled at the Product level .
With this update, you can now toggle published/hidden at the Variant level , and even per channel/catalog .
PRODUCT

Before: product level only

To pull off "hide just one size," you needed stopgap measures like deleting variants or creating duplicate products—and you'd lose the inventory history.

Now: per-variant + per-channel

You can "hide" a variant from the storefront while keeping both the variant and its history, and vary which combinations show per channel/catalog.

2How it works: variants and channels

Product: T-Shirt S / Red M / Red L / Red XL / Red 4 variants Online Store S / Red L / Red XL / Red 3 published B2B catalog L / Red (wholesale-only variant) Hidden (admin only) M / Red (being discontinued) What stays Variant ID Inventory and sales history SKU / metafields Links to existing orders Since nothing is deleted, you can bring it back later
Unpublish ≠ delete is the key. Both the variant and its history stay in the admin, making it easy to resell seasonal items or recover from accidental publishing.

3Three places to make changes

Product detail page

Toggle the published status on each variant row from the standard product editor.

Variant detail page

Open a single variant to fine-tune its published status per channel.

Bulk editor

Edit many variants at once. Toggling on/off in bulk by size or color becomes practical.

4Old workarounds vs Variant Publishing

What you want to doOld makeshift fixVariant Publishing
Hide only specific sizes Delete Delete the variant (history is lost too) Unpublish Hide it while keeping the history
Pre-launch staging Draft product You had no choice but to set the whole product to draft Create as unpublished Register only the new variants ahead of time as unpublished
Region-specific variants Duplicate product Duplicate the product per country to split markets Publish by catalog Limit plug types and the like to the relevant market only
B2B-only large sizes Separate product Create a separate wholesale SKU as its own product Publish to the B2B catalog only Manage it all within a single product
Make limited items online-exclusive Inventory separation Location inventory allocation required Channel selection Publish to Online Store only

5Expected use-case scenarios (per official docs)

Staging

Prepare variants before launch

Create new variants in an unpublished state ahead of time, then switch them to published on the release date.

Discontinuation

Retire discontinued options

Hide discontinued variants from the storefront while keeping the variant itself and its history in the admin.

Region-specific

Get region-specific variants to the right markets

Publish variants that can only be sold by region, such as plug types, to the relevant markets only.

B2B-only

Offer high-volume variants to B2B only

Offer bulk-quantity variants to B2B customers only, separating B2C and B2B within the same product.

Keeping limited-edition items exclusive to the online store is also presented as an official use case.

6How to do it (3 steps)

1

Open a product or variant

Choose from one of three entry points: product details, variant details, or the bulk editor.

2

Choose a channel/catalog

Specify where you're toggling visibility (e.g., Online Store or a B2B catalog).

3

Unpublish the variant

Remove it from sale within the selected scope. You can revert later—it's not a deletion.

This removes the need for the previously required "deleting variants" and "creating duplicate products," so your product catalog doesn't bloat.

7Key points for developers

VARIANT

1. Control granularity moved down from Product to Variant

Where previously only Product.publishedOnChannel effectively mattered, it's best to think of this as adding a per-variant visibility layer.

CH CAT

2. Both Channel and Catalog are supported

This isn't just about splitting sales channels—it also applies to B2B catalogs and per-market catalogs, making it easier to design different assortments across multiple B2B accounts.

3. History is retained even when unpublished

Variant IDs, inventory, sales, and links to existing orders all stay intact—a safe design that doesn't break reporting or returns processing.

4. Bulk editor support makes migration practical

Migrating existing duplicate products over to Variant Publishing can also be done in the bulk UI—no need to navigate one item at a time.

API ?

5. The exact Admin GraphQL / Storefront API specs are not documented in the changelog text

The text specifies only the three UI surfaces: product details, variant details, and the bulk editor.API names and field names, how it appears in the Storefront API, and change detection via webhooks are not documented. Ingesting this into connected apps, PIMs, and OMSs must be verified against the official reference.

8Three use cases you can put to work

B2B XL B2C S/M JP only
USE CASE 1

Unifying the product master for stores that run both D2C and B2B

Challenge
Bulk and case-pack variants for B2B were registered as separate products, duplicating the product master. Updating price lists, inventory, and photos took twice the effort.
Approach
Merge the B2B variants into the main product, then set them to unpublished on the Online Store and published only in the B2B catalog.
Impact
A single product master, one-shot updates to photos and descriptions, and unified inventory management across B2B/B2C.
Technical notes
There's no documented procedure for automating the switch via API. Run the migration with the bulk editor, and separately verify how to capture a snapshot of publication status.
EU US JP
USE CASE 2

Organizing region-specific spec variants for cross-border commerce

Challenge
For appliances, PC peripherals, and the like, plug-type (A/C/G) and voltage variants were shown to all customers, leading to mistaken purchases and returns.
Approach
Using a catalog prepared per market, publish only the variants that match the region and unpublish the rest.
Impact
Fewer returns from spec mismatches, fewer support inquiries, and clear visibility into the SKUs that sell locally.
Technical notes
Because this spans three axes—market × catalog × variant—be sure to keep an operations document (a matrix table).
SOON ▶ Scheduled to publish SOON ▶ Inventory being prepared LIVE ▶ Now available
USE CASE 3

Staged rollouts for seasonal merchandising and drop sales

Challenge
Adding new SS/AW colors and sizes "right at the publish time" required late-night manual work on the day.
Approach
Register all the new variants as "unpublished" in advance, then simply switch them to published at the release time. Photography, SKU numbering, and stocking can all be completed ahead of time.
Impact
Less operational load on launch day, no lost sales right after launch, and product page URLs secured in advance.
Technical notes
Whether the release schedule can be automated (Shopify Flow / API batch) isn't covered here. For now it's safest to plan operations around a manual switch.

9A one-line summary you can use in a pitch

"Shopify's publishing control finally moves to the variant × channel/catalog level .
No duplicate products, no variant deletion—and the operational design forB2B, cross-border, staging, and limited sales becomes dramatically simpler all at once."