Main issue: Moving from REST to Admin GraphQL, developers can’t set variant weight and weight_unit in the ProductSet mutation. Attempting to include weight on variants returns an error (field not defined on ProductVariantSetInput). In GraphQL, weight is part of the InventoryItem associated with a variant, not the ProductSet input.
Current guidance: A Shopify staff member confirms ProductSet no longer supports setting variant weight. Suggested alternatives:
Use productVariantsBulkCreate/productVariantsBulkUpdate to manage variants and their inventory items.
Developer feedback: Multiple calls and rate limits make large-scale syncs difficult and unstable; desire a single bulk operation like REST/ProductSet. Requests for a roadmap and feature parity; a linked AMA indicates Shopify is aware of the gap.
Status: No direct way to set variant weight via ProductSet. Workarounds exist but are complex. Discussion remains open with unresolved requests for ProductSet to support measurements.
Summarized with AI on December 10.
AI used: gpt-5.
Since we are forced to migrate from an easy-to-understand REST API to the new GraphQL API, I could not figure out how to achieve the same product synchronization logic from “our” system into the Shopify store.
In the REST API, we could provide weight & weight_unit in the variations array along with a product. If I try to do the same with GraphQL’s ProductSet mutation, I get the following error:
Variable $entity11846 of type ProductSetInput! was provided invalid value for variants.0.weight (Field is not defined on ProductVariantSetInput)
Do you mean variants? You should update your post since variations doesn’t exists.
However I checked the documentation and the measurement field which contains the weight is associated with the InventoryItem type.
Since the InventoryItem type isn’t in ProductSetInput type i don’t think you can update the weight using the ProductSet mutation.
Is this a bug? Idk, lemme know if you find a solution
Thanks, @Kyle_liu , for the answer. At least now I am aware that I cannot use the ProductSet.
My two cents on this (knowing this is not your fault, @Kyle_liu , of course)
We have a sync process from our system into Shopify, and now using different strategies with different endpoints is a huge mess. The ProductSet was meant for migration (as far as I know). The ProductSet option is perfect for handling all these processes in bulk with similar behavior. Now, I have to manually update all variants for each product, just because of this. On a huge dataset, this is a real mess.
So if Shopify is forcing us to use the new GraphQL endpoints (I can understand such decisions technically), it should at least provide a similarly good experience for developers and not the opposite.
is there a road map for features? or is there any thread or feature request from other developers, without this feature we won’t be able to migrate to the new graphql system. with all the rate limits and splitting up things in different requests, its almost impossible to correctly sync hundreds of products into shopify.
Thanks @Kyle_liu for taking time, i appreciate that a lot, very kind of you!
That’s insane, its not possible to manage all those calls, there are also api rate limits to consider, this will never run stable when you have 100 of products. Sometimes your calls get rate limited then maybe an update call won’t run anymore etc. Its a shame they don’t provide a good migration path. We will wait until the hopefully add measurements to the ProductSet call - everything else is a mess.