使用 PUT returns 错误更新库存数量

updating inventory quantity with PUT returns error

这里是 body

{
  "product": {
    "id": 1202316036,
    "title": "cricket bat for sale",
    "variants":[
        {
            "inventory_quantity": 500
        }


        ]
  }
}

这个returns下面的错误

{
  "errors": {
    "base": [
      "The variant 'Default Title' already exists."
    ]
  }
}

但是更新标题似乎工作正常。这是 body

{
  "product": {
    "id": 1202316036,
    "title": "cricket bat for sale"

  }
}

我确信 PUT header(Content-Type: application/json) 设置正确。因为更新标题确实有效。我应该如何更新库存管理

ps:我正在使用 POSTMAN 来使用 shopify API

我不确定您是否可以在每次调用时执行多个变体,但要更新单个变体的库存数量,您会这样做:

var payload = JSON.stringify({
        variant: {
            id: variantId,
            inventory_quantity: qty
        }
    });

然后把它放到 "https://myshopifydomain/admin/variants/" +variantId + ".json";

可能您需要做的就是为要更新的每个变体添加变体 ID。您可以通过获取商品的 json 来获取变体 ID。

因此您确实需要变体 ID,否则 Shopify 会认为您正在创建新变体。此外,您还需要为 Shopify 设置变体以管理其库存。例如

  var product = {
  product:{
    id: productId, 
    variants: [
      {
        id:5991257025,
        inventory_management : "shopify",
        inventory_quantity:20
      },
      {
        id:5991257089,
        inventory_management : "shopify",
        inventory_quantity:26
      }
      ]
    }

};