Re: Regularly update variant-level metafields via app/API

Regularly update variant-level metafields via app/API

Shopify Partner
6 0 1

Hi there! This is my first time posting so please be gentle!


I have a Shopify store that sells a limited number of products, but I am looking to expand. I want to build a Shopify app that automates the process of generating a specific string for each product variant that will be saved as a variant-level metafield.


I can figure out the coding myself - I would just appreciate some high-level guidance on what exactly I need to build. This is my first time building an app, so any ideas are appreciated.


Summary of project:


Each product variant in the store needs to have a 'shipping message' metafield. This metafield is a string that will look something like this:


'Product ships in 4-6 business days'


The exact syntax and date-range of each variant's metafield will be determined by on the basis of a number of factors (product availability, product tags, certain other metafields). I have written the logic for generating this string - so I do not need any guidance on this front.


The aforementioned factors that determine the exact syntax and date-range of the string can change on a day-by-day basis. One of the metafields is updated regularly by a third-party app. A variant's availability can change when the product is sold out. I change product's tags fairly regularly too.


For this reason, I want to build an app that updates each variant's 'shipping message' metafield on a regular basis - perhaps every hour.


I have set up a basic embedded app using the Shopify CLI 3.0. Now I've done this, I'm a bit lost. Here is what I'm guessing I need to do:

1. Set up some kind of simple interface so that the app's user can select a collection that contains all the store's products. 

2. Once this collection has been selected, the ID of that collection will be used to retrieve a list of every product in that collection.


3. From there, each of each products' variant can be looped through.


4. Once at the variant-level, various information about that variant can be grabbed (product availability, product tags, certain other metafields). 


5. With this information, I would (i) generated each variant's shipping message using the pre-written logic, and (ii) replace its current 'shipping_message' metafield with the newly generated shipping message.


[repeat steps 2-5 every hour]



If anybody could give me any pointers, suggestions ideas about which APIs I should use, how they should be implemented, and any best practices that I should follow, I would be really grateful. 


Thanks for taking the time to read this!

Replies 2 (2)

Shopify Staff
1829 271 415

Hey @gut_und_gunstig 


That process sounds solid to me.


If the app is for your own store, you could skip the "select a collection" step / hardcode.


You'll want to use the Metafields API to create/update metafields. There's a product variant example on this page:


Good luck!

Scott | Developer Advocate @ Shopify 

Shopify Partner
6 0 1

Thanks very much for your help!