WooCommerce API - 更新订单元字段

时间:2015-03-09 22:32:43

标签: rest woocommerce

WooComemrce Rest API是否提供更新元字段的方法?

他们有一个扩展,它增加了在使用元字段发货时为订单添加跟踪编号的功能,但是没有任何关于如何或是否可以通过他们的REST使用此信息更新订单的元字段的文档API。

3 个答案:

答案 0 :(得分:6)

它很糟糕(完全没有阅读)记录了如何做到这一点。以下是如何为普通元字段执行此操作:

curl -X PUT "https://somesite.com/wc-api/v2/orders/124?filter[meta]=true" -u ck_yourconsumerkey:cs_yourconsumersecret -H "Content-Type: application/json" -d 
'{
    "order": {
        "order_meta": {"meta_key":"meta_value"}
    }
}'

以下划线开头的元字段受到保护,无法通过API更新。但是,根据this GitHub issue,下一版本的WooCommerce应该支持更新受保护的元字段,只要它们不是WooCommerce内部值。

订单的其他部分有Meta字段,例如客户和商品,但是我需要一段时间才能再次查询这些信息,这个问题专门针对订单级元字段。

编辑:WooCommerce改变了主意并关闭了GitHub案例,表示他们不允许访问这些字段。不幸的是,这使得WooCommerce成为唯一一个无法通过API向订单添加跟踪信息的购物车,而且没有可怕的黑客解决方法。

答案 1 :(得分:1)

您可以使用带有额外“ meta_data”字段的“ / wp-json / wc / v3 / orders”端点的HTTP POST请求,如以下curl命令所示。使用“用于Woocommerce版本3.0的REST API”对此进行了测试

curl --request POST \
     --url https://yourserver.com/wp-json/wc/v3/orders \
     --header 'authorization: Basic <credentials>' \
     --header 'content-type: application/json' \
     --data '{
    "line_items": [
    {
      "product_id": 425,
      "quantity": 1
    }
  ],
    "meta_data":[
        {
            "key": "custom key",
            "value": "custom value"
        }
    ]
}'

答案 2 :(得分:0)

是的,这是可能的。使用REST API for Woocommerce 3.0版,我在最新文档here中描述的端点上使用以下json添加了自定义订单跟踪和运营商字段。

{
    "create":[],
    "update": [
        {
            "id": 77248,
            "status": "shipping",
            "meta_data":[
                {
                    "key": "package_carrier",
                    "value": "USPS First Class"
                },
                {
                    "key": "tracking_number",
                    "value": "12354LKJSDF"
                }
            ]
        }
    ]
}

然后他们会在订单编辑屏幕上显示:enter image description here

这显然是使用订单批量更新,但是,这仍应适用于单个订单端点。

因为我不包括&#34; id&#34;字段,它创建一个新的。我相信更新字段,你需要提供&#34; id&#34;字段。