SuggestedOrderTransactionオブジェクトに新たなフィールドが追加

Shopify GraphQL APIの2020-10バージョンより、SuggestedOrderTransactionオブジェクトに新フィールドsupportedRefundTypeが追加されています。このフィールドには、CARD_NOT_PRESENT_REFUNDまたはCARD_PRESENT_REFUNDの二つの値が格納されます。

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

以前までのShopify APIでは、返金処理のタイプを明示的に区別する方法がありませんでした。物理的なカードが手元にない場合の返金(カード非存在返金)と、物理的なカードが存在する場合の返金(カード存在返金)を区別することができなかったため、POS(販売時点情報管理)システムを通じてのみ処理できる「カード存在返金」の処理に困難がありました。

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

新たに追加されたsupportedRefundTypeフィールドにより、返金タイプの明示的な区別が可能になりました。APIクライアントがデフォルトでSuggestedOrderTransactionを受け取るのは、supportedRefundTypeCARD_NOT_PRESENT_REFUNDの場合となります。

実装手順とコード例

GraphQL APIを利用して新たなフィールドを取得するには、以下のようなコードが考えられます:


query {
  order(id: "gid://shopify/Order/1234567890") {
    suggestedOrderTransaction {
      supportedRefundType
    }
  }
}

上記のクエリを実行することで、指定した注文のsupportedRefundTypeを取得することができます。

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

返金タイプを判別する新たなフィールドの導入により、不要なAPI呼び出しを避けることが可能になり、パフォーマンスの向上及びコスト削減が期待できます。

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

新フィールドは2020-10バージョンより追加されていますので、それ以前のバージョンを使用している場合はバージョンアップが必要となります。また、supportedRefundTypeCARD_PRESENT_REFUNDの場合は、物理的なカードが必要な返金処理であるため、POSシステムを通じてのみ処理可能である点に注意が必要です。

次のステップ・発展案

この新フィールドを活用して、返金処理の自動化やエラーハンドリングの改善など、Shopifyストアの運用効率の向上を図ることが可能となります。

参考記事: New field on the SuggestedOrderTransaction object