Prestashop 网络服务不按 date_upd 过滤

问题描述 投票:0回答:2

我正在构建一个 Web 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

php prestashop prestashop-1.7
2个回答
0
投票

要获取所有字段,您必须指定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'

0
投票

就我而言,删除用作过滤器的日期时间的时间部分可以解决问题。

类似这样的:

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

© www.soinside.com 2019 - 2024. All rights reserved.