Storefront APIにおけるCartとCartLineの変更点

ShopifyのStorefront APIは、ECサイトのショッピングカート機能に対する操作を提供する重要なインターフェースです。しかし、APIがアップデートされることで生じる課題に、開発者は常に直面しています。今回は、2022-07のGraphQL Storefront APIリリースに伴う、CartCartLine オブジェクトへの変更点について解説します。

技術的課題と現状分析

既存のショッピングカート関連のAPIでは、価格情報の取得や操作が一部不十分であったため、APIのアップデートが求められていました。具体的には、コストの正確な算出、比較価格の扱い、税金や関税の計算などが課題となっていました。

技術的ソリューションの提案

このAPIアップデートにより、以下の変更が加えられました。

  • attribute フィールドに key 引数が新たに追加されました。
  • Cart および CartLine における estimatedCostcost に名称変更されました。
  • CartCostsubtotalAmountEstimatedtotalAmountEstimatedtotalTaxAmountEstimatedtotalDutyAmountEstimated が追加されました。
  • CartLineCost における amountamountPerQuantity に名称変更されました。
  • CartLineCost における compareAtAmountcompareAtAmountPerQuantity に名称変更されました。

これらの変更により、より細かくコストを計算し、詳細な価格情報を取得することが可能になりました。

実装手順とコード例

例えば、新たに追加された key 引数を使用して、特定の属性を取得するには以下のようなクエリを送信します。


{
  cart(id: "カートID") {
    attribute(key: "特定のキー") {
      key
      value
    }
  }
}

また、新たに追加されたコスト関連のフィールドを取得するには以下のようなクエリを送信します。


{
  cart(id: "カートID") {
    cost {
      subtotalAmountEstimated
      totalAmountEstimated
      totalTaxAmountEstimated
      totalDutyAmountEstimated
    }
  }
}

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

このAPIアップデートにより、より正確なコスト計算や詳細な価格情報の取得が可能になりました。これにより、顧客への価格表示の精度を向上させるとともに、ECサイトの運用コストを削減することが期待できます。

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

新たに追加されたフィールドや名称変更されたフィールドを利用する際は、既存のコードに影響を与えないように注意が必要です。特に、estimatedCost から cost への名称変更は、既存のコードで estimatedCost を使用している場合、コードの修正が必要になります。

次のステップ・発展案

今後もShopifyのAPIは進化し続けます。そのため、APIの変更を随時チェックし、最新のAPIを利用してECサイトの運用を最適化することが重要です。

参考記事: Changes to Cart and CartLine on Storefront API