I'm currently assisting a merchant create an app for his specific situation, and need some guidance.
What he needs to do:
1. He has in excess of six thousand products.
2. He sells his products online via Shopify, and also in-store via Shopify POS.
3. He has to constantly update prices (which are variant-based) of his products, on a daily basis.
4. He needs these price changes to reflect not only online and on his Shopify POS, but also on his ELECTRONIC PRICE TAGS.
5. He uses electronic price tags so that he does not constantly have to make out new price labels because that can be slow and ineffective.
6. His Electronic Price Tag system works via a proprietery node, connected to a desktop machine. The node looks for a CSV on a minute by minute basis and applies changes within the CSV to the electronic price tags via a RF.
The problem I'm facing:
1. I have to monitor price changes of products (or their variants).
More info: The Webhooks provided in Shopify do not provide such a feature. If I use the Product Update webhook, this fires a webhook for everytime the product has any change. Even when a purchase of this product is made, the fact that the quantity was updated, means that the webhook fires off.
2. I've resorted then to take a difference approach. He has tagged several hundred products with a specific TAG in order to isolate them as Price Taggable (since he will not be using an electronic price tag for every single product, but it may still run into the thousands).
3. I took a look at GQL, which I can use to search for products based on tag. So my original idea is to find tagged products, and then on an hourly basis, create a CSV of all these products and/or variants, and allow the price tag node to update prices on an hourly basis.
4. This approach however seems a bit problematic. Although with GQL, I can pull 250 products at a time, I cannot pull them with variants. If I pull the variants, I have to reduce the amount of products I can call because of the limitation on the API. Nevertheless, the store owner has some products that have up to 30 variants. I think I could only pull like 3 products including their variants where the variants were about 30 or more. So this is another strumbling block I'm hitting.
I'm asking for advice on how to best approach this situation in an efficient and scalable manner. I'm capable in PHP/MySQL and have a reasonable amount of experience using the Shopify API.
The other problem I'm dealing with:
1. Apart from price changes, I also have to monitor when a new variant gets added and has a certain Metafield attached to it.
2. So I have a product with a TAG, say the tag is called EPTAG.
3. Then I have variants of that product with a Metafield defined, say the MetaField is called VEPTAG. And the VEPTAG value is the serial number of the Electronic Price Tag that it is attached to.
The problem is also, the Product Create webhook only fires off when you create a product for the first time. It does not fire when you create a new variant at a later stage.
So....Any help or suggestions would be appreciated.