先给结论:客户数量相等不代表迁移成功
Shopify 客户数据迁移的目标不是让新后台显示相同数量的 customer,而是让每个合法需要保留的客户身份、地址、同意、标签、扩展字段与订单关系在目标系统中准确、可解释、可删除,并且不会误发营销、重复建档或暴露个人信息。数量相同可能同时隐藏重复邮箱、同意被放大、地址错位和订单断链。
可靠方案把迁移拆成范围与法律依据、字段字典、身份去重、原型、批次导入、增量同步、切换、对账、账号激活和稳定期。每一步都有负责人、输入哈希、输出报告、隐私控制与停止条件。Shopify 的客户 CSV 官方说明列出当前可导入字段、metafield 类型、密码与订单限制;在写转换脚本前,应以评审日文档和目标店实际模板为准。
| 成功维度 | 上线前必须证明 | 上线后监控 | 失败处理 |
|---|---|---|---|
| 身份 | 唯一键、重复规则、冲突人工队列 | 新增重复率、合并投诉 | 暂停增量并回放映射 |
| 同意 | 来源、时间、渠道、状态可追溯 | 退订、投诉、退信 | 停止营销并修正状态 |
| 关系 | 客户与地址、订单、公司、标签一致 | 客服查单与账户显示 | 重建关系或使用只读归档 |
| 隐私 | 最小字段、访问、删除与留存策略 | 请求 SLA、异常导出 | 撤权、删除临时文件、响应事件 |
| 恢复 | 源快照、ID 映射、批次与回滚演练 | 差异和失败可重放 | 恢复快照或反向修正 |
先确定迁移范围与处理依据
客户数据不是“能导就导”。先按经营国家、客户所在地、合同、售后、财务、税务、营销和法规确定保留目的与期限。为每一类字段记录处理目的、法律依据、来源、接收系统、访问角色和删除规则。无法说明用途的生日、身份证明、内部备注或长期失活标签,不应因为旧系统存在就复制到 Shopify。
Shopify 的客户数据请求说明提醒商家仍负责适用的数据保护义务,并提供访问和擦除相关流程。切换期间也要处理正在进行的访问、更正、删除或反对请求,不能用“系统迁移中”让请求从两个平台之间丢失。
设置数据冻结与请求交接点
在每次快照记录尚未完成的隐私请求、退订、客户合并和删除。最终增量前明确哪个系统接收新请求,完成后把结果同步到目标和只读归档。删除事件和退订事件与新增客户同等重要。
建立客户对象与字段台账
客户信息可能散落在旧平台客户表、地址、订单、CRM、邮件/SMS 工具、客服、订阅、忠诚度、B2B、表单和数据仓库。先找出哪个系统对每个字段负责,再决定 Shopify 是主系统、使用方还是只保存引用。不要把多个系统的值不加优先级地合并。
| 数据域 | 常见字段 | 主责问题 | 验收证据 |
|---|---|---|---|
| 身份 | 外部 ID、邮箱、电话、姓名 | 哪个键稳定,谁能改 | 源/目标 ID 映射与冲突单 |
| 地址 | 公司、街道、城市、省、国家、邮编 | 多地址如何排序和规范化 | 地址数量、默认地址和国家样本 |
| 同意 | Email、SMS、WhatsApp、时间、来源 | 渠道和法律依据是否独立 | 状态分布与原始证明 |
| 关系 | 订单、公司、订阅、积分、客服 | 关系由哪个系统维护 | 双向抽样与业务键对账 |
| 扩展 | 标签、备注、metafield、segment | 是事实、计算结果还是临时标签 | 字段字典、类型和留存 |
字段字典必须能执行
每行包含来源字段、目标字段、类型、长度、枚举、空值、默认值、清洗、转换、敏感级别、负责人和验收查询。用“直接迁移”代替规则会把实际决定推给脚本作者。对每个无法映射的字段给出淘汰、归档或新建 metafield 的明确结论。
数据最小化与安全边界
只将目标业务和法定义务需要的数据放入迁移管道。生产导出应加密传输与存储,限制到具名角色,记录访问和下载,避免通过普通聊天、邮件或公共表格分享。开发与测试优先使用脱敏样本;必须使用真实数据时,缩小范围、隔离环境并设自动到期。
临时 CSV、JSONL、错误文件和日志都可能含个人信息。项目完成标准必须包含临时文件清单、删除证明、密钥轮换、应用权限撤销和供应商副本处置。只删除主 CSV 而保留下载、日志和失败文件不算清理。
日志不要复制完整个人数据
用源 ID、目标 GID、批次、字段名和错误码定位问题,避免把邮箱、电话、地址和备注完整写入日志。需要人工核查时使用受控查阅工具,并记录谁访问过数据。
身份键与去重:先解决“谁是谁”
邮箱和电话会变更、复用、缺失或格式不同;姓名不能作为唯一键。建议保留旧平台不可变 ID,并建立 source ID → Shopify GID 的映射,同时用规范化邮箱、E.164 电话和业务规则识别候选重复。任何自动合并都要有可解释条件。
| 冲突场景 | 默认处理 | 禁止的捷径 |
|---|---|---|
| 同邮箱、同姓名、同地址 | 合并候选,核对订单和同意 | 只保留最新行 |
| 同邮箱、不同实体/公司 | 人工判断或保持隔离 | 自动覆盖旧档案 |
| 电话相同、邮箱不同 | 核查家庭/共享号码 | 把电话当永久唯一键 |
| 无邮箱但有电话 | 按目标支持路径和同意处理 | 生成虚假邮箱 |
| guest 与 registered 重叠 | 依据订单和账户规则归并 | 删除 guest 历史 |
冲突队列要有业务决定
记录冲突类型、候选记录、订单风险、同意差异、建议动作、审核人和日期。未解决冲突不应被脚本静默覆盖。对高价值、活跃订阅、退款中或 B2B 客户提高人工优先级。
邮箱、电话、姓名与地址规范化
邮箱可去除首尾空格并按业务规则比较大小写,但不要随意改变本地部分。电话要保留原值和解析结果,结合来源国家生成国际格式;无法可靠判断国家时进入异常队列。姓名需要支持多语言、单名、复姓、称谓和非拉丁字符,不能强制英文拆分。
地址要处理国家/地区 ISO 代码、省州代码、邮编前导零、全角字符、公司名、多个地址、默认地址和无法投递字段。规范化不是把地址“变漂亮”,而是让结账、税务、物流和客服得到正确结果。以主要市场真实地址样本验证。
保存原值与转换版本
对高风险字段保留受控的源值、规范化值、规则版本和错误原因。转换规则更新后可以重放,而不是凭最终结果猜测发生过什么。
营销同意必须按渠道和证据迁移
Email、SMS 和 WhatsApp 同意不是一个布尔值。分别保存订阅/未订阅/待确认状态、时间、来源表单、政策版本、市场和证明。Shopify 客户 CSV 对接受 Email、SMS 与 WhatsApp 营销字段有当前格式要求;官方说明同时警告只能向已选择接收营销的客户发送内容。
如果旧系统只有“newsletter=true”而没有来源或时间,不能自动把它提升成所有渠道同意。退订、投诉、硬退信、Do Not Contact 和法定抑制列表必须优先于订阅状态,并在营销平台与 Shopify 之间对账。
同意分布是重要质量门
比较迁移前后各市场、渠道和状态的数量与比例。订阅率突然上升、未订阅归零或状态集中到默认值,通常表示映射错误。任何异常都应在发送活动前解决。
客户密码、账号与激活流程
Shopify 官方文档明确说明,客户密码不能通过客户 CSV 从其他商店迁移。不能索要、导出或保存明文密码,也不应声称用户可以无感沿用旧密码。根据目标客户账号类型设计邀请、激活或密码重置流程,并先在测试客户上验证。
账号迁移还要覆盖重复邮箱、无效邮箱、语言模板、邮件频率、链接有效期、客服身份验证、防钓鱼说明和无法接收邮件的替代路径。不要在全量演练时误发生产邀请;把发送开关和收件人 allowlist 纳入运行手册。
账号激活不等于客户创建
后台存在客户档案,并不代表客户能登录、看到正确订单或使用订阅。用真实场景测试新用户、已迁移客户、无订单客户、多地址客户和存在退款/订阅的客户。
CSV 迁移:适合标准字段但有明确边界
客户 CSV 适合标准档案、小到中等批次和人工可审查的数据。按 Shopify 当期模板生成 UTF-8 文件,先导入 20–100 条代表样本。官方说明指出 Email 列必须存在、文件有大小限制、部分 metafield 类型受支持,但密码、订单、Total Spent 和 Total Orders 不能通过客户 CSV 按旧平台值导入。
| CSV 决策 | 适合 | 风险与补充 |
|---|---|---|
| 标准姓名/邮箱/电话/默认地址 | 直接字段映射 | 格式、空值与重复需预检 |
| 标签与备注 | 少量受治理属性 | 不要把敏感或临时信息塞入备注 |
| 支持的 customer metafield | 稳定扩展字段 | 先建定义,核对类型和 namespace |
| 多地址/复杂关系 | 可能不足 | 使用 API、应用或专项转换 |
| 密码、订单、消费统计 | 不适用 | 设计账号激活和订单/归档方案 |
每个 CSV 批次都要可追溯
保存源快照 ID、转换版本、输入哈希、行数、开始/结束、成功、失败、跳过与错误文件。重跑前确认是 upsert、更新还是新建,避免一份修正 CSV 产生第二批重复客户。
API 与应用迁移:更灵活,也需要更强治理
复杂关系、多地址、持续增量和大批量可能使用应用或 GraphQL Admin API。Shopify 的 customerSet用于从外部来源创建、更新或按唯一键 upsert 客户,并返回字段级 userErrors。API 能力不等于迁移正确:必须管理版本、权限、限流、幂等、重试、结果文件和受保护客户数据访问。
应用评估要记录读取/写入范围、数据存储地点、子处理方、删除方式、日志内容、停服处理和合同。迁移结束后撤销不再需要的 scope、token 和应用访问,并验证供应商删除副本。
用外部 ID 防止错误 upsert
邮箱或电话可能在项目期间改变。把源系统 ID 放入受治理的标识或映射表,以 source ID 为主、规范化联系方式为冲突检测,可以减少错误覆盖。每次 API 结果都保存目标 GID 和 userErrors。
客户与订单、订阅、积分和公司关系
客户档案必须与业务关系一起设计。Shopify 客户 CSV 不导入历史订单或旧平台的消费统计;若客服需要历史,应通过适合的订单迁移方式、数据仓库或加密只读归档提供,并保留客户映射。不能用手工写入 Total Spent 假装订单关系存在。
订阅、礼品卡、商店余额、积分、退款资格和 B2B 公司位置代表未来义务或权限,必须单独对账。每种关系定义源主键、目标对象、余额/状态日期、失败处理和客户沟通。不要让两个系统同时成为余额主责。
用客服任务验收关系
让客服查找客户、验证身份、查看历史订单、处理退款、识别订阅、确认余额、修改地址和执行隐私请求。后台字段对账通过但客服无法完成任务,迁移仍未完成。
标签、segment、备注与 metafield 的治理
旧平台标签可能是事实、活动结果、临时列表、风险标记或过期自动化产物。先分类再迁移。稳定事实适合结构化 metafield;可计算人群应在 Shopify segment 或数据平台重建;敏感内部信息需要严格权限;一次性活动标签可淘汰。
字段命名要有 namespace、key、类型、定义、所有者、来源、更新频率和删除策略。自由文本 Note 不应成为无法审计的数据仓库。对每个迁移字段验证筛选、自动化和应用是否按预期消费。
先重建规则,再导入结果
如果“VIP”来自过去 12 个月消费,优先在目标系统重建条件,而不是永久导入旧布尔值。这样新客户和后续订单才能持续得到一致分类。
隐私请求、删除与留存不能在切换中断
Shopify 区分访问、擦除个人数据和删除客户档案;擦除后某些交易事实可能因业务或法律需要保留。项目需要与隐私/法务确认适用流程,不要把平台功能当法律结论。对每个开放请求保存客户标识、收到时间、身份验证、涉及系统、截止日期和执行证据。
源平台进入只读后,仍要能定位客户并将新的访问或删除结果传播到归档、CRM、营销、客服和迁移供应商。若数据已经复制到测试环境,也要包含在请求范围或按批准的快速到期策略处理。
建立删除传播图
画出 Shopify、CRM、ESP/SMS、客服、订阅、数据仓库、备份和供应商之间的数据流,明确哪些系统自动收到请求,哪些需要人工,哪些受保留例外约束。每条路径有负责人和完成证据。
小批量原型与全量演练
样本必须覆盖风险,而不只是随机选择:重复邮箱、无邮箱、有电话、多地址、特殊字符、多语言、退订、短信同意、B2B、订阅、退款、最高价值、最旧记录和最新变更。先迁移小批量,验证后再扩大。
至少执行两次全量演练。第一次发现字段、权限和关系问题;第二次证明修复、耗时、清理和重跑。每轮从干净目标或明确基线开始,不能把多次失败导入叠加后再用数量推断成功。
生产邮件和自动化必须隔离
开发店关闭或拦截邀请、欢迎、营销、CRM、忠诚度和订阅通知。使用 allowlist 与测试域,并核查 Webhook/Flow 是否因导入触发。演练不应给真实客户造成骚扰或泄露项目状态。
增量同步与切换窗口
全量快照之后,客户仍会注册、改地址、订阅、退订、下单、退款、合并或请求删除。增量设计要捕获创建、更新、删除和关系变化,并保留事件时间与来源。仅按 updated_at 拉取可能漏掉外部营销系统的同意变化。
| 阶段 | 源系统写入 | Shopify 写入 | 质量门 |
|---|---|---|---|
| 原型 | 正常 | 测试样本 | 字段、身份、同意和账号通过 |
| 全量演练 | 正常 | 隔离批次 | 数量、关系、耗时和清理通过 |
| 增量演练 | 正常 | 受控 upsert | 新增、更新、删除可重放 |
| 最终冻结 | 限制关键写入 | 最终增量后开放 | 高风险差异归零 |
| 稳定期 | 只读/有限回退 | 生产主责 | 请求、客服、营销和订单正常 |
明确哪个系统是写入主责
在每个阶段说明 Shopify、旧平台、CRM 和营销系统谁能修改邮箱、电话、地址、同意和标签。双向同步如果没有冲突规则,会把正确修复覆盖回旧值。
对账:从计数到业务行为
对账至少包含总体数量、唯一身份、字段非空率、枚举分布、地址数量、同意分布、标签/metafield、订单关系、异常和隐私请求。金额、订阅、积分与余额使用独立总额。每个报告可以追到源记录、转换规则和目标 GID。
| 对账层 | 示例指标 | 通过条件 |
|---|---|---|
| 数量 | 源有效客户、目标创建/更新/跳过/失败 | 等式闭合,排除有原因 |
| 身份 | 唯一邮箱/电话、重复、guest 合并 | 高风险冲突归零 |
| 字段 | 空值、截断、枚举、国家、字符 | 与字段字典一致 |
| 同意 | 各渠道状态与市场分布 | 无默认放大,退订优先 |
| 行为 | 登录、查单、分群、自动化、隐私请求 | 代表任务全部通过 |
质量阈值在导入前批准
P0 包括错误同意、数据泄露、错误身份覆盖和客户无法访问关键订单;P1 包括大规模地址或关系错误。这些必须归零。低风险格式问题可有签字与补救日期,但不能由迁移团队自行降低标准。
回滚要区分档案、同意与新写入
回滚不是删除刚导入的所有客户。切换后 Shopify 可能已经产生新客户、地址、同意、订单和隐私请求。应按批次标识区分迁移记录与真实新写入,定义反向补偿、营销暂停、账号通知和数据保留。粗暴删除会造成二次损失。
演练一个失败场景:发现部分同意被错误设为 yes。团队应能立即停发、定位批次、恢复原状态、通知负责人、判断是否需事件响应并重新对账。回滚结果也要保存证明。
源快照不可替代操作回滚
备份说明可以恢复原数据,但没有说明如何处理目标侧新订单、邀请、订阅、Webhook 和营销发送。运行手册必须包含系统间补偿顺序和负责人。
上线后的 72 小时与 30 天
首 72 小时监控导入失败、重复客户、账号激活、登录、退信、退订、营销投诉、客服查单、订单关联、Webhook、API 错误和隐私请求。每天对账新增/更新/合并客户与各渠道同意分布。发现异常先停止受影响自动化,而不是继续扩大。
30 天内完成临时文件删除、权限和 token 撤销、供应商数据处置、旧平台只读策略、隐私请求演练和最终签字。完整店铺迁移的对象/URL/切换方法可参考已治理的Magento 到 Shopify 迁移指南;需要实施协作可查看迁移与建站服务和跨境电商知识中心。
30/60/90 天实施路线
前 30 天完成适用范围、数据流、字段字典、身份规则、同意证据、隐私请求、工具和样本;第 31–60 天完成脱敏原型、客户/地址/metafield/关系转换、账号与通知测试、第一次全量和对账;第 61–90 天完成第二次全量、增量、负载、安全、隐私、回滚与切换演练,并锁定稳定期与旧系统退出。
具体周期取决于数据量、来源系统、B2B、订阅、市场和法规。不可改变的标准是每个结果可追溯、可重放、可删除,并且未验证项不被标记为完成。
常见问题
Shopify 客户密码可以一起迁移吗?
不能通过客户 CSV 迁移其他商店的加密密码。应根据目标账号类型设计邀请、激活或安全重置,隔离演练邮件,并向客户解释流程,不能处理明文密码。
只有邮箱的客户可以导入吗?
可以按当期模板和业务规则处理,但必须确认记录用途、同意和重复。没有可靠身份或合法用途的地址不应为了扩大客户数量而导入或订阅营销。
Total Spent 和 Total Orders 能从旧平台写入吗?
客户 CSV 不会把旧平台的消费总额和订单数作为 Shopify 原生订单历史导入。需要历史时,应迁移订单关系、使用数据仓库或只读归档,并让客服和分析明确数据来源。
怎样避免迁移后重复客户?
保留稳定源 ID 到 Shopify GID 映射,以规范化邮箱和电话做冲突检测,先处理 guest/registered、共享联系方式和多系统重叠,再使用可重放的 upsert 或批次策略。
什么情况下必须停止迁移?
同意状态被放大、身份被错误覆盖、个人数据暴露、关键订单/订阅关系断裂、开放隐私请求遗漏或回滚不能执行时,应立即停止受影响批次和营销,修复并重新对账。