見出し画像

Shopify 商品が全部表示されないとき

Shopifyでタグを全部出力したいとき、一度商品ループを回さないといけません。なんだか遠回りをしているように思えますが(たぶん)その方法しか出力方法がないので仕方ないのかな..と。

そして。
TOPページに商品タグ全部を出そうとしたとき、「なんだかタグの個数が少なくない!?」となりました。

原因がわからず色々調べてみたのですが、原因は商品ループに50個の制限がかかっていることでした。今回は、その解決方法を書き留めます。

Liquid 商品のループ

まず、普通に商品ループを行ってみます。

{% for product in collections.all.products %}
・・・
{% endfor %}

開発時には気が付きにくいのですが、これでは最大50商品しか取得できていないのです。

Shopifyはデフォルトで「layout内で取得するproductは1ページ50個まで」というルールがあるようで、それに引っかかってしまうことが原因です。

商品が51個以上ある場合には、取得されていない(ループできていない)商品があります。

解決方法

50商品になっている上限を書き換えます。
以下の例では1000商品に書き換えています。

{% paginate collections.all.products by 1000 %}
  {% for product in collections.all.products %}
   ・・・
  {% endfor %}
{% endpaginate %}

サイト開発時は商品が少ないから問題なかったけど、運用しているうちに商品数が増えてきて不具合発生!なんてことにならないよう、開発者は気を付けなければならないポイントですね..!!


この記事が気に入ったらサポートをしてみませんか?