Extract Products from Shopify Collections: Iterator Only Takes One Product from Each

Hello!
New to Make, appreciate the help. I have a scenario that makes an API call to Shopify to gather collections in our shop, gather the products within those collections, filter those using specific tags, then create records in Airtable. The scenario does this, but only takes one of the products per collection (42 collections, so I get 42 products at the end). I would like it to look through all of the products in each collection to filter out the ones with specific tags. Is this possible? Flow and steps below. Thanks!

Flow

Collections (Bundles), can see products within when expanded

Only 42 Products Retrieved from the 42 Collections

Filter with specific Tags Yields 20 Results

Is it possible to iterate the products within the collection bundles to read and filter each of them? Or some other workaround for the ultimate end goal?

Thanks!

How did you maps those iterators?
Also your filter is setup wrong. You need to specify the bundle number within those brackets like this 3.Body.products[BUNDLE NUMBER]:tags

Hi,
Thanks for writing. I used the premade “Export Shopify Collections to Google Sheets” templates, but changed it to Airtable at the end.

Here is the flow I am aiming for. I can only have 10 pictures in a post, so will try to consolidate where the biggest pain point is.

  1. Make gets the shop collections from Shopify. This works.

  2. The iterator breaks out each individual shop collection into bundles (there are 42). This works. Here is how it is mapped.


    Ex. Bundle 5 is collection title 2024 Lunar New Year Bracelets

  3. Shopify gets the products from each shop collection (bundle in step 2), and they are output in new bundles, with Body and Header as collections. Within Body, I can see the products associated with each shop collection (bundle in step 2). Ex. Bundle 5, 2024 Lunar New Year Bracelets has 5 products associated with it. Included a photo of drilling down further into the individual products where you can see the Title, body HTML, and image url (all things I map later).

  4. I would like to iterate the Body (Collection) in each bundle of the previous step. Which would give me 42 shop collections (bundles) x number of products associated with each shop collection. Instead, I only get 42, one from each. Here is also how the iterator is mapped.

  5. From there, I would like to filter the products for all of the bundles to pull out the ones with the specific tags in the screenshot.

  6. The test parser then translates the product descriptions of the ones that made it through the filters and turns it into plain text. This works, but again its only 42 products rather than the hundreds I should see.

  7. Then it is mapped in Airtable and I get the result I expect, pulling the Title, translated HTMlL product description, the image URL, and associated filter tag for each product.

So, how would I either iterate to make every product in every bundle get pulled through my filter, resulting in appx 700 entries in Airtable, not 42.

Thanks for the help!

Hello Laura,

Your using the wrong modules for this. Use these:

The use these settings for the modules.



image

Then map whatever data you need

Hope this helps!

Thank you so much, that worked beautifully for fetching the info I need and helps me better understand how to use the modules. But it keeps timing out before finishing reading the products.

Is there some workaround for that error? Or would it help if I reconfigured to choose the exact shop collections (bundles). If so, would I write something like this to choose Bundle 5 for example:


Thanks!

You can use the sleep module to have it wait a second or two between modules or the break module to have it retry after a set amount of time when it fails

Flagging that this was also part of the solution. Thank you very much for your help, it’s running beautifully now. I really appreciate it!