WooCommerce REST API:更新发货的订单行项目元数据

时间:2017-11-21 14:02:52

标签: wordpress woocommerce put woocommerce-rest-api partial-ordering

我使用node.js通过WooCommerce REST API更新了订单行项目元数据的问题。

我一直在按照这些步骤更新订单(并且在某些字段方面取得了成功): https://woocommerce.github.io/woocommerce-rest-api-docs/#update-an-order

现在,我想要实现的是改变订单的已发货订单项数量。我通常会在wordpress UI中使用部分订单WC插件。

下面,您可以使用订单API调用找到我从WC获得的订单项的屏幕截图。 meta_data数组的最后一个元素具有键'shipping',它包含一个带有一个对象的数组,表明已经发送了一个(两个有序项中的一个):

"line_items": [{
        "id": 1937,
        "name": "Maya",
        "product_id": 1271,
        "variation_id": 1272,
        "quantity": 2,
        "tax_class": "",
        "subtotal": "140.00",
        "subtotal_tax": "0.00",
        "total": "140.00",
        "total_tax": "0.00",
        "taxes": [],
        "meta_data": [{
                "id": 21637,
                "key": "pa_product-color",
                "value": "beige"
            }, {
                "id": 21638,
                "key": "pa_shoe-size",
                "value": "42"
            }, {
                "id": 21639,
                "key": "pa_shoe-width",
                "value": "wide"
            }, {
                "id": 21640,
                "key": "shipped",
                "value": [{
                        "qty": 1,
                        "date": "Nov 21, 2017"
                    }
                ]
            }
        ],
        "sku": "2522BE42W",
        "price": 70
    },

如您所见,“已发货”键的值是一个对象。当我发送它(返回)到WC时,我收到一个错误说: "data":{"status":400,"params":{"line_items":"line_items[0][meta_data][3][value] is not of type string."}}}

当我尝试将值作为字符串发送时,即 lineItems[0].meta_data = [{key:"shipped", value: "[{qty:'2'}]" }]

我没有错误,但是WC将此视为字符串,而不是作为对象,并且不会按照我的预期更新数据库中的货件数量(它只会将发货数量降低到0):

{
                "id": 21640,
                "key": "shipped",
                "value": "[{qty:'2'}]"
}

任何见解或想法 - 如何通过WC API修改订单项的出货数量?

1 个答案:

答案 0 :(得分:0)

所以,显然WP 4.9版本中存在一个错误,最近在以下提交中修复了该错误: https://github.com/woocommerce/woocommerce/pull/17849

它涉及REST API架构,在将修复程序合并到WooCommerce后,问题消失了,现在我能够将数据作为对象发送。

有关该主题的更多信息,请点击此处:
https://github.com/woocommerce/wc-api-dev/pull/74