Development discussions around Shopify APIs
I am using the js-buy-sdk (https://shopify.github.io/js-buy-sdk/index.html) and the following code is not returning tags with the products.
client.collection.fetchWithProducts(collectionId).then((collection) => { // Do something with the collection console.log(collection); console.log(collection.products); });
Is there something I need to add?
Thanks
Solved! Go to the solution
This is an accepted solution.
I found the answer. It seems like you can't do that with fetchWithProducts(), but if you make a custom query you can. Here is the code I found
const query = client.graphQLClient.query((root) => { root.addConnection('products', { args: { first: 250, query: "collection_type:{{name of collection}}" } }, (Product) => {
Product.add('title'); Product.add('tags');// Add fields to be returned Product.addConnection('variants', { args: { first: 250 } }, (variants) => {
variants.add('product'); variants.add('title'); variants.add('price'); variants.add('sku'); }); });
}); client.graphQLClient.send(query).then(({ model, data }) => { console.log(model); });
Hope this helps anyone else.
This is an accepted solution.
I found the answer. It seems like you can't do that with fetchWithProducts(), but if you make a custom query you can. Here is the code I found
const query = client.graphQLClient.query((root) => { root.addConnection('products', { args: { first: 250, query: "collection_type:{{name of collection}}" } }, (Product) => {
Product.add('title'); Product.add('tags');// Add fields to be returned Product.addConnection('variants', { args: { first: 250 } }, (variants) => {
variants.add('product'); variants.add('title'); variants.add('price'); variants.add('sku'); }); });
}); client.graphQLClient.send(query).then(({ model, data }) => { console.log(model); });
Hope this helps anyone else.
Helpful answer but frustrating that there isn't a way to do it with fetchAll(). looks like I'll have to refactor my code to graphQL (shopify are pretty much forcing this to happen)
As an FYI you have to do the same for metafields (one you have Whitelisted them)
https://help.shopify.com/en/api/guides/metafields/storefront-api-metafields#expose-metafields-to-the...
product.addConnection('metafields', {args: {first: 20}}, (metafield) => { metafield.add('namespace') metafield.add('key') metafield.add('value') });
Ehy @Joe_Tacconelli well done about the solution but can you please be more precise about:
query: "collection_type:{{name of collection}}"
With name I guess you mean the slug. Filtering by category-slug for us is really important because doing so we avoid fetch all products.
Btw I can't implement your example as-is.
Supposing we have a cat. slug best-products how should I implement it?
Something like query: "collection_type:{{best-products}}" or query: "collection_type: best-products"
Without query prop. is working fine of course.
Thanks!
I created a package here that is just a fork of the original SDK with tags on products by default. Everything else is exactly the same.
No need to do all the other crap. Just install this.
Photo by Marco Verch Sales channels on Shopify are various platforms where you can sell...
By Ollie May 25, 2023Summary of EventsBeginning in January of 2023, some merchants reported seeing a large amo...
By Trevor May 15, 2023With 2-Factor Authentication being required to use Shopify Payments, we’re here to help yo...
By Imogen Apr 26, 2023