Refundにおけるorder adjustments connectionの公開

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

Shopifyの開発者として、計算と実際の返金額の差異をクエリするためにRefund.orderAdjustments connectionを使用することが求められています。しかし、2024-10のAdmin GraphQL APIでは、Refund.orderAdjustments connectionが公開され、これにより上記の問題が解決されました。

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

この新機能により、REFUNDS_CREATE webhookトピックも注文調整を含むようになりました。ただし、REFUNDS_CREATEに対するwebhookペイロードにはkindフィールドが含まれていません。

Admin GraphQL APIではOrderAdjustment.kindフィールドが非推奨となり、Admin REST APIのrefund.order_adjustmentsリソースでも同様に非推奨となりました。これは、返金された配送コストがRefund.orderAdjustments connectionに含まれないためです。返金された配送コストをクエリするには、代わりにRefund.refundShippingLines connectionを使用してください。

3. 実装手順とコード例

返金された配送コストをクエリするためには、以下のようにRefund.refundShippingLines connectionを使用します。

```graphql query { refund(id: "refund_id") { refundShippingLines(first: 5) { edges { node { id shippingLine { title price } amountSet { shopMoney { amount } presentmentMoney { amount } } } } } } } ```

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

この変更により、APIのレスポンス時間が改善し、データ取得の効率が向上します。またOrderAdjustment.kindフィールドの非推奨化により、APIの整合性が保たれ、データの扱いが容易になります。

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

しかし、OrderAdjustment.kindフィールドは2024年10月のAPIバージョンで6ヶ月間は利用可能です。そのため、アプリはこの期間中に新しいAPIバージョンに移行することが推奨されます。

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

次のステップとして、新しいAPIバージョンへの移行計画を立て、返金の取得や注文調整などの処理を新しい接続を使用して行うようにすることが望ましいです。

参考記事: Exposing the order adjustments connection on a Refund