`productDuplicateAsync`の廃止と`productDuplicateAsyncV2`および`productDuplicateJob`の導入

Admin APIの2023-07リリースにて、productDuplicateAsyncの突然変異が廃止され、新たにproductDuplicateAsyncV2の突然変異とproductDuplicateJobのクエリが導入されました。これに伴い、APIの使用体験とパフォーマンスが大幅に改善されます。

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

以前のproductDuplicateAsyncの突然変異は、商品情報の複製を非同期で実行するためのAPIでしたが、一部のパフォーマンス問題と使用体験の問題が存在しました。これらの問題を解決するため、Shopifyは新たな突然変異のproductDuplicateAsyncV2とクエリのproductDuplicateJobを導入しました。

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

productDuplicateAsyncV2の突然変異とproductDuplicateJobのクエリを使用することで、商品情報の複製処理が効率的に行えるようになります。これにより、APIのレスポンス速度が改善され、開発者の作業効率が向上します。

実装手順とコード例

新たな突然変異とクエリの実装は以下のように行います。

mutation {
  productDuplicateAsyncV2(input: {id: "gid://shopify/Product/1234567890"}) {
    job {
      id
    }
    userErrors {
      field
      message
    }
  }
}

query {
  productDuplicateJob(id: "gid://shopify/ProductDuplicateJob/1234567890") {
    status
    createdAt
    completedAt
    input {
      productId
    }
    output {
      newProductId
    }
    userErrors {
      field
      message
    }
  }
}

上記のコードは、商品IDを指定して商品情報を複製し、その複製ジョブのステータスを取得する例です。

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

productDuplicateAsyncV2の突然変異とproductDuplicateJobのクエリの導入により、商品情報の複製処理が高速化し、APIのレスポンス時間が短縮されます。これにより、開発者の作業時間が短縮され、開発コストの削減に繋がります。

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

新たな突然変異とクエリを使用する際には、商品IDが正確であること、そしてエラーハンドリングを適切に行うことが重要です。また、productDuplicateAsyncの突然変異は廃止予定なので、新たにproductDuplicateAsyncV2の突然変異に移行することを推奨します。

次のステップ・発展案

今後、ShopifyはAPIの機能向上を続けて行くでしょう。そのため、開発者はShopifyの更新情報を常にチェックし、新たな突然変異やクエリの導入情報を得ることが重要です。

参考記事: Deprecation of `productDuplicateAsync` and introduction of `productDuplicateAsyncV2` and `productDuplicateJob`