【问题标题】:Cannot sort response of Shopify Product API call无法对 Shopify 产品 API 调用的响应进行排序
【发布时间】:2020-04-02 02:26:01
【问题描述】:

关于这个端点:https://shopify.dev/docs/admin-api/rest/reference/products/product#index-2020-04

我在参数中使用逗号分隔的 ID 列表来调用它。我假设 API 返回的产品顺序与参数中以逗号分隔的 ID 列表的顺序相同。好像不是这样的。

有没有办法让返回的订单相同?

如果没有,事后是否有其他方法可以做到这一点?

这是我的代码的 sn-p:

        while($row = $result->fetch_array(MYSQLI_ASSOC)) {
            $productIDs[] = (int)$row['product_id'];
        }
        $params = array(
            'ids'        => implode(', ', $productIDs),
            'fields' => 'title,handle,vendor,price,images'
        );
        $products = $shopify->Product()->get($params);

$products中的产品顺序与$productIDs中的产品顺序不同。

知道为什么会这样或如何让订单匹配吗?

【问题讨论】:

    标签: shopify


    【解决方案1】:

    我最终这样做了:

                foreach($productIDs as $productID) {
                    foreach($products as $product) {
                        if ($productID == $product['id']) {                 
                            $sortedProducts[] = $product;
                        }
                    }
                }
    

    现在$sortedProducts 本质上是$products 变量,已排序以匹配$productIDs 中的顺序。

    有没有比两个嵌套循环更好的方法?

    【讨论】:

      【解决方案2】:

      这是另一种方法:

      usort($products, function($p1, $p2) use ($productIDs) {
          $pos_p1 = array_search($p1['id'], $productIDs);
          $pos_p2 = array_search($p2['id'], $productIDs);
          return $pos_p1 - $pos_p2;
      });
      

      Shopify REST API 不支持对产品进行分类。我认为产品总是按标题排序返回。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-20
        • 1970-01-01
        • 2016-10-19
        • 1970-01-01
        • 2012-07-22
        • 2013-01-15
        相关资源
        最近更新 更多