如何用GraphQL更新Shopify无变体商品的价格?
解决Shopify无变体商品价格的GraphQL更新问题
无变体商品本质上确实带有一个默认变体,你需要先获取这个默认变体的全局ID,再用你熟悉的productVariantUpdate mutation来更新价格,具体步骤如下:
1. 查询获取无变体商品的默认变体ID
通过商品的全局ID查询它的变体列表(无变体商品只会返回1个默认变体),示例GraphQL查询:
query getProductDefaultVariant($productId: ID!) { product(id: $productId) { variants(first: 1) { edges { node { id price } } } } }
对应的Python变量示例:
variables = { "productId": "gid://shopify/Product/你的商品全局ID" }
执行这个查询后,从返回结果的product.variants.edges[0].node.id就能拿到默认变体的全局ID。
2. 使用变体ID更新价格
复用你已有的productVariantUpdate mutation,注意变量名要和mutation定义的$input1对应(你之前的变量里写的input2是错误的,会导致参数不匹配),示例代码:
mutation productVariantUpdate($input1: ProductVariantInput!) { item1: productVariantUpdate(input: $input1) { productVariant { id, price } userErrors { field message } } }
variables = { "input1": {"id": "gid://shopify/ProductVariant/刚才拿到的默认变体ID", "price": 15.20} }
执行这个mutation就能完成无变体商品的价格更新了。
内容的提问来源于stack exchange,提问作者CryptoTex
相关产品推荐
相关产品推荐

