Shopify collections group products into pages such as /collections/gas-stoves that shoppers browse, open from menus and filter. You fill a collection by hand, with conditions on product fields (tags, product type, vendor, price, metafields and more), or with both. Collections are available on the Basic plan and higher.
Shopify is replacing its two classic types, manual and smart (automated) collections, with one collection type built from sources, and its Help Center now labels the old types "legacy". In admins where the new model is live, existing collections were converted automatically; stores that do not have it yet keep manual and smart collections for now. This guide starts with the source-based model, then covers every condition type and its limits, how to map a category tree onto collections and the errors that leave products in the wrong place.
How a Shopify collection is built from sources
A collection has one or more sources, and its contents are everything those sources return; a product that two sources return appears once. Shopify's collection docs list four source types:
- Products: conditions and manual picks over your product list, with whole products included.
- Variants: the same, but only the matching variants are included, so a "Red" collection shows red swatches and red prices only.
- Collection: the products of another collection, which is how nesting works (a Teaware collection built from Teapots, Steepers and Infusers).
- App: products supplied by an app source, such as a trending-products list.
Each source can also exclude products, by condition or by hand, or exclude another collection, though not by hand and by collection in the same source. Exclusions always win over inclusions. The new features come with store-wide limits:
Shopify collection limits
| Conditions per collection | 60 | All collections |
|---|---|---|
| Collections with any conditions | 5,000 | Per store |
| Collections that contain another collection | 50 | Per store |
| Collections that exclude another collection | 5 | Per store |
| Collections with variant-level items | 100 | Per store |
| Metafield definitions usable in conditions | 128 | Per product and per variant definitions |
Sources: creating collections and collection conditions in the Shopify Help Center. If an app or PIM syncs your products, check that it supports the new model: Shopify's migration guide for developers says apps on Admin API versions before 2026-07 do not see collections that use the new features (several sources, exclusions, nested or variant sources), so they can neither read them nor add products to them.
Manual and smart collections in stores without the new model
A manual collection holds exactly the products you add, until you remove them. It suits curated pages: a gift guide, a lookbook, a launch. It does not scale: every new product has to be added by someone.
A smart collection includes every product that matches its conditions, and you choose whether products must match all conditions or any one. It adds whole products only, never single variants. In the new model the same jobs are done by a Products source: hand-picked products in place of a manual collection, conditions in place of a smart one.
Which one to use is mostly a question of who maintains it. If a person decides membership (a buyer's picks for a holiday guide), hand-picking is honest and fine. If a product field decides membership (all gas stoves, everything under EUR 50), use conditions, because a hand-kept list goes stale the first time someone adds a product and forgets the collection. The source-based model removes the either-or: a condition-based source can carry a few hand-picked extras and a few manual exclusions in the same collection.
Every condition type for automated collections
Conditions work in Products and Variants sources. Only four condition types can also exclude products: product category, tag, type and vendor. The full list, from Shopify's conditions reference:
Collection condition types and operators
| Product title, variant title | is equal to, is not equal to, starts with, ends with, contains, does not contain | No | contains needs 3+ characters |
|---|---|---|---|
| Product type, vendor | Same six text operators | Yes | Free text: "Stove" and "Stoves" are different values |
| Product category | is equal to, is not equal to | Yes | Optional Include subcategories |
| Tag | includes, does not include | Yes | Special characters may be ignored |
| Product status | is equal to, is not equal to | No | With Match any, it adds every product with that status |
| Price, weight, inventory stock | is equal to, is not equal to, is greater than, is less than | No | A product matches if any variant matches |
| Compare-at price | Numeric operators plus is set, is not set | No | 0 counts as set; empty does not |
| Metafield | Depends on type: true/false, integer, decimal, rating, single line text | No | Turn on the collections setting first |
| Metaobject reference metafield | is equal to | No | Lets you filter on standard taxonomy attributes |
Two operator details cause most surprises. There is no "greater than or equal to", so a collection for EUR 50 to EUR 150 needs price is greater than 49.99 and price is less than 150.01, with Match all conditions. And in a Products source, a condition such as inventory stock is greater than 0 is true when any single variant matches, so a product with one size left stays in an "In stock" collection.
Condition recipes for six everyday collections
Most stores need the same handful of automated collections. These recipes use only the condition types above; adjust values to your catalog.
- Sale: compare-at price is greater than 0. A compare-at price of 0 counts as a value, so is set can pull in products that are not on sale; greater than 0 keeps zero and empty values out, and a product drops out once you clear the compare-at price on all its variants.
- New in: tag includes new-in, with the tag added on import and removed after 30 days by a Shopify Flow or a bulk edit. Shopify has no condition on the creation date, so a tag or a sort order does this job.
- Brand page: vendor is equal to the brand name, for example Nordvik (a fictional brand used only for this example). One collection per brand, created when the brand enters the catalog.
- Gifts under EUR 50: tag includes gift, price is less than 50.01, Match all conditions. Keep the tag list short so the collection stays curated.
- In stock only: inventory stock is greater than 0. Remember that one variant in stock keeps the whole product in a Products source; switch to a Variants source if size-level accuracy matters.
- Red for a campaign: a Variants source with a condition on the Color category metafield, so only red variants appear, with red swatches and red prices. This needs color connected to the category metafield, and it counts toward the store limit of 100 variant collections.
The order of products is a separate setting on each collection, and manual sorting is one of the options. If you sort an automated collection manually, check where newly matched products land after each import.
Tags, product type or metafields: which field a collection should read
Every condition is only as good as the field behind it. Choose the field by how much structure the rule needs:
- Product type: one free-text value per product. Good for a single merchandising class ("Gas stove") if the values come from a fixed list. See the product type entry for how it differs from category.
- Vendor: Shopify's brand field. Use it for brand collections, nothing else.
- Tags: many per product, unstructured. Fine for campaigns ("bf-2026") and flags ("new-in"). Collection conditions ignore special characters in tags or treat them as the same (red_new and red-new match alike), so stick to plain letters, numbers and hyphens.
- Metafields: typed values such as fuel_type = gas or capacity_l = 2.5, which allow numeric ranges. They need a definition with the collections setting turned on. Our Shopify metafields guide covers definitions and types.
- Product category: the one standard category per product from Shopify's taxonomy, with an Include subcategories option.
A practical rule: use typed fields (category, product type, metafields) for structural collections that mirror your catalog, and keep tags for temporary or marketing collections. Collections built on tags tend to drift as people invent spelling variants.
Turning a category tree into Shopify collections
Shopify collections are flat: there is no parent field. Hierarchy comes from two places, nested collections and menus. A main menu item can hold up to two levels of drop-down items in most themes, so three levels of navigation in total. Take an outdoor cooking store with this tree: Cooking > Stoves > Gas stoves, Cooking > Stoves > Multi-fuel stoves, Cooking > Cookware > Pots.
From category tree to collections and menus
- Leaves first. Create one collection per leaf (Gas stoves, Multi-fuel stoves, Pots) with a condition on a typed field, for example product type is equal to "Gas stove" or a metafield fuel_type = gas.
- Parents as nested collections. Build Stoves from the Gas stoves and Multi-fuel stoves collections through a Collection source. It updates itself when a child changes. Mind the store limit of 50 nested collections.
- Top level as a menu item. Cooking can be a collection too, but it often works better as a menu heading with the Stoves and Cookware drop-downs below it.
- Handles that read like the tree. Use /collections/gas-stoves, not /collections/gas-stoves-1 left over from a duplicate.
- Write the collection description and SEO fields. Each collection is an indexable page; our Shopify SEO checklist covers titles and descriptions.
Keep the tree itself in one place. If categories live in a spreadsheet, the webshop and a marketplace feed, they drift within a season. Decide the levels before you build anything in Shopify.
Moving from Magento or WooCommerce makes this step concrete. Both platforms store categories as a real tree with parent IDs and assign products to any level. On Shopify that becomes flat collections plus menus, so decide per old category whether it turns into a condition-based collection, a nested collection or only a menu heading. Old category URLs also change to /collections/handle, which means redirects for every category page that had traffic. Our Magento to Shopify migration guide maps the rest of the catalog field by field.
Shopify Standard Product Taxonomy versus collections
The two are easy to confuse and do different jobs. The product category comes from Shopify's Standard Product Taxonomy: one per product, a fixed list such as Apparel & Accessories > Clothing > Clothing Tops > Shirts. It gives access to category metafields (size, neckline, fabric), helps channels such as Google and Facebook, and decides tax rates when you use Shopify Tax. Shoppers do not browse it directly.
Collections are your own merchandising: as many per product as you like, named the way your shoppers think. The link between them is the Product category condition, so a Shirts collection can follow the taxonomy with Include subcategories instead of a hand-kept tag. Our Shopify product taxonomy guide explains the category structure and how to pick the right leaf, and the product category finder suggests a category from a product title.
Seven collection errors and the fix for each
Collection checks before you publish
Most of these come from Shopify's troubleshooting notes on conditions. Most are data problems at heart: a condition on product type fails because one product says "Gas Stove" and another "gas stoves". Fixing values at the source beats adding more conditions.
How WISEPIM categories reach Shopify as collections
WISEPIM's Shopify connection works with collections in both directions. On import, your Shopify collections become WISEPIM categories and products are linked to them. On export, categories become collections (manual ones by default), and each exported product joins the collections linked to its categories. Joining is additive: WISEPIM does not remove a product from a collection. Collections that select products by conditions keep doing that on their own, and the connection does not read collections built with several sources, exclusions or variant sources. The export also writes the brand to Vendor, and you can map your own attributes to Product type and Tags, the fields most collection conditions read.
The category management features page covers the category tree, bulk assignment, AI categorization and category export to Shopify and other stores.

