Shopify LiquidとStorefront GraphQL APIの新しいページネーション制限について

ShopifyのLiquidテーマとStorefront GraphQL APIは、オブジェクトの配列のページネーションを25,000アイテムに制限する新しい変更があります。この変更により、開発者が対応する必要がある事項や、それによるパフォーマンスの影響を解説します。

変更の内容と影響

具体的には以下の通りです:

  • ページネーションされたGraphQLクエリ(firstlastbeforeafterパラメーターを使用するもの)では、配列の25,001番目以降のアイテムをページネーションするとエラーが返されます。
  • Liquidのpaginateタグを使用する場合、配列の25,001番目以降のアイテムをページネーションすると、最後の許容されるページが返されます。
  • LiquidまたはGraphQLからの任意のクエリで、配列のアイテムが25,000以上の場合、カウントの最大値として25,001("25,000以上"を示す)が返されます。
  • Liquidのページサイズの最大値が、50から250に引き上げられました。これにより、Storefront GraphQL API の制限と一致します。

この変更はLiquidとStorefront GraphQL APIにのみ影響し、Admin GraphQL APIには影響しません。Admin GraphQL APIは引き続き、より高い制限をサポートします。

対応策と実装手順

もし、あなたのアプリケーションやストアフロント、Liquidテーマが25,000以上のアイテムをページネーションしている場合、以下の対応策を考慮してみてください。

  • ビューにフィルターを追加して、ページネーション前に結果を絞り込む。例えば、商品タイプ、価格範囲、在庫の有無などでフィルタリングします。
  • カウントハンドリングを更新して、最大返却値25,001を考慮し、それを「25,000以上の製品が利用可能」といった人間が読みやすい値に置き換えます。

パフォーマンスとコストへの影響

この新しい制限は、ページネーションを頻繁に行う大量のアイテムを扱うストアにとっては、一部の調整が必要です。しかし、一度適切なフィルタリングを実装すれば、ページネーションのパフォーマンスが大幅に向上する可能性があります。大量のアイテムを一度に取得するよりも、必要なアイテムを効率的に取得することで、サーバーへの負荷を軽減し、全体的なレスポンス時間を短縮することができます。

注意点とベストプラクティス

この変更に対応する際には、以下の点に注意することが重要です。

  • ページネーション制限の変更が影響を及ぼす可能性のある箇所を確認し、必要な調整を行います。
  • フィルタリングは、ユーザーが求めるデータを効率的に取得できるように、適切に設計することが重要です。
  • 新たな制限が適用される前に、あらかじめテストを行って確認することをおすすめします。

次のステップ

今後もShopifyのAPIの変更に対応するためには、定期的に公式の更新情報を確認したり、APIのドキュメントを読み直したりすることが重要です。また、今回の変更により、新たなユーザーエクスペリエンスの改善や、より効率的なデータ取得の方法を模索する機会にもなります。

参考記事: New pagination limits for Liquid & Storefront GraphQL API

AUTHOR

Latest Stories

This section doesn’t currently include any content. Add content to this section using the sidebar.