製品複製時に翻訳を含む新たなオプション引数

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

ShopifyのGraphQL APIを使用して製品を複製する際、従来は製品、そのバリエーション、メタフィールドに保存された翻訳情報が新製品にコピーされることはありませんでした。これは多言語対応のECサイトで製品を複製する際に、翻訳情報を手動で再度入力する必要があり、作業効率とエラー防止の観点から課題となっていました。

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

2024年1月版のadmin GraphQL APIでは、productDuplicateミューテーションを呼び出す際に、翻訳を含むかどうかを指定する新しいオプション引数が追加されました。このオプション引数をtrueとして渡すと、製品、そのバリエーション、メタフィールドに保存されたすべての翻訳が新製品にコピーされます。

3. 実装手順とコード例

以下のように、productDuplicateミューテーションを呼び出す際に、新たに追加されたオプション引数includeTranslationstrueとして渡します。


mutation {
  productDuplicate(id: "gid://shopify/Product/1234567890", includeTranslations: true) {
    product {
      id
    }
    userErrors {
      field
      message
    }
  }
}

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

この新機能の導入により、製品複製時の手間と時間が大幅に削減されるとともに、手動での入力ミスを防止することが可能になります。翻訳情報の複製が自動化されることで、開発者が他の開発タスクに集中することが可能になり、全体の開発効率を向上させることが期待できます。

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

このオプション引数は、デフォルトではfalseとなっており、明示的にtrueを指定しない限り翻訳は複製されません。また、この機能は2024年1月版のAPIから利用可能となっているため、それ以前のバージョンを使用している場合は、APIのバージョンアップを検討してください。

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

今後は、この機能を製品だけでなく、他のリソース(ページやブログ記事など)の複製にも適用することで、ショップ全体の多言語対応を更に効率的に行うことが可能になるでしょう。

参考記事: New optional argument to include translations when duplicating product