Wordpress WooCommerce REST API:更新装运的订单行项目元数据

Wordpress WooCommerce REST API:更新装运的订单行项目元数据,wordpress,woocommerce,put,woocommerce-rest-api,partial-ordering,Wordpress,Woocommerce,Put,Woocommerce Rest Api,Partial Ordering,我还提到了一个问题,即使用node.js通过WooCommerce REST API更新订单行项目的元数据 我一直在按照以下步骤更新订单(并在某些字段中成功): 现在,我想要实现的是更改订单中已发货行项目的数量。我通常会在wordpress UI中使用偏序WC插件 下面,您可以找到我使用orders API调用从WC获得的行项目的屏幕截图。meta_数据数组的最后一个元素的键为“shipped”,它包含一个带有一个对象的数组,表示已装运了一个(两个有序项中的一个): "line_items":

我还提到了一个问题,即使用node.js通过WooCommerce REST API更新订单行项目的元数据

我一直在按照以下步骤更新订单(并在某些字段中成功):

现在,我想要实现的是更改订单中已发货行项目的数量。我通常会在wordpress UI中使用偏序WC插件

下面,您可以找到我使用orders API调用从WC获得的行项目的屏幕截图。meta_数据数组的最后一个元素的键为“shipped”,它包含一个带有一个对象的数组,表示已装运了一个(两个有序项中的一个):

"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
    },
如您所见,键“shipped”的值是一个对象。当我尝试将其发送(返回)到WC时,我会收到一个错误消息:
“数据”:{“状态”:400,“参数”:{“行项目”:“行项目[0][元数据][3][value]不是字符串类型。”}}}

当我尝试将值作为字符串发送时,即。
lineItems[0]。元数据=[{key:“shipped”,值:[{qty:'2'}]“}]

我没有收到任何错误,但WC将其视为字符串,而不是对象,并且没有按照我的预期方式更新DB中的装运数量(它只将装运数量拉低到0):


任何见解或想法-我如何通过WC API修改行项目的发货数量?

因此,显然WP 4.9版本中存在一个bug,该bug最近在以下提交中修复:

它涉及RESTAPI模式,在将修复程序合并到WooCommerce之后,问题消失了,现在我可以将数据作为对象发送

有关此主题的更多信息,请参见此处:

因此,很明显,WP 4.9版本中存在一个bug,最近在以下提交中修复了该bug:

它涉及RESTAPI模式,在将修复程序合并到WooCommerce之后,问题消失了,现在我可以将数据作为对象发送

有关此主题的更多信息,请参见此处:

您应该用原始数据替换屏幕截图……似乎它应该是一个序列化数组(作为字符串)才能被woocommerce接受。但我不知道您需要如何设置它,因为我不是REST API的真正专家。@LoicTheAztec,我想我已经使用了一个序列化数组
(“[{qty:'2'}]”)并且它不起作用。您应该用原始数据替换屏幕截图……似乎它应该是一个序列化数组(作为字符串)才能被woocommerce接受。但我不知道您需要如何设置它,因为我不是RESTAPI方面的专家。@LoicTheAztec,我想我已经使用了一个序列化数组
(“[{qty:'2'}]”)
,但它不起作用
{
                "id": 21640,
                "key": "shipped",
                "value": "[{qty:'2'}]"
}