产品列表上的WooCommerce REST API属性过滤器无效

时间:2017-12-22 09:55:36

标签: wordpress woocommerce woocommerce-rest-api

我正在使用最新的API v2。虽然min_pricecategory等其他过滤器正在运行,但attributeattribute_terms查询参数不会过滤结果集。

我有一个属性Color,我从node.js客户端调用API为:

var WooCommerceAPI = require('woocommerce-api');
var WooCommerce = new WooCommerceAPI({
  url: 'http://localhost/index.php',
  consumerKey: '***',
  consumerSecret: '***',
  wpAPI: true,
  version: 'wc/v2'
});

WooCommerce.getAsync('products?attribute=pa_color').then(function(result){

        var data = JSON.parse(result.toJSON().body);
        console.log(data);
    });

如何按属性进行实际过滤?试过其他组合e,g。 attribute=Colorattribute=color。结果仍然没有过滤。

2 个答案:

答案 0 :(得分:2)

查看最新的WooCommerce REST API文档:http://woocommerce.github.io/woocommerce-rest-api-docs/#list-all-products

WooCommerce似乎有一个糟糕的REST API历史。他们有API V1,V2和V3,然后改为WP REST API并创建了V1和V2。当然,在Google上搜索正确的方法可能会很糟糕。

这应该是正确的方法:

https://example.com/wp-json/wc/v2/products/?attribute=pa_color&attribute_term=15

https://example.com/wp-json/wc/v2/products/?attribute=pa_color&attribute_term=green

注意: 将属性TOGETHER与attribute_term一起使用非常重要。

我想以前做这件事的方式是这样的:

products?filter[meta_key]=pa_color&filter[meta_value]=green

或者像这样:

https://example.com/wp-json/wc/v2/products?attribute[pa_color]=green

但似乎 这在WooCommerce WordPress API V2中不再起作用

答案 1 :(得分:0)

我找到了解决方案。正确的方法:

products?attribute=pa_color&attribute_term=50

您必须使用属性字词ID替换属性字词的名称。为我工作。

P.S。我正在使用最新版本的wc / v2。