I am sending PUT requests to the /products API to update the Product and its Variants at the same time (ie - one API call). Both the Product and Variants have metafields which I am passing as part of the API call.
The issue I am running into is the Product Variant metafields are not being updated if they already exist. I always pass the existing Metafield ID as part of the call so Shopify should be able to find and update the Metafield. If I don’t pass the ID, Shopify complains about non-unique Metafields.
Here is a sample request, truncated for brevity and to highlight how I am passing the Metafields:
{
"product": {
"id": 12345,
"title": "Some title",
"variants": [
{
"sku": "some-sku",
"metafields": [
{
"namespace": "omx",
"key": "Full Price",
"value": "50",
"value_type": "string",
"id": 3456
},
...
],
"position": "1",
"id": 2345
}
],
...
}
}
This seems like a bug with the API - should I open a support request with Shopify?
I know there is a separate Metafield API, but given the volume of products in this store it would take days to run a full update if I have to update each metafield one by one so that is not an option.
Thanks,
Tom