wordpress 正常价格和库存数量没有更新使用WooCommerce API后,获得200 OK

3bygqnnd  于 2022-11-02  发布在  WordPress
关注(0)|答案(2)|浏览(167)

我正在使用WooCommerce API来更新特定产品。我发送以下内容:

{
    "regular_price": "4000",
    "stock_quantity": 1
}

PUT请求得到的结果是200 OK,但响应如下:

{
...
    "regular_price": "3000",
...
    "stock_quantity": 0,
...
}

基本上,不执行更新。
我如何解决这个特定的问题?WordPress 5.5.3,WooCommerce 4.7.1,SiteGround作为主机。

nkhmeac6

nkhmeac61#

产品更新问题的解决方案:

1.当产品类型为“变量”时,您不能使用WooCommerce API更新产品价格。
1.当您在管理面板中选择产品类型为“可变产品”时,您无法在网站中看到产品价格。
1.如果你想改变产品价格,那么你必须改变产品类型为“简单产品”。
manage_stock

产品库存问题解决方案

1.如果你想更新库存,那么你必须将启用manage_stock参数设置为true。然后你可以将库存数量stock_quantity更新为10
{"manage_stock": true,"stock_quantity": "1000" }

kr98yfug

kr98yfug2#

我发现行为完全取决于您使用的工具(例如Curl、postman、node.js等)
更新库存确实有一些特定的条件,我们假设这些条件成立,并且情况正好如问题所示:200 OK回答,并且产品的输出与以前完全一样。
在我的用例中,我在this post中发现了完全相同的情况。我在线程中描述的情况与Woocommerce支持提供的curl示例相同,但在postman中没有:

curl -X PUT https://domain_name/wp-json/wc/v3/products/<<product_id>> \ 
-u <<customer_key>>:<<customer_secret>> \
-H "Content-Type: application/json" \
-d '{"stock_quantity": "70"}'

在检查了几个选项后,我注意到curl生成的postman包含自动生成的标题:--header '内容类型:文本/纯文本'
在postman中禁用自动生成的content-type并添加application/json之后,生成的curl将具有如下报头:--header '内容类型:应用程序/json'
它直接用postman和它生成的curl命令解决了这个问题。

相关问题