WooCommerce无法看到产品变化

时间:2018-11-23 16:21:31

标签: wordpress rest woocommerce woocommerce-rest-api

我试图通过其REST API来完全管理WooCommerce,但是没有运气,我试图插入具有变化的产品

  • 我可以成功创建带有{{url}}/wp-json/wc/v3/products/的POST的产品
  • 创建产品后,我必须使用POST创建其变体到{{url}}/wp-json/wc/v3/products/{{product_id}}/variations的单独端点,这也有效
  • 我可以在{{url}}/wp-json/wc/v3/products/{{product_id}}/variations中看到使用GET创建的产品变体以及它自己的GET {{url}}/wp-json/wc/v3/products/{{product_id}}/variations/{{variation_id}}
  • 我可以正确看到在wordpress数据库中创建的行
  • 所有呼叫均为201,预期对象作为响应

但是,我在woocommerce产品页面上看不到任何产品变体

我发现它的工作版本具有包含变体ID的数组variations,但是当我使用API​​创建产品时,创建的产品数组为空,这可以解释为什么我'在产品页面上看不到任何产品变体。

这是我创建的产品变型示例:

{
"regular_price": "225",
"status": "publish",
"manage_stock": true,
"stock_quantity": 1,
"stock_status": "instock",
"image": {
  "src": "https://via.placeholder.com/150"
},
"on_sale": true,
"shipping_class": "1",
"attributes": [
  {
    "id": 2,
    "name": "Color",
    "option": "Red"
  },
  {
    "id": 3,
    "name": "Size",
    "option": "Xl"
  }
]}

有什么想法我找不到类似的问题吗?

1 个答案:

答案 0 :(得分:3)

问题可能出在产品创建过程中。我不确定是否不查看用于产品创建的数据,但是无论如何我都会尝试。我看到您为变体使用了两个不同的属性。因此,应创建产品以正确支持这些属性:

{
    "name": "Sample Product",
    "type": "Example",
    "description": "A Demo Product",
    "images": {
        {
            "src": "path/to/img",
            "position": 1
        }
    },
    "categories": {
        {
            "id": 12
        }
    },
    "attributes": {
        {
            "id": 2,
            "name": "Color",
            "variation": true,
            "visible": true,
            "options": [ 'Red', 'Green', 'Blue' ]
        },
        {
            "id": 3,
            "name": "Size",
            "variation": true,
            "visible": true,
            "options": [ 'M', 'L', 'XL' ]
        }
    }
}

如果主产品的属性中缺少"variation": true,则在没有该标志的属性下创建的变体将不会显示为变体。我知道这是黑暗中的一击,但也许会对您有所帮助。