我正在使用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作为主机。
2条答案
按热度按时间nkhmeac61#
产品更新问题的解决方案:
1.当产品类型为“变量”时,您不能使用WooCommerce API更新产品价格。
1.当您在管理面板中选择产品类型为“可变产品”时,您无法在网站中看到产品价格。
1.如果你想改变产品价格,那么你必须改变产品类型为“简单产品”。
manage_stock
产品库存问题解决方案
1.如果你想更新库存,那么你必须将启用
manage_stock
参数设置为true
。然后你可以将库存数量stock_quantity
更新为10
。{"manage_stock": true,"stock_quantity": "1000" }
kr98yfug2#
我发现行为完全取决于您使用的工具(例如Curl、postman、node.js等)
更新库存确实有一些特定的条件,我们假设这些条件成立,并且情况正好如问题所示:200 OK回答,并且产品的输出与以前完全一样。
在我的用例中,我在this post中发现了完全相同的情况。我在线程中描述的情况与Woocommerce支持提供的curl示例相同,但在postman中没有:
在检查了几个选项后,我注意到curl生成的postman包含自动生成的标题:--header '内容类型:文本/纯文本'
在postman中禁用自动生成的content-type并添加application/json之后,生成的curl将具有如下报头:--header '内容类型:应用程序/json'
它直接用postman和它生成的curl命令解决了这个问题。