「shippingLine.discountedPriceSet」がカートレベルの割引を含むようになりました

Shopify Plusでは、常に最新の技術を取り入れて、開発者やエンジニアの皆様の技術的課題を解決しています。今回は、GraphQL Admin APIのバージョン2024-07において、ShippingLineオブジェクトのdiscountedPriceSetdiscountedPriceフィールドがカートレベルの割引を含むようになったことをご紹介します。

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

これまで、注文に適用されるカートレベルの割引を計算する際には、discountAllocationsdiscountedPriceSetdiscountedPriceから引く必要がありました。しかし、この方法では同じ割引を二度引いてしまう問題が発生していました。

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

新しいバージョンでは、ShippingLinediscountedPriceSetdiscountedPriceフィールドが、無料配送の割引を含むカートレベルの割引を計算に含むように改善されました。その結果、正確な値を取得するためにdiscountAllocationsを引く必要がなくなりました。

3. 実装手順とコード例

具体的な実装手順としては、まず新しいバージョンのGraphQL Admin APIを導入します。次に、あなたのショッピングカートの割引計算ロジックを確認し、discountedPriceSetdiscountedPriceからdiscountAllocationsを引く操作を削除します。


// 以前のコード
let discountedPrice = ShippingLine.discountedPrice - ShippingLine.discountAllocations;

// 新しいバージョンでのコード
let discountedPrice = ShippingLine.discountedPrice;

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

この変更により、割引計算ロジックが簡略化され、それによりコードの冗長性が減少しました。これは、パフォーマンスの向上をもたらすとともに、メンテナンスコストの削減にもつながります。

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

新しいバージョンに移行する際は、既存の割引計算ロジックが正しく動作していることを確認するために、テストを十分に行ってください。また、discountAllocationsを引く操作を削除した後も、二重に割引が適用されないように注意が必要です。

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

Shopify Plusでは、引き続き開発者の皆様のための新機能や改善を行っていきます。最新の情報については、定期的に公式ドキュメンテーションをご確認ください。

参考記事: shippingLine.discountedPriceSet now includes cart level discounts