Platform

Shopify's new Collections API: the shift to composable, source-based collections

Shopify's 2026-07 Admin API rebuilds collections from the ground up. Collections are no longer 'custom' or 'smart', they're a union of composable sources. Here's the new model, what it unlocks, and what to watch.

Bas Lefeber

Founder, learnshopify.dev · July 8, 2026 · 7 min read

Don't just read it, build it liveThis feature is a hands-on lesson in a live storefront, right in your browser. Free, nothing to install.

For as long as anyone reading this has built on Shopify, a collection has been one of exactly two things. A custom collection, where a merchant hand-picks products one by one, or a smart collection, where products fall in automatically because they match a set of rules. You picked one at creation time, and you lived with the tradeoff. Curation gave you control but no automation. Rules gave you automation but no exceptions. If you wanted a rules-based collection with three products manually pulled out and one manually forced in, you were out of luck, or you were writing an app to babysit the product list by hand.

As of the 2026-07 GraphQL Admin API (stable July 1, 2026), that split is gone. Shopify has rebuilt the collections model around a single idea: a collection is a union of sources. This post walks through what that actually means, the new capabilities it unlocks, and the one caveat theme developers need to know before they get excited.

TL;DR

Collections are no longer either/or. In 2026-07 a collection is composed of one or more sources (rule-based conditions, manual product or variant selections, references to other collections, and app-owned sources) plus exclusions. Shopify re-evaluates the combined result as your catalog changes. The big unlocks are multi-source collections, variant-level targeting, sub-collections, manual exclusions on rule-based collections, and shareable app-owned sources. The migration is non-breaking: deprecated fields still work in 2026-07. The one catch is storefront rendering of variant-scoped collections, which is still rolling out.

The old model forced a choice between curation and automation. The new model composes both, plus exclusions, into one collection.

The old model: a fork in the road

The mental model that shipped with Shopify years ago was a fork. At the moment you created a collection, you chose a lane. A custom collection stored an ordered list of products you added yourself. A smart collection stored a ruleSet: a set of conditions like tag equals summer or price less than 50, joined by all (every rule must match) or any (at least one), and Shopify kept the membership current for you.

It worked, but the seams showed the moment a merchant wanted anything in between. "Everything tagged sale, but pull these two clearance duds out" was impossible on a smart collection: rules had no notion of an exception. "This hand-curated edit, plus anything that goes on sale automatically" was impossible on a custom collection: it had no rules at all. Apps papered over the gap by re-computing product lists and pushing them in with collectionAddProducts on a schedule, which is exactly the kind of shadow-state babysitting the platform should own.

The new model: a collection is a union of sources

In 2026-07 the fork disappears. A collection now has a sources array, and each source contributes members. Shopify unions the sources together, subtracts anything matched by an exclusion, and re-evaluates the whole thing automatically as products and variants change. Curation and automation stop being a choice you make once. They are just different kinds of source you layer into the same collection.

According to Shopify's developer docs, the sources come in a few shapes. A conditions source (documented as CollectionConditionsSource) is the evolution of the old smart-collection rules: conditions plus explicit product or variant selections in one place. A sub-collection source (CollectionSubCollectionsSource) inherits membership from other collections you reference by ID. And a shareable source is an app-owned conditions source that lives independently and can be linked into more than one collection at once.

The shape of a composable collection (conceptual)
Collection "Summer sale, hand-tuned"  sources:    - conditions:  tag = "summer"  AND  price < 50      (auto)    - selections:  [Ceramic Mug, Linen Tote]           (manual, forced in)  exclusions:    - selections:  [Faded Cap, Last-season Sandal]      (manual, pulled out) Result = (matches the rules  OR  hand-picked)  MINUS  excluded

Treat every type and field name here as versioned

The model shipped in 2026-07 and the exact GraphQL type names, input shapes, and enums are still settling as the preview matures. Names like CollectionConditionsSource and sources come straight from Shopify's current docs, but pin to the live Use the new collections model reference before you write anything. Do not hardcode a shape from a blog post, including this one.

What the new model unlocks

The reframe is elegant, but the reason it matters is the capabilities that fall out of it. Five stand out.

Sources union together, exclusions subtract, and Shopify keeps the result live as the catalog changes.
  • Multi-source collections. Layer rule-based conditions, manual picks, references to other collections, and app sources in a single collection. The "rules plus a few hand-forced exceptions" case that was impossible before is now the default shape.
  • Variant-level targeting. Sources can target individual variants, not just whole products. A collection can hold "only the red variants" or "only the in-stock sizes" instead of dragging the entire product in because one variant qualified. Shopify documents this as evaluating conditions per variant when a source is variant-scoped.
  • Sub-collections. A collection can reference other collections as a source and stay in sync as they change. This is the native way to build "all sale items" as the union of each category's sale collection, with a documented one-level nesting limit.
  • Manual exclusions. Rule-based collections can finally carry explicit exceptions. Match everything tagged clearance, then subtract the three products you never want to show. No app, no scheduled re-sync.
  • Shareable app-owned sources. An app can publish a source (say, "trending in the last 24 hours" or "personalized for this segment") that a merchant opts into as one ingredient of a native collection. The app contributes intelligence without taking over the whole product list, and the merchant keeps control of everything else.

The pattern behind the last one

Shareable sources are the quietly important change. For years the only way an app could influence a collection was to own it outright and rewrite the product list. Now an app is one voice in a composition the merchant still controls. That is a healthier boundary, and it is worth internalizing as a design pattern well beyond collections.

Is this a breaking change?

For your existing collections, no. The migration is deliberately non-breaking. Legacy-shaped collections keep working, and the older fields you already call (ruleSet, collectionAddProducts, the classic collectionCreate(input:) argument) are still present in 2026-07, now marked deprecated. Webhooks (collections/create, collections/update, collections/delete) behave as before, and reading collection.products to get the resulting product list is unchanged.

The one real gotcha: old API versions and 404s

There is a sharp edge. A collection that uses the new capabilities (multiple sources, exclusions, sub-collections, or variant targeting) cannot be represented in pre-2026-07 API versions. Per Shopify, those collections are filtered out of list results and can return 404 Not Found to older versions. So any app that reads, writes, or syncs collections should move to 2026-07, or it will silently stop seeing a growing slice of a merchant's catalog. Full field-by-field mapping is in the migration guide post.

The caveat for theme developers

Here is the part that is easy to miss in the excitement. The new model lives in the Admin API. The storefront side, how a variant-scoped collection actually renders on a collection page, with swatches, filters, and price ranges scoped to just the included variants, is a separate piece that was still rolling out behind a beta flag when the model went stable.

In the developer-preview thread, Shopify's Diana Cheptene (Merchandising team) confirmed storefront support was being enabled gradually and, encouragingly, that it would need no theme changes on the developer's end once live. But "gradually rolling out" and "stable in the Admin API" are two different timelines. If you build a merchandising feature that depends on variant-level collection pages rendering correctly today, verify it on the target store first. We pulled that whole question into its own post: variant-level collections and the storefront.

Learn this properly · free lesson

Build the collection page layout

Build a real collection page against a live storefront, so when variant-scoped collections land you already know exactly which markup they touch. Free, runs in your browser.

Try this lesson — free

Why this is worth understanding deeply

It would be easy to file this under "new API, read the changelog when I need it." That undersells it. The custom-versus-smart split was one of the oldest load-bearing assumptions in the whole platform, baked into apps, theme logic, merchant mental models, and a decade of Stack Overflow answers. Replacing it with a composable union of sources is the kind of foundational change that quietly reshapes what is buildable.

The reusable lesson, and the thing an AI assistant will not tell you unless you already know to ask, is that composition beats configuration. A collection built from small, combinable sources is easier to reason about, extend, and share than a monolith that is either fully manual or fully automatic. That principle shows up everywhere in good Shopify architecture, from theme sections and blocks to how you model product data. Collections just caught up to it.


Sources: Shopify Partners, Introducing the new Collections API; Shopify Dev, Use the new collections model and the 2026-07 changelog entry; and the developer-preview community thread.

Frequently asked questions

What is the new Shopify Collections API?

It is a rebuild of the collections model in the 2026-07 GraphQL Admin API (stable July 1, 2026). Instead of a collection being either a manual 'custom' collection or a rule-based 'smart' collection, a collection is now a union of composable sources: rule-based conditions, manual product or variant selections, references to other collections, and app-owned sources, with support for manual exclusions. Shopify re-evaluates the combined membership automatically.

Are Shopify collections still 'custom' and 'smart'?

No. The custom-versus-smart distinction is replaced by a source-based model. A single collection can now combine rule-based conditions with manual picks and exclusions, which the old binary split made impossible. Existing custom and smart collections keep working via deprecated fields, but the new conceptual model is a union of sources.

Is migrating to the new collections model a breaking change?

No, it is non-breaking. Deprecated fields such as ruleSet and collectionAddProducts still work in 2026-07, and webhooks plus reading collection.products are unchanged. The one sharp edge: collections that use new capabilities (multiple sources, exclusions, sub-collections, or variant targeting) cannot be represented in pre-2026-07 API versions and may return 404 or be filtered out, so apps that read or sync collections should upgrade to 2026-07.

Can themes use variant-level collections on the storefront yet?

Not universally at launch. The new model is stable in the Admin API, but storefront rendering of variant-scoped collections (swatches, filters, and price ranges scoped to the included variants) was still rolling out behind a beta flag. Shopify says it needs no theme changes once enabled, but availability is gradual, so verify on the target store before relying on it.

Start free

Ready to become a Shopify developer?

You just read how it works. Now write it yourself: real tickets from a live store, in an editor where the storefront updates as you type. Module 1 is free, no card.

Start your first lesson

Free · No credit card · Your first win in minutes

PlatformCollectionsAdmin APIArchitecture

About the author

Bas Lefeber, Founder, learnshopify.dev

Bas builds learnshopify.dev, where developers learn production-grade Shopify theme development against a live storefront. He writes about Liquid, theme architecture, and the parts of the job that still matter now that AI writes the code.

Keep going in the curriculum