「Storefront API Cart `discountAllocations`フィールドが配送割引を含むようになりました」
1. 技術的課題の定義と現状分析
これまでのShopify Storefront APIでは、カートのdiscountAllocationsフィールドは商品に対する割引情報のみを提供していました。しかし、配送に対する割引情報を取得・適用するためには別途処理が必要であり、開発者にとっては手間となっていました。
2. 具体的な技術的ソリューションの提案
2024-07リリースの一部として、Shopifyではこれを解決するために、Storefront APIのCartのdiscountAllocationsフィールドに配送に関連する割引を組み込みました。また、割引種別を区別するための新たなtargetTypeフィールドも追加されました。これにより、商品と配送の割引がカートのtotalAmountに反映されるようになりました。
3. 実装手順とコード例
まず、Storefront APIを使用して、カート情報を取得します。そして、discountAllocationsフィールドを確認し、配送割引が反映されていることを確認します。
{
cart(id: "カートID") {
discountAllocations {
allocatedAmount {
amount
}
discountApplication {
targetType
}
}
}
}
上記のクエリでは、targetTypeフィールドを使用して商品割引と配送割引を区別することができます。
4. パフォーマンス・コスト分析
この新機能の導入により、配送割引情報を取得するための別途のAPI呼び出しが不要になり、処理が効率化されます。これによりAPIの呼び出し回数が減少し、パフォーマンスの向上、コストの削減に繋がります。
5. 実装時の注意点・ベストプラクティス
新たに追加されたdiscountAllocationsフィールドとtargetTypeフィールドは、APIのバージョン2024-07以降で利用可能です。旧バージョンのAPIを使用している場合は、バージョンアップすることを検討してください。
6. 次のステップ・発展案
今後、さらなるカート操作の効率化を図るために、カートに関連する他の情報(例:商品詳細、在庫情報など)も一度に取得できるようなAPIの拡張が期待されます。
参考記事: Storefront API Cart `discountAllocations` field now includes delivery discounts






Share:
`ProductSetInput`の`variants`と`productOptions`フィールドの変更点について
Metafields APIにおけるCompare-and-swap(CAS)の活用法