从 Shopify 迁移
通过一次只读导入,将 Shopify 商店中的产品、客户、库存、配送和折扣复制到你的 Runner 商店。
本指南内容: 你将把 Shopify 商店的数据复制到现有的 Runner 商店,检查结果,并在需要修正时重新导入。
商店迁移是一次性的只读复制。Runner 读取你的 Shopify 商店,并把找到的内容写入你的 Runner 商店。Shopify 中的任何内容都不会改变,导入运行期间你的 Shopify 商店也会照常销售。
为什么以及何时迁移
当你要把商店搬到 Runner,并希望从现有的目录、客户和设置开始,而不是重新输入一遍时,使用迁移。
迁移不同于连接 Shopify 商店。连接会让 Shopify 继续作为商店系统,因此结账仍在 Shopify 中进行。迁移则把数据一次性复制到 Runner 商店,之后该商店独立运行。导入完成后,Runner 不会让两个商店保持同步。
可用性和前提条件
- 你的工作区必须开放迁移功能。
- 你需要拥有工作区的所有者或管理员角色。其他成员看不到入口,Runner 也会拒绝导入并显示
只有商店所有者或管理员可以更改或开始迁移。 - 请导入到 Runner 商店,而不是连接到 Shopify 的项目。如果还没有 Runner 商店,请先创建 Runner 商店。
- 等待商店完成设置。在此之前,Runner 会显示
商店仍在准备中。设置完成后,上传功能将自动可用。,并且继续不可用。 - 使用连接 Shopify 时,你需要一个 Shopify 账户,该账户属于拥有该商店的组织,并且有权开发应用并将其安装到该商店。
- 使用上传 CSV 导出文件时,你需要有权从 Shopify 后台导出产品、客户和折扣。
- 一个商店同一时间只能运行一次导入。
打开迁移
入口路径: 打开项目 → 顶栏 → 迁移
在手机上,选择顶栏中的双箭头图标,或在空聊天中选择从 Shopify 迁移。
导入运行期间,按钮显示正在从 Shopify 迁移以及已完成的百分比。导入结束后的 24 小时内,按钮显示迁移完成 · 查看报告或迁移需要你处理。选择它会回到你离开时的位置:运行中的导入会打开进度,已结束的导入会打开报告。
选择 Runner 读取商店的方式

英文标注指出了操作位置。点击图片可放大查看。
| 控件 | 使用原因 | 选中时发生的情况 |
|---|---|---|
| 连接 Shopify (1) | 通过你在 Shopify 中创建的应用直接读取商店。还会带上产品系列。约 4 分钟。 | 选择此方式。继续会打开连接你的 Shopify 商店。 |
| 上传 CSV 导出文件 (2) | 无法创建应用时,使用从 Shopify 后台导出的文件。产品系列需要手动重建。约 10 分钟。 | 选择此方式。继续会打开添加 Shopify 导出文件。 |
| 查看全部 (3) | 开始前查看导入会把哪些内容留在 Shopify | 打开留在 Shopify 的内容。 |
| 继续 (4) | 进入下一步 | 打开所选方式的步骤。此时还没有导入任何内容。 |
| 取消 | 不开始就离开 | 关闭对话框。 |
尽量选择连接 Shopify。它比导出文件能读取更多商店内容,而且之后可以重复导入,无需再次导出文件。
哪些内容会搬入,哪些留在 Shopify
导入按以下顺序分阶段运行:
| 阶段 | Runner 复制的内容 |
|---|---|
| 产品、变体和产品系列 | 产品及其变体、选项、价格和图片。只有使用连接 Shopify 时才会带上产品系列。 |
| 客户 | 有电子邮件地址的客户。 |
| 库存地点 | 你的商店地点。 |
| 库存 | 每个变体在每个地点的库存。 |
| 配送区域和费率 | 配送区域及其费率。 |
| 折扣 | 折扣码及其使用次数限制。 |
产品图片仍使用 Shopify 的图片地址;Runner 链接到这些图片,不会复制文件。产品阶段完成后,Runner 会检查这些链接,并列出无法打开的图片。关闭 Shopify 商店前,请联系 Runner 支持团队,以确保产品图片仍可访问。

留在 Shopify 的内容列出了导入不会搬移的每项内容,以及替代做法:
| 分组 | 项目 | 处理方法 |
|---|---|---|
| 保留在 Shopify | 订单和订单历史;礼品卡及其余额;付款、交易和其他财务历史;客户标签、备注和电子邮件营销同意 | 从 Shopify 导出你需要的记录。记下客户仍持有的礼品卡余额,并在向客户发送营销邮件前请他们重新订阅。 |
| 在 Runner 中重建 | 产品系列(仅限 CSV 上传);产品系列的描述、图片和自动规则;一个产品属于多个产品系列;部分折扣,例如最低消费、应用和订阅折扣;承运商计算的运费和部分条件运费;元字段和元对象;产品标签、供应商、类型、SEO 和视频 | 在商店运营中重建,或在聊天中让 Runner 处理。自动产品系列会变成固定的产品列表,并且每个产品只属于一个产品系列。 |
| 在 Shopify 中修正后重新导入 | 没有电子邮件地址的客户 | 在 Shopify 中为他们添加电子邮件,然后再运行一次导入。 |
Runner 绝不会启用近似的折扣或配送规则。无法在 Runner 中以相同方式生效的规则会被跳过并列在报告中,因此导入后请核对你的折扣和运费。
连接 Shopify
连接你的 Shopify 商店有四个步骤。在 Shopify 中完成每一步后,将其标记为完成;后续步骤会依次解锁。在 Shopify 中操作时,请保持 Runner 标签页打开。
第 1 步:找到你的商店

- 在找到你的店铺 (1) 中,粘贴商店名称、它的
.myshopify.com地址或 Shopify 后台中的链接。Runner 会显示它将使用的地址,例如Runner 将使用 meridian-goods.myshopify.com。 - 选择继续 (2)。
你也可以输入自己的域名,例如 meridian-goods.com。继续时,Runner 会查找它的 .myshopify.com 地址。Runner 找到商店后,标题会变为连接加上商店名称。选择地址旁的更改可改用其他商店;Runner 会放弃草稿,Shopify 中的任何内容都不会改变。
第 2 步:在 Dev Dashboard 创建应用
- 选择打开 Dev Dashboard。使用拥有该商店的同一 Shopify 组织中的商家账户登录。
- 打开 Apps,选择 Create app,然后选择 Create app manually。应用名称可以随意填写。你不需要 Shopify CLI。
- 返回 Runner,选择我已创建应用。
无法使用其他 Shopify 组织拥有的应用。Shopify 配置指南、所需账户权限和必须属于同一 Shopify 组织这几个链接会打开 Shopify 自己的说明。
第 3 步:添加只读权限范围,然后发布并安装

- 选择复制权限范围 (1)。Runner 会把全部 15 个权限范围复制为一个以逗号分隔的列表。
- 在 Shopify 的 Create an app 页面中,将完整列表粘贴到 Scopes,选择 Create app,然后选择 Release。如果应用已经存在,请打开 Versions,选择 Create version,将列表粘贴到 Scopes,然后选择 Release。
- 如果应用的 Overview 页面显示 Distribution 卡片,请打开它并选择 Custom distribution。否则 Shopify 不会向该应用共享客户记录。在商店自己的组织中创建的应用没有 Distribution 卡片,可跳过此步。Shopify 分发指南 (2) 会打开 Shopify 的说明。
- 在应用的 Overview 页面中,使用 Installs 卡片里的 Install app。选择商店,确认只读权限,然后选择 Install。Shopify 会提示该应用未经审核;对于你自己创建的应用,这是正常现象。
- 返回 Runner,选择我已添加并安装 (3)。
这些权限范围都是只读的。Runner 只请求以下权限范围:
read_customers,read_discounts,read_files,read_inventory,read_locales,read_locations,read_markets,read_metaobject_definitions,read_metaobjects,read_price_rules,read_product_feeds,read_product_listings,read_products,read_publications,read_shipping
如果之后修改了权限范围,请发布新版本并重新安装应用,再返回 Runner。
第 4 步:粘贴 Client ID 和 Client Secret

- 在 Dev Dashboard 中打开 Apps,再打开你为 Runner 创建的应用。
- 选择 Settings,然后选择 Credentials。复制 Client ID,然后选择 Client Secret 旁的 Reveal,并一起复制。
- 在 Runner 中,将它们分别粘贴到 Client ID (1) 和 Client Secret (2)。
- 选择验证凭证 (3)。检查需要几秒钟。
Client Secret 以 shpss_ 开头。以 shpat_ 开头的值是访问令牌,不是 Client Secret。如果你把两个值粘贴到了错误的字段,Runner 会提供互换。在哪里找到它们? (4) 会在表单旁重复这些步骤。
Runner 会加密已验证的凭证,并在之后从同一商店导入时重复使用,因此你只需粘贴一次。选择替换凭证可改用其他凭证。
开始导入

凭证被接受后 (1),左侧面板会初步展示 Runner 从你的商店读取到的内容:产品图片,以及产品、客户、产品系列和折扣的数量。此时还没有导入任何内容。
选择开始迁移 (2)。页脚会汇总将要搬入的内容,例如 开始迁移:148 件商品、1,240 位客户、27 个折扣。
如果 Shopify 接受了凭证,但应用缺少配送或折扣权限范围,Runner 会显示缺少:以及缺少的权限范围。添加这些权限范围后选择重新检查,或选择不含这些内容直接迁移,仅跳过这些阶段。缺少其他任何权限范围都会阻止导入,直到你添加为止。
上传 CSV 导出文件
无法在 Shopify 中创建应用时,使用此方式。CSV 导出文件包含的内容少于连接 Shopify:产品系列永远不会通过它们导入,而且导入只能包含文件中已有的内容。
从 Shopify 导出文件

Shopify 导出位置列出了各个导出文件。选择其中一项可显示它的步骤 (2),然后使用打开 Shopify 后台 (3) 导出文件,再用选择文件 (4) 添加。你也可以把文件拖放到拖放区域 (1)。
| 导出文件 | 在 Shopify 后台中 | 是否必需 |
|---|---|---|
| 产品 | 产品 → 导出,选择所有产品和纯 CSV 文件,然后选择导出产品。产品超过 50 个时,Shopify 会通过邮件发送文件。 | 从这一项开始 |
| 客户 | 客户 → 导出,选择所有客户和纯 CSV 文件,然后选择导出客户。 | 推荐 |
| 折扣码 | 折扣 → 导出,选择所有折扣,然后选择导出折扣。 | 推荐 |
| 库存 | 产品 → 库存 → 导出。 | 可选 |
| 地点和运费 | Shopify 没有内置的导出功能。如果你用应用生成了 CSV,可以在这里添加。 | 可选 |
文件可以按任意顺序添加,文件名也不限。Runner 只接受 CSV,每个文件最大 25 MB、500,000 行。较大的导出文件可以在 Shopify 中通过筛选拆分成多个部分,然后添加所有部分。
检查文件,然后导入

在导入任何内容之前,Runner 会先读取每个文件,并告诉你它发现了什么。
| 状态 | 含义 | 要做什么 |
|---|---|---|
| 就绪 (1) | Runner 识别了该导出文件,并且可以导入每一行。 | 无需操作。选择该行可查看 Runner 发现的内容。 |
就绪 · 跳过 {count} 行 (2) |
有些行无法导入,例如没有电子邮件的客户。 | 不含这些行直接导入,或在 Shopify 中添加电子邮件后再重新导入。下载这 {count} 行(CSV) 会列出这些行。 |
这看起来是{kind}导出文件,对吗? (3) |
这些列与 Shopify 导出文件接近,但不完全一致。 | 选择 是,{kind},或选择匹配列并为每个 Shopify 列选择文件中对应的列,然后选择使用这些列。 |
| Excel 文件、Numbers 文件、不是 CSV | 该文件不是 CSV。 | 将它另存为 CSV UTF-8,然后选择替换。 |
| 不是来自 Shopify | 该文件来自其他商店平台。 | 从 Shopify 导出相同的数据,或移除该文件。 |
| 文件过大、行数过多 | 文件超过 25 MB 或 500,000 行。 | 使用替换为分段文件,换成较小的导出文件。 |
| 上传失败 | 上传过程中连接中断。 | 检查网络连接,然后选择重试上传。 |
选择导入 (4)。按钮会显示就绪文件的数量,例如导入 2 个文件。如果有文件未包含在内,Runner 会在开始前请你确认;未包含的文件可以之后再添加。
如果不想导入就离开,请选择取消,然后在不导入就离开吗?中选择离开。你添加的文件会保留在草稿中,供你回来时继续使用。放弃草稿会删除已上传的文件;Shopify 中的任何内容都不会改变。
跟踪导入

进度视图以你的商店名称为标题(例如正在搬入 Meridian Goods),并显示每个阶段及其数量。运行中的阶段 (1) 会显示已完成的记录数,例如 512 / 1,240。导入通常需要几分钟。
| 控件 | 使用原因 | 选中时发生的情况 |
|---|---|---|
| 在聊天中打开 (2) | 在其余数据导入的同时开始构建在线商店 | 打开一个新聊天,让 Runner 复刻你的 Shopify 网站外观。 |
| 关闭并在后台继续迁移 (3) | 让导入继续运行 | 关闭对话框。导入会继续在 Runner 的服务器上运行,完成后 Runner 会给你发送电子邮件。 |
| 取消 (4) | 停止导入 | 打开要停止迁移吗?。停止迁移会停止复制;已进入 Runner 的记录会保留。继续导入会返回进度视图。 |
CSV 导入期间,你可以用添加文件添加仍缺少的导出文件。它会在已运行的阶段之后导入,并合并到同一份报告中。
| 状态 | 含义 |
|---|---|
| 下一个、已排队 | 该阶段正在等待之前的阶段完成。 |
| 正在准备你的店铺…、正在连接 Shopify…、读取中… | 该阶段正在启动。 |
{processed} / {total} |
该阶段正在写入记录。 |
| 已暂停 | Shopify 要求 Runner 放慢速度。导入会自动恢复,你无需进行任何操作。 |
一个数字,例如 148 |
该阶段已完成。 |
失败或 停在 {processed} / {total} |
该阶段未完成。已进入 Runner 的记录会保留。 |
检查结果

导入完成后,Runner 会显示你的商店名称加上已搬入。(例如Meridian Goods 已搬入。),以及搬入的产品、客户和折扣数量、需要修正的记录数,以及留在 Shopify 的项目数。
- 构建在线商店 (1) 会打开一个新聊天,让 Runner 复刻你当前网站的外观。
- 查看报告,或在有记录需要修正时显示的
查看这 {count} 项(2),会打开导入报告。

导入报告会显示搬入了多少条记录,以及每条 Shopify 记录的去向。
| 控件 | 使用原因 | 选中时发生的情况 |
|---|---|---|
| 下载 CSV (1) | 保留每一项的记录 | 下载 import-report-{date}.csv,其中包含每条记录的类型、名称、Shopify ID、句柄、结果和原因。 |
{count} 项需要你处理 (2) |
查看未能顺利搬入的记录 | 打开迁移结果,其中包含没有搬入、留在 Shopify 和已搬入,附有说明。 |
| 开始另一次迁移 (3) | 修正记录后重新导入,或添加之前缺少的内容 | 返回把商店搬过来。 |
| 明细中的状态 (4) | 查看某一种记录类型 | 打开该类型在已搬入、需修正和已跳过下的记录,每条记录都提供在 Shopify 中打开。 |
| 完成 | 离开报告 | 关闭对话框。可从迁移重新打开。 |
报告中的每条记录都有以下结果之一:已添加、已更新、未变化、保留了 Runner 中的版本、已跳过、需要检查或无法导入。Runner 无法导入的记录(例如句柄已被占用的产品)会显示原因。请在 Shopify 中修正,然后重新导入。
报告还会列出留在 Shopify 的内容,并为需要在 Runner 中重建的内容提供聊天操作,例如在对话中重新创建商品系列。
重新导入
你可以随时再次导入同一商店,例如在 Shopify 中修正记录或添加产品之后。使用连接 Shopify 时,Runner 会重复使用已保存的凭证,按钮显示为更新店铺。
- 不会重复。 Runner 会记住它导入的每条记录。新的导入会更新对应的 Runner 记录,而不是再创建一条。
- 未变化的记录保持不动。 如果 Shopify 记录和 Runner 副本都没有变化,报告会显示未变化。
- 你在 Runner 中的编辑会保留。 如果你在 Runner 中编辑了某条记录,而它在 Shopify 中没有变化,报告会显示保留了 Runner 中的版本。如果两边都有变化,以较新的版本为准。
- 不会删除任何内容。 你在 Shopify 中删除的记录会保留在 Runner 中。
- CSV 和连接 Shopify 不会匹配彼此的记录。 如果你先用 CSV 导出文件导入,之后又用连接 Shopify 导入,有些记录可能会被导入两次。导入后请检查是否有重复记录。
故障排除
| 状态 | 含义 | 要做什么 |
|---|---|---|
| 顶栏中没有迁移 | 此工作区未开放该功能,或你的角色不是所有者或管理员。 | 请工作区所有者开始迁移,或检查你的角色。 |
| 继续一直不可用 | 商店仍在设置中。 | 等待设置完成。如果 Runner 显示 商店未能完成设置,请先重试商店设置。 |
Shopify 在该地址下没有店铺。 |
地址拼写错误,或该地址不是 Shopify 商店。 | 从 Shopify 的 Settings → Domains 复制地址。 |
Shopify 没有接受这组凭证,它们可能来自另一个应用。 |
Client ID 和 Client Secret 不正确,或来自另一个应用。 | 从同一个应用的 Settings → Credentials 复制这两个值,然后选择重新检查。 |
这些应用凭据不属于你要迁移的 Shopify 商店。 |
该应用安装在另一个商店上。 | 将应用安装到此商店,或使用已安装在此商店上的应用。 |
此应用缺少迁移所需的 Shopify 只读访问权限。 |
已发布的应用版本缺少权限范围。 | 添加权限范围,发布新版本并重新安装应用,然后选择重新检查。 |
| 客户数据被拦截 | Shopify 不会向该应用共享客户记录。 | 在 Dev Dashboard 中打开应用的 Distribution 卡片并选择 Custom distribution,然后选择重新检查。无需重新安装。如果无法这样做,请放弃草稿并改用 CSV 导出文件。 |
| 店铺已暂停 | Shopify 显示该商店已暂停或被冻结。 | 在 Shopify 中重新激活商店,然后重新检查。 |
| 等待 Shopify | Shopify 繁忙。 | Runner 会自动重试,并保留你粘贴的内容。 |
该商店已有未完成的 {source} 迁移。 |
该商店的另一次导入仍未结束。 | 继续该导入,或先放弃它的草稿再开始新的导入。 |
| 导入期间显示暂时暂停 | Shopify 要求 Runner 放慢速度。 | 请等待。导入会自动恢复。 |
| 迁移未完成 | 某个阶段已停止。如果 5 分钟内没有任何进展,Runner 会安全地停止导入。 | 选择重试迁移。已进入 Runner 的记录会保留,并且不会重复。 |
无法刷新进度:{error} |
进度视图无法连接到 Runner。 | 选择立即重试。导入本身会继续运行。 |
{count} 张图片无法打开 |
Shopify 的图片链接没有响应。 | 在 Shopify 中检查这些图片,然后在报告中选择重新检查。 |
如需完整的消息列表及其恢复步骤,请参阅 Shopify 迁移和导入错误。如果问题仍然存在,请联系 Runner 支持团队,并提供商店名称、停止的阶段以及 Runner 显示的导入 ID。