Collection and Collect API Feature Requests

Shopify Staff
Shopify Staff
41 0 8

Hi everyone,

At the risk of this thread getting out of hand, I'd love to know what requests you have for features in the area of collections. We're currently making changes to smart collections, and would like consider any ideas you might have as we make these.

If you would rather share your requests privately, you can also use this form.

Dominique

0 Likes
Shopify Staff
Shopify Staff
971 6 130

Stickied for visibility

0 Likes
Tourist
8 0 2

Hi Dominique,

It would be great to get product collections and product position via the Products API without requests to the Collects API and the Collections API.

It would really speed up data export for our app

 

 

1 Like
New Member
2 0 0

Hi, 

There needs to be automatic collection object creation for:

  • Tags
  • Product Types
  • Vendors

The associated collection object would be accessed by {{ collections["vendor.vendor_name"] }}, {{ collections["tag.tag_name"] }}, and {{ collections["type.type_name"] }}

This would allow us to construct a "Related Products" section easily. For example you would do:

{% for tagName in product.tags %}
<h2>Related products: {{ tagName }}</h2>
<ul>
{% assign tagCollection = 'tag.' | append: tagName %}
{% for collectionProduct in collections[tagCollection] %}
<li>{{ collectionProduct.title }}</li>
{% endfor %}
<ul>
{% endfor %}

<h2>Other products from: {{ product.vendor }}</h2>
<ul>
{% assign vendorCollection = 'tag.' | append: product.vendor %}
{% for collectionProduct in collections[vendorCollection] %}
<li>{{ collectionProduct.title }}</li>
{% endfor %}
<ul>

Next, there needs to be a way to get a collection object that's the intersection of two or more collections. For example, if you wanted to get a collection of all Shirts from Aeropostale, you would do:

{% assign vendorCollection = 'vendor.' | append: product.vendor %}
{% assign typeCollection = 'type.' | append: product.type %}
{% assign newCollection = vendorCollection | intersect: typeCollection %}

<h2>All {{product.type}}s from {{ product.vendor }}:</h2>
<ul>
{% for collectionProduct in newCollection %}
<li>{{ collectionProduct.title }}</li>
{% endfor %}
<ul>

Easy. There should also be a way to hyperlink to a collection intersection, eg.: storename.myshopify.com/collections/vendor_Aeropostale&type_shirt&tag_red

Which would give the collection page for all red shirts from Aeropostale.

This would allow for the development of native catalog filtering without an extension.

0 Likes
Shopify Staff
Shopify Staff
41 0 8

 

It would be great to get product collections and product position via the Products API without requests to the Collects API and the Collections API.

 

Are you aware that you can achieve this via GraphQL? 

query test {
  collection(id:"gid://shopify/Collection/128622083") {
    id
    title
    productsCount
    products(first: 250) {
      edges {
        node {
          id
          title
        }
      }
    }
  }
}

 

Thanks for the suggestion, BISTV! Keep them coming.

1 Like
New Member
2 0 0

I would also like to see a "collection heirarchy" liquid object. Just like how linklists currently work, a collection heirarchy would be a customizable tree structure of collections. For example you could make a collection heirarchy with the title "categories" and the structure:

└Apparel
 └Outerwear
  └Shirts
  └Pants
 └Underwear
└Backpacks
 └Traditional
 └Totes
└Shoes

Collection hierarchies would generate relative URLs for your site such as:

sitename.myshopify.com/categories/apparel/outerwear/shirts/

this would effectively be the same collection page as:

sitename.myshopify.com/collections/shirts/

Except the navigation UX is vastly improved.

0 Likes
New Member
18 0 0

A sensible request for the Collect and Collections API;

Allow exclusion of a Product from ANY smart collection based on some metafield, regardless of if that product satisfies a smart collection rule. That is, one could create a Product with a metafield attribute such that it would never appear in any smart collection, or possibly, not appear in any collection at all. 

0 Likes
Tourist
22 0 1

#1 Request:

Ability to bulk replace the members of a collection with a single API call by providing a new set of Product IDs.

Currently I have to delete the collection and recreate it with the new members as a workaround.

Thanks,

Marc

0 Likes
Tourist
6 0 1

Hi Dominique -

 

We have a client with 30K+ items in several of their SmartCollections. We need to keep an up-to-date list of items in the collection (ie Collects). When we get a webhook that the SmartCollection has been updated, we are having to page through 30K+ Collects to find items that have been removed from the SmartCollection.

 

This obviously takes a lot of time and API calls, so we'd love to implement a better solution. Ideally, we could just get a webhook every time an item is removed or added from/to a collection (ie a Collect is created/deleted), with at least the product_id of the product that was added/removed from the collection.

 

If you've got any advice on how we should be implementing this today, let me know. Thanks!

 

Patrick

0 Likes
Tourist
4 0 1

I like this idea but I think it may be easier for most users to use a tag system by includind a Product Tag is not equal to condition.


@AlexanderCollin wrote:

A sensible request for the Collect and Collections API;

Allow exclusion of a Product from ANY smart collection based on some metafield, regardless of if that product satisfies a smart collection rule. That is, one could create a Product with a metafield attribute such that it would never appear in any smart collection, or possibly, not appear in any collection at all. 



1 Like