ShopifyのFulfillmentOrder APIとFulfillmentOrderLineItemがオーダー詳細とfinancialSummariesで強化されました

1. 技術的課題の定義

ShopifyのAPIを使ってショッピングサイトを運営している中で、注文情報の取得、特に注文完了後の情報取得や購入明細の取得に手間がかかっていました。また、これらの情報を取得するためには、別途複数のアクセススコープが必要であり、APIの利用が複雑で時間がかかるという問題がありました。

2. 現状の技術スタックと問題分析

注文情報や購入明細を取得するために利用していたREST APIやGraphQL APIは、必要な情報を一度に取得するためには、複数のAPIを組み合わせる必要がありました。また、それぞれのAPIには異なるアクセススコープが必要であり、情報の取得に手間がかかっていました。これは、開発者が効率的にシステムを開発する上での障害となっていました。

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

2024年1月バージョンのREST APIとGraphQL APIでは、FulfillmentOrderとFulfillmentOrderLineItemオブジェクトに注文情報と購入明細を取得するための新たなフィールドが追加されました。これにより、注文情報や購入明細を一度に取得することが可能になり、APIの利用が効率化されます。

4. 実装手順とコード例

FulfillmentOrderオブジェクトには、orderIdorderNameorderProcessedAtchannelIdが追加されました。これらのフィールドを使用することで、注文情報の取得が可能になります。


query {
  fulfillmentOrder(id: "gid://shopify/FulfillmentOrder/1") {
    id
    orderId
    orderName
    orderProcessedAt
    channelId
  }
}

また、FulfillmentOrderLineItemオブジェクトには、financialSummariesフィールドが追加されました。これを利用すると、購入明細の取得が可能になります。


query {
  fulfillmentOrder(id: "gid://shopify/FulfillmentOrder/1") {
    id
    lineItems(first: 5) {
      edges {
        node {
          financialSummaries {
            approximateDiscountedUnitPriceSet
            discountAllocations
            originalUnitPriceSet
            quantity
          }
        }
      }
    }
  }
}

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

新たに追加されたフィールドを利用することで、注文情報や購入明細を一度に取得することが可能になり、APIの呼び出し回数が減少します。これにより、通信コストの削減やシステムのパフォーマンス向上が期待できます。

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

新たに追加されたフィールドを使用する際は、必要なアクセススコープが設定されているか確認してください。また、REST APIを利用する場合は、リクエストパラメータにinclude_financial_summaries=trueを指定する必要があります。

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

今後もShopifyのAPIは進化し続けます。新たなフィールドの追加やAPIの改善情報は、公式のドキュメンテーションや更新履歴を定期的に確認することでキャッチアップできます。効率的な開発のために、常に最新の情報を取得し、APIの最適な利用方法を追求していきましょう。

参考記事: Enhanced the FulfillmentOrder API with additional Order details and FulfillmentOrderLineItem with financialSummaries