按产品SKU使用WooCommerce API过滤器



我正在尝试使用他们的API从WooCommerce检索产品信息。

我使用以下URL发送请求:{url}/wp-json/wc/v2/products?filter[sku]=10008&consumer_key={key}&consumer_secret={key}。然而,我收到的回复包含各种产品,这些产品与SKU=10008没有任何关系。

我想知道为什么这个过滤器不隔离响应,只包含由我指定的SKU过滤的产品?我是否错误地使用了API?

例如,这是我的回复(仅打印SKU(:

pCb0760
pCb0855
pHn4000
pCh0900
pCb0752
pVg0210
pTa0111
pTa0110
pTa0101
pTa0100
pGd0130
pGd0120
pGd0110
pTa0120
pEg0030
pSu1015
pNd0400
pF27z
pF27w
pF27bb
pF27b
pF14z
pF14w
pF14bb
pF14b
pSp0360
pPa0300
pHp0100
pEk0400
pAb1665
pAs0100z
pLt0210
pLt0200
pLt0100
pCs0822
pIg0912
pIg0911
pIg0910
pIg0902
pIg0901
pIg0900
pIg0802
pIg0801
pIg0800
pIg0190
pIg0187
pIg0186
pIg0185
pIg0171
pIg0170
pIg0132
pIg0101
pHi1081
pHi1080
pHi1013
pHi1012
pHi1011
pHi1010

我真的看不出我的请求和这个回复之间有任何关联。。。

尝试此调用:

/wp-json/wc/v3/products?sku=<your_sku>"

用SKU替换<your_sku>

我认为过滤器已被弃用。以下是我用来获取带有SKU的产品列表的内容。yoursite.com/wc-api/v3/products/?sku=SKUHERE

我不得不使用/wc-api/v3/products?filter[sku]=""

我没有给出任何答案。根据Wooccommerce官方文档,您必须在调用中传递第二个参数,该参数包含产品属性,在所有其他筛选选项中还可以包括SKU字符串。

解决方案:

$products = array();
$data_par = array(
'status' => 'publish',
'sku' => $your_sku_string, //<-SKU STRING GOES HERE
'per_page' => 1,
'page' => 1
);
$products = $woocommerce->get('products', $data_par);

如果您想退回多个与SKU过滤器匹配的产品,您可以相应地调整页面和页面(_page(。