Prestashop 网络服务未按 date_upd 过滤

问题描述

我正在构建一个网络 API,我需要 prestashop 的产品才能使其工作。

问题是有超过 80000 种有效产品,这真的很痛苦。

所以我试图过滤最近几天更新的产品,以尽量减少请求加载时间。

我到目前为止的代码是这个

$curl = curl_init();

curl_setopt_array($curl,array(
  CURLOPT_URL => 'https://'.PS_WS_KEY.'@'.PS_WS_URL.'/api/products/?filter[date_upd]=[2021-01-01 00:00:00,2021-04-07 00:00:00]&date=1&output_format=JSON',CURLOPT_RETURNTRANSFER => true,CURLOPT_ENCODING => '',CURLOPT_MAXREDirs => 10,CURLOPT_TIMEOUT => 0,CURLOPT_FOLLOWLOCATION => true,CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,CURLOPT_CUSTomrEQUEST => 'GET',));

$response = curl_exec($curl);

curl_close($curl);
print_r($response);

上面的 cURL 返回一个空数组。我遇到的另一个问题是,当我获取所有产品(即 ID、名称、价格、描述等)时,我无法过滤特定字段。相反,我只获取了 ID。

Prestashop 版本 1.7.3,PHP 7.4

解决方法

要获取所有字段,您必须指定 display=full,例如:

'https://'.PS_WS_KEY.'@'.PS_WS_URL.'/api/products/?display=full

当 cURL 响应空错误时,状态码是 200 吗? 试试:

'https://'.PS_WS_KEY.'@'.PS_WS_URL.'/api/products/?filter[date_upd]=[2021-01-01 00:00:00|2021-04-07 00:00:00]&date=1&output_format=JSON'