このワークフローについて
Google SheetsからShopware 6へ複数のメーカーをインポート – ワークフロー分析
このn8nワークフローテンプレートは、Google SheetsからShopware 6 eコマースプラットフォームへ複数の製品メーカーをインポートするプロセスを自動化します。これにより、企業は名前、ウェブサイト、説明、翻訳、ロゴ画像などのメーカーデータを構造化されたスプレッドシートから直接効率的に管理および同期でき、手動入力を削減し、エラーを最小限に抑えることができます。
ワークフローの機能
ワークフローは、Google Sheetsからメーカーデータを取得し、Shopware 6の同期APIと互換性のある有効なインポート構造にフォーマットし、各メーカーをShopwareにインポートし、提供されていれば条件付きでロゴをアップロードします。国際的なストア向けの多言語コンテンツをサポートし、一意の識別子を介してメディア(ロゴ)が正しく関連付けられるようにMD5ハッシュを使用します。プロセス全体は手動でトリガーされ、スケーラビリティと信頼性のためにバッチで実行されます。
主な機能と能力
- 多言語サポート: 動的に翻訳フィールドをマッピングすることにより、メーカーごとに最大3つの追加言語翻訳を処理します。
- メディア処理: メーカーのロゴをShopwareに自動的にアップロードし、メーカー名に基づいた一貫したメディアIDを使用してリンクします。
- Upsertロジック: Shopwareの
upsert機能を使用して、重複なく新しいメーカーを作成または既存のメーカーを更新します。 - バッチ処理: バッチ分割ノードを使用してメーカーをバッチで処理し、タイムアウトやAPIレート制限を回避するのに役立ちます。
- 条件付き実行: インポートステップ中にメディアエンティティが正常に作成された場合にのみ、ロゴのアップロードを試みます。
- セキュアな認証: Google SheetsとShopware APIの両方へのセキュアなアクセスに、クライアント資格情報グラントタイプを使用したOAuth2を活用します。
- 再利用可能な構造: Codeノードのロジックを変更することで、より多くの言語や追加フィールドに簡単に拡張できます。
主要なノードとその目的
| ノード | 目的 |
|---|---|
| "ワークフローを実行"をクリックしたとき | ユーザーの入力時にワークフローの実行を開始する手動トリガー。 |
| 設定 | Shopware URLやデフォルトの言語コード(de_DE)などの設定変数を、他のノードで使用するために保存します。 |
| Google Sheetsからメーカーを取得 | メーカーデータ(名前、ウェブサイト、説明、ロゴURLなど)を含む指定されたGoogle Sheetsからすべての行を読み取ります。 |
| インポートリクエストボディを作成 | JavaScriptコードを使用して、生のシートデータをShopware 6の/api/_action/syncエンドポイントと互換性のある構造化されたJSONペイロードに変換します。これには以下が含まれます:<br>– 主要なメーカーの詳細<br>– 複数言語の翻訳<br>– メーカー名をMD5ハッシュしたメディアIDの生成 |
| メーカーをループ処理 | メーカーのリストを個々のアイテムに分割し、バッチ分割を使用して順次処理します。信頼性の高いAPIインタラクションのために、1つずつの処理を保証します。 |
| メーカーをインポート | 準備されたメーカーデータを、同期APIへのHTTP POSTリクエストを介してShopware 6に送信します。重複が回避されるようにupsert操作を実行します。 |
| ロゴがある場合 | Shopwareからの応答にメディアエンティティが含まれているかどうか(ロゴをアップロードする必要があることを示す)を評価する条件付きチェック。 |
| メーカーロゴをアップロード | ロゴURLが存在する場合にのみ実行されます。外部URLから画像を取得し、Shopwareのメディアアップロードエンドポイントに直接送信し、正しいファイル拡張子と名前を設定します。 |
| スティッキーノート | ユーザー向けのインラインドキュメントとセットアップ手順を提供します(例:資格情報の構成、Google Sheetsの準備)。 |
ユースケースとメリット
ユースケース:
- B2BまたはB2Cオンラインストアへの新しいブランドのオンボーディング。
- 多言語ストア全体で更新されたメーカー情報(ローカライズされたコンテンツを含む)の同期。
- 作成時にブランドロゴをリンクすることによるデジタルアセット管理の自動化。
- レガシー製品データをスプレッドシートから最新のeコマースシステムへの移行。
メリット:
- 時間節約: Shopwareバックエンドでの手動データ入力を何時間も削減します。
- 精度: 自動解析と検証により、ヒューマンエラーを削減します。
- スケーラビリティ: バルク操作をサポートし、バッチ処理により数百のエントリを処理できます。
- ローカライズ対応: 名前と説明の翻訳を組み込むことで、グローバル市場への対応力を向上させます。
- 拡張性: 同様のパターンを使用して、製品、カテゴリ、またはサプライヤーをインポートするように適応できます。
ステップバイステップのワークフローロジック
-
ワークフローの開始
ユーザーは「ワークフローを実行」をクリックして、ワークフローを手動でトリガーします。 -
設定のセットアップ
設定ノードは、必須の環境変数を設定します:shopware_url: ShopwareインスタンスのベースURLdefault_language_code: デフォルトのロケール(例:de_DE)
-
Google Sheetsからのデータ取得
Google Sheetsからメーカーを取得ノードは、定義済みのスプレッドシートからすべての行を取得します。各行はメーカーを表し、以下のような列があります:name(必須、一意)websitedescriptionlogo_url- オプションの翻訳フィールド:
translation_language_code_1、translation_name_1など。
-
コードを使用したデータ変換
インポートリクエストボディを作成ノードは、各アイテムを処理します:- 主要フィールドとオプションの翻訳を抽出します。
- 言語コードをキーとするネストされた
translationsオブジェクトを構築します。 - メーカー名をMD5ハッシュした
md5("media-" + name)を使用して、実行間で一貫性を保証する決定論的なメディアIDを生成します。 - Shopwareの同期API用に構造化された最終的な
manufacturerオブジェクトを構築します。
-
バッチ処理ループ
メーカーをループ処理ノードは、変換されたアイテムの配列を単一アイテムのバッチに分割し、順次処理を可能にします。 -
Shopwareへのインポート
各バッチについて:- メーカーをインポートノードは、
https://your-shopware-url.com/api/_action/syncにPOSTリクエストを送信します。 import-manufacturerパラメータに完全なペイロードを含めます。- 「SW6 Demo」資格情報の下で構成されたOAuth2認証を使用します。
- メーカーをインポートノードは、
-
条件付きロゴアップロードチェック
インポート後、ロゴがある場合ノードは、API応答にメディアエンティティが含まれているかどうかを確認します:- チェックされるパス:
$json.data['import-manufacturer'].result[0].entities.media - 存在する場合、アップロードに進みます。それ以外の場合はスキップします。
- チェックされるパス:
-
Shopwareへのロゴアップロード
メーカーロゴをアップロードノード:- インポートから返されたメディアIDを使用してメディアアップロードエンドポイントを呼び出します。
- 外部
logo_urlをパラメータとして渡し、Shopwareが画像をフェッチして保存できるようにします。 - 動的なクエリパラメータを設定します:
extension: ロゴURLから派生(例:.png、.jpg)fileName: メーカー名に基づく
-
完了
すべてのアイテムが処理され、(該当する場合)メディアがアップロードされると、ワークフローは終了します。
最終的な注意
このワークフローは、n8nがGoogle SheetsやShopware 6のようなSaaSプラットフォームをどのように連携させ、複雑なビジネスプロセスを自動化するかを示す好例です。スティッキーノートによる明確なドキュメントとモジュラー設計により、開発者と非開発者の両方にとって実用的なツールと学習リソースの両方として機能します。含まれているTODO(アカウントの接続、適切なスプレッドシート形式の作成、OAuth2統合の構成など)に従うことで、ユーザーは本番環境でこの自動化を迅速に展開できます。
使い方:JSON をダウンロードし、n8n で「ファイルからインポート」を選択します。