Data Importer 是 Saleor 配置工具集中的一项技能,主要用途是将来自外部来源的产品数据转换为 Saleor 的 config.yml 格式。它适用于从 CSV 文件、电子表格或 Shopify 导出数据中导入、迁移或转换产品数据的场景。
主要能力
该技能支持格式检测(CSV、Excel、JSON 或未知格式)、列提取(读取表头和样本数据)、交互式字段映射(由用户确认字段对应关系)、数据转换(转换为 Saleor 架构)以及输出前验证。对于 Excel(.xlsx)文件,需要先转换为 CSV,可使用命令:python3 -c "import pandas as pd; pd.read_excel('$FILE').to_csv('${FILE%.xlsx}.csv', index=False)"。CSV 文件可直接读取以检查表头和样本行。
字段映射
导入器不会假设列名,而是展示所有列及其样本值,询问每个 Saleor 字段对应哪一列,并将未映射的列标记为潜在属性。必填字段包括:product.name(通常来自 "name"、"title" 或任何描述性列)、product.slug(从名称生成,或来自 "handle"/"ID" 列)、variant.sku(来自 "SKU"、"External ID"、"Code")、productType(来自 "type" 列或用户指定)。可选字段包括:price(缺失时仅导入为目录)、quantity(缺失时跳过库存跟踪)、category(来自 category/region 列)、description(如果源数据中存在)。其他列将成为产品属性。
输出结构
生成的 config.yml 包含 productTypes、categories 和 products 等部分。productTypes 中的 productAttributes 由未映射的列转换而来;categories 的 slug 自动生成;products 包含 name、slug、productType 和 variants,variants 中根据 price 和 quantity 的存在情况包含 channelListings 和 stocks。
特殊处理
无 price 列时仅导入为目录,后续可添加定价;无 SKU 列时从名称生成或使用唯一 ID 列;未知列作为潜在属性呈现;多行相同产品时分组为一个产品的多个变体。
常见错误与验证
常见错误包括:未检查就假设列名、未处理缺失 SKU、未验证就导入、多行变体导致重复产品、忘记先创建产品类型。生成输出前需验证:所有产品有名称、所有变体有唯一 SKU、产品类型引用有效、无重复 slug。
参考文件
references/csv-patterns.md(CSV/Excel 解析技巧)、references/field-mapping.md(各种数据形状的映射策略)、references/shopify-format.md(Shopify 特定处理)、references/transformations.md(数据转换规则)。
相关技能
configurator-schema(config.yml 结构和字段要求)、product-modeling(导入前的产品类型设计)、saleor-domain(实体关系和标识符规则)。