Prestashop webservice,请求随机行资源

Prestashop webservice, request random row of ressources

我正在使用带 php 的 PSWebServiceLibrary 在 prestashop 上开发网络服务。 我想要的是请求获得随机行,例如我想要获得 10 个随机产品。 在网络服务 api 上没有可以制作这个的选项;有没有办法在 php 上使用 PSWebServiceLibrary 发出该请求?就像我在下面做的那样:

 public function get_random_product(){
        $webservice = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG);
        $opt['resource'] = 'products';
        $opt['filter']['active'] = 1;
        $opt['limit'] = 10;
        $opt['display'] = 'full';
        $xmlResponse = $webservice->get($opt);
        $allproducts = $xmlResponse->children()->children();
        return ($allproducts);
 }

这个只得到第一行的第 10 个产品,但我希望结果是随机的。谢谢:)

你可以从数据库中获得 10 个随机产品

select id_product from ps_product order by rand() limit 10;

然后从 API 检索,例如

www.yourapp.com/api/products/?filter[id]=[1|2|3|4|5|6|7|8|9|10]

在你的函数中

public function get_random_product(){
    $rows = DB::getInstance()->executeS('select id_product from ps_product where active order by rand() limit 10');
    $joinedIdProducts = implode('|', $rows);
    $webservice = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG);
    $opt['resource'] = 'products';
    $opt['filter']['active'] = 1;
    $opt['filter']['id'] = $joinedIdProducts;
    $opt['limit'] = 10;
    $opt['display'] = 'full';
    $xmlResponse = $webservice->get($opt);
    $allproducts = $xmlResponse->children()->children();
    return ($allproducts);

}