Storefront APIのCartLineEstimatedCostオブジェクトに新たなフィールドamountとcompareAtAmountが追加

1. 技術的課題の定義と現状分析

ShopifyのEC事業者や開発者への課題として、カート内の商品バリアントの価格を取得する際の柔軟性と正確性が挙げられます。従来のStorefront APIでは、カート内の商品バリアントの価格を取得するための専用フィールドが存在せず、その結果、開発者は独自の方法で価格情報を取得する必要がありました。

2. 具体的な技術的ソリューションの提案

この課題を解決するため、ShopifyはGraphQL Storefront APIの新バージョン2022-07で、CartLineEstimatedCostオブジェクトにamountcompareAtAmountの2つの新たなフィールドを追加しました。これらのフィールドは、MoneyV2型のオブジェクトを返し、buyerIdentityをコンテキストドライバとして商品バリアントの価格を問い合わせることが可能になりました。

3. 実装手順とコード例

以下のGraphQLクエリは、新たに追加されたフィールドを活用してカート内の商品価格を取得する例です。


{
  cart(id: "カートID") {
    lines(first: 5) {
      edges {
        node {
          estimatedCost {
            amount
            compareAtAmount
          }
        }
      }
    }
  }
}

4. パフォーマンス・コスト分析

新たに追加されたフィールドにより、カート内の商品価格の取得が直感的かつ簡単になり、開発者がカスタムコードを書く必要が減りました。これにより、開発時間とコストが削減され、パフォーマンスも向上しました。

5. 実装時の注意点・ベストプラクティス

追加されたフィールドの使用にあたり、以下の点に注意してください。

  • 新たなフィールドはGraphQL Storefront APIのバージョン2022-07以降で使用可能です。
  • フィールドはCartLineEstimatedCostオブジェクト内で定義されており、カート内の各商品バリアントに対して価格情報を取得するために使用します。
  • 新たなフィールドはMoneyV2型のオブジェクトを返し、buyerIdentityをコンテキストドライバとして使用します。

6. 次のステップ・発展案

これらの新しいフィールドを活用することで、カート内の商品価格に関する情報取得が簡単になりました。次のステップとしては、これらの情報を利用したカートのカスタマイズや、価格情報をフロントエンドに表示するなどの機能の開発が考えられます。

参考記事: New fields amount and compareAtAmount on the Storefront API CartLineEstimatedCost object