工作流介绍
从 Google 表格批量导入制造商到 Shopware 6 – 工作流程分析
此 n8n 工作流程模板可自动将多个产品制造商从 Google 表格导入 Shopware 6 电子商务平台。它使企业能够直接从结构化电子表格高效地管理和同步制造商数据,包括名称、网站、描述、翻译和徽标图像,从而减少手动输入并最大限度地减少错误。
工作流程功能
该工作流程从 Google 表格中检索制造商数据,将其格式化为与 Shopware 6 的同步 API 兼容的有效导入结构,将每个制造商导入 Shopware,并在提供时有条件地上传其徽标。它支持国际商店的多语言内容,并通过使用 MD5 哈希的唯一标识符确保媒体(徽标)正确关联。整个过程手动触发,并分批执行以实现可扩展性和可靠性。
主要功能和能力
- 多语言支持:通过动态映射翻译字段,支持每个制造商最多三个附加语言翻译。
- 媒体处理:自动将制造商徽标上传到 Shopware,并使用基于制造商名称的一致媒体 ID 将它们链接起来。
- Upsert 逻辑:使用 Shopware 的
upsert功能创建新制造商或更新现有制造商,避免重复。 - 批量处理:使用“Split In Batches”节点分批处理制造商,这有助于避免超时和 API 速率限制。
- 条件执行:仅在导入步骤中成功创建媒体实体时才尝试上传徽标。
- 安全认证:利用 OAuth2 和客户端凭据授权类型安全访问 Google 表格和 Shopware API。
- 可重用结构:通过修改 Code 节点逻辑,可以轻松扩展以支持更多语言或附加字段。
主要节点及其用途
| 节点 | 用途 |
|---|---|
| 点击“执行工作流程”时 | 手动触发器,在用户输入后启动工作流程执行。 |
| 设置 | 存储配置变量,例如 Shopware URL 和默认语言代码 (de_DE),供其他节点使用。 |
| 从 Google 表格获取制造商 | 读取包含制造商数据(名称、网站、描述、徽标 URL 等)的指定 Google 表格中的所有行。 |
| 创建导入请求正文 | 使用 JavaScript 代码将原始表格数据转换为与 Shopware 6 的 /api/_action/sync 端点兼容的结构化 JSON 负载。它包括:<br>– 核心制造商详细信息<br>– 多语言翻译<br>– 使用制造商名称的 MD5 哈希生成媒体 ID |
| 循环处理制造商 | 将制造商列表拆分为单独的项目,以便通过批量拆分进行顺序处理。确保一对一处理以实现可靠的 API 交互。 |
| 导入制造商 | 通过 POST 请求将准备好的制造商数据发送到 Shopware 6 的同步 API。执行 upsert 操作以避免重复。 |
| 如果存在徽标 | 条件检查,评估 Shopware 的响应是否包含媒体实体(表示应上传徽标)。 |
| 上传制造商徽标 | 仅在存在徽标 URL 时执行;将图像从外部 URL 直接发送到 Shopware 的媒体上传端点,设置正确的文件扩展名和名称。 |
| 便笺 | 为用户提供内联文档和设置说明(例如,配置凭据、准备 Google 表格)。 |
用例和优势
用例:
- 将新品牌引入 B2B 或 B2C 在线商店。
- 同步多语言商店中更新的制造商信息(包括本地化内容)。
- 在创建过程中链接品牌徽标,自动化数字资产管理。
- 将旧产品数据从电子表格迁移到现代电子商务系统。
优势:
- 节省时间:消除了 Shopware 后端数小时的手动数据输入。
- 准确性:通过自动解析和验证减少人为错误。
- 可扩展性:支持批量操作,可通过分批处理处理数百个条目。
- 本地化就绪:内置对名称和描述翻译的支持,提高了全球市场就绪度。
- 可扩展性:可以使用类似的模式进行调整以导入产品、类别或供应商。
分步工作流程逻辑
-
工作流程启动
用户通过单击“执行工作流程”手动触发工作流程。 -
配置设置
设置节点设置必要的环境变量:shopware_url:Shopware 实例的基础 URLdefault_language_code:默认区域设置(例如de_DE)
-
从 Google 表格获取数据
从 Google 表格获取制造商节点从预定义的电子表格中提取所有行。每行代表一个制造商,包含以下列:name(必需,唯一)websitedescriptionlogo_url- 可选的翻译字段:
translation_language_code_1、translation_name_1等。
-
使用代码转换数据
创建导入请求正文节点处理每个项目:- 提取核心字段和可选翻译。
- 构建一个由语言代码键控的嵌套
translations对象。 - 使用
md5("media-" + name)生成确定性的媒体 ID,以确保跨运行的一致性。 - 构建一个最终的
manufacturer对象,该对象结构化以供 Shopware 的同步 API 使用。
-
批量处理循环
循环处理制造商节点将转换后的项目数组拆分为单项批次,从而实现顺序处理。 -
导入到 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 表格和 Shopware 6 等 SaaS 平台来自动化复杂的业务流程。通过便笺和模块化设计的清晰文档,它既是实用的工具,也是开发人员和非开发人员的学习资源。通过遵循包含的 TODO(例如连接账户、创建正确的电子表格格式以及配置 OAuth2 集成),用户可以快速在生产环境中部署此自动化。
使用方法:下载 JSON 文件,然后在 n8n 中选择“从文件导入”。