Introducing the New Collections API (2026-07) — Developer Preview

@BeefyNachos

Is the expected way to remove products from a collection now to create a new source with a list of product IDs to exclude?

I haven’t had a chance to test it yet - but if it’s the way we do it, it will quickly turn into a big mess and I foresee problems and confusion coming quickly for both merchants and apps.

Instead of creating new sources, should we be finding an already existing productID selection exclusion source and updating it? Otherwise, I’d expect a messy huge list of sources, each with a list of IDs

It’s also one of my worries, it will drastically complexify how we deal with products in a collection.

For older API versions, when this change is live, does collectionRemoveProducts work/fail for collections built prior and post this change?

My understanding is that for collections with only one source it will work well, for others I’m not sure, we’d have to try by creating multiple sources with the same product and remove using the old api. Once again short deadline and other business to deal with, I personally haven’t had a chance to test it yet.


I’d recommend you book and office hour with Diana, there is a link above. You’ll be able to ask your questions. Feel free to share your insights here, I’m interested!

Yeah, thanks. Got one booked!

I sure hope that’s not the only way to do it, otherwise unless I’m misunderstanding it, that’ll be a query for every variant of every product in a collection.

Hi @diana_cheptene, Shopify team.

I’m running into an error when querying productsCount on Collection in the unstable (targeting 2026-07) API version:

Field ‘productsCount’ doesn’t exist on type ‘Collection’

Query that fails on unstable:

{

  collections(first: 250) {

    edges {

      node {

        id

        productsCount {

          count

        }

      }

    }

  }

}

Questions:

  1. Does productsCount still exist in the official 2026-07 version?
  2. If removed, what is the recommended replacement to get the total product count for a collection?

Any guidance on the migration productsCount would be appreciated.

Thank you.

Product count also needed here - it’s still supposed to be here according to the doc:

And if removed it would have been through a deprecation phase before

@williamkk this one worked for me (example from the doc, to which I added productsCount)

query {
  collections(first: 10, query: "title:All*") {
    edges {
      node {
        id
        title
        handle
        updatedAt
        productsCount {
          count
        }
      }
    }
  }
}

Hello @Soufiane_Ghzal. I appreciate you letting me know that we can test the 2026-07 release candidate directly in the Shopify GraphQL app. A few days ago, I was testing on the unstable version, as I thinking thought the 2026-07 version wouldn’t be available for testing until after July 1st. I will go ahead and try it again now. Thanks again for your help!

Hello @diana_cheptene, just checking if the you’ve been able to take a look at our feedback here: Introducing the New Collections API (2026-07) — Developer Preview - #41 by BeefyNachos

There’s quite a few breaking changes we’re keen to get insights on.

Let’s chat during office hours since I have many followup questions to make sure I understand your use cases well. We can post key answers here for everyone’s visibility.

A few things that might be useful for others:

  • We compute inclusions first, then exclusions apply on top of that.
  • If a source is an app-owned source, only that app can edit it. Non-shearable sources can be edited by any user (merchant via admin or app).

@diana_cheptene you mentioned there will be a limit of 50 app-owned sources per app. Is there a world where we could have unlimited number of app-owned sources per app?

It would simplify a lot of edge case and solve a lot of problems.

At this moment, there are no limits on app-owned sources.

@diana_cheptene When will this change be available in the Storefront API? Excited to try out nested sub-collections in my store

Sharing two additional resources related to the new API:
Migrate to the new collections model
Use the new collections model

There are apps doing it, not a marketing place so I wont share a link, but if you search on the app store, you might find some that , depending on what you’re trying to achieve, do things that Shopify will not support even with this update. Just so you know.

@diana_cheptene regarding variants that we can add to a collection.

In the situation where we have mutiple sizes and multiple colors. For example:

  • Sizes:
    • Medium
    • Large
  • Colors:
    • Green
    • Blue

So we have a total of 4 variants:

  • Medium Green
  • Medium Blue
  • Large Green
  • Large Blue

If I add all Medium variants to a collection:

  • Medium Green
  • Medium Blue

What happens with the theme? Does it show two products cards with the following as a product title:

  • [Product Name] Medium Green
  • [Product Name] Medium Blue?

What if I only want to add “Medium”, regardless of the color? Should I add just one of the medium? What will it display in the theme:

  • [Product Name] Medium Green
  • or
  • [Product Name] Medium?

In this situation we would want to group all colors of a single size under a single product card, is that possible?

All themes continue to render products cards (not variant cards) with only the included variants.

Hi @diana_cheptene so in case of cross variants (e.g. size + color) if I pick two variants of the same size but different colors, it will show only one card with the selected size and both of the colors?

Hi @diana_cheptene, confirming this is expected behaviour:

Collection 1 sourcess:

  1. Inclusion list of manually selected products including product X
  2. Exclusion list of manually selected products including product X.

Result: Product X remains in the collection

Collection 2 sources:

  1. Inclusion list of automated products (product with specific tag) including product X
  2. Exclusion list of manually selected products including product X

Result: Product X remains in the collection

From the docs, my assumption would be Product X would be removed in Collection 2

(the same happens for an exclusion list of automated products with that specific tag for collection 2)

@diana_cheptene Will app sourced product lists be accessible in liquid?

It’s not the expected behaviour. Do you mind sharing with me over email your shop & queries?

collection.products continues to be available in Liquid. App owned sources are part of the collection, therefore accessible in Liquid.