WooCommerce 看不到产品变体

Tiz*_*zio 6 rest wordpress woocommerce woocommerce-rest-api

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

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

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

我发现带有变体的产品有一个variations包含变体 ID的数组,但是当我使用 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"
  }
]}
Run Code Online (Sandbox Code Playgroud)

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

小智 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' ]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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