Woocommerce REST API更新产品类别

时间:2018-05-11 20:22:31

标签: wordpress woocommerce woocommerce-rest-api

我正在使用Wordpress 4.9.5和Woocommerce 3.3.5。当我们在单独的产品管理系统中更改产品时,我使用https://stackoverflow.com/a/50299715/2102748来更新网站上的产品。该库正在使用REST API的v2。

使用以下代码我成功更新了基本产品数据(标题,描述,sku,价格等),但我无法从Uncategorized获取更新类别。如果网站上尚不存在类似的代码来创建产品,则也不会设置类别。

$client = new WC_API_Client( $domain, $consumerKey, $consumerSecret, $options );
$client->products->update( $id, array( 
'sku' => $product->sku,
'title' => $product->title, 
'type' => $product->type, 
'status' => $product->status,
'regular_price' => $product->regular_price, 
'description' => $product->description,
'categories' => array(
    array( 
        'id' => 343
    ),
    array(
        'id' => 347
    )
)
));

正如我所说,其他字段按预期更新。我已经确认ID为343和347的类别肯定存在,所以我假设我必须遇到语法问题。随着其他字段的更新,身份验证肯定有效。

我已阅读官方Woocommerce API文档,并根据WooCommerce REST API PHP Client Library教程编写代码。基于这两者,我不确定我做错了什么。

感谢您提供任何帮助或建议。

1 个答案:

答案 0 :(得分:1)

我最终解决了这个问题。这是我的疏忽。

我使用的客户端库连接到Woocommerce文档称为“Legacy v2”版本而不是API的“v2”版本。旧版本不支持类别,图像alt标签,元数据等。

我从使用库切换到使用https://sitename/wp-json/wc/v2/endpoint直接连接到'v2'版本,现在一切都很好。