从 Magento 迁移到 Shopify
DataEase 直接通过 Magento 的 REST API 将 Magento 2 商店(Magento Open Source、Adobe Commerce 或 Mage-OS)迁移到 Shopify——无需扩展、无需 CSV 导出、无需电子表格。在 Magento 中创建一个集成,粘贴其密钥,选择要迁移的内容,其余的交给 DataEase。它还会创建旧 URL 的重定向,因此切换域名后,链接和搜索排名依然有效。
迁移哪些数据
Section titled “迁移哪些数据”| Magento | Shopify | 详情 |
|---|---|---|
| 简单产品、虚拟产品和可下载产品 | 产品 | 名称、描述、状态、可见性、作为产品类型的第一个分类、图片(主图在前)、SKU、价格和特价(作为原价)、成本、重量、税类、库存数量(位于主地点)、缺货预订、品牌(manufacturer)、制造国家/地区、SEO 标题和描述。 |
| 可配置产品 | 带变体的产品 | 可配置属性(Color、Size 等)成为选项(最多 3 个),每个已启用的子产品成为一个变体,拥有各自的 SKU、价格、库存和图片。 |
| 分类 | 集合 | 包含该分类产品、描述、图片和 SEO 的手动集合。嵌套分类会成为各自独立的集合。 |
| 客户 | 客户 | 姓名、邮箱、电话、所有地址(默认收货地址在前)、新闻通讯订阅。客户组会作为标签添加,例如 magento-group-wholesale。 |
| 订单 | 订单 | 历史副本,包括订单项(按 SKU 关联到已迁移的变体)、变体选项、配送、折扣、税费、付款和退款。不会向客户发送任何邮件。 |
| 购物车价格规则 | 折扣 | 带优惠券的规则成为折扣码,不带优惠券的规则成为自动折扣:百分比折扣、按商品或按购物车的固定金额折扣、免运费、最低小计或最低数量、配送国家/地区、产品和分类条件、日期和使用次数限制。 |
| CMS 页面 | 页面 | 标题、内容、状态、SEO。 |
| 旧 URL | URL 重定向 | 产品和分类(带有商店设置中的 .html 后缀)、CMS 页面、购物车、客户账户和搜索会重定向到对应的 Shopify 地址。 |
- 描述和页面中的图片会被复制到 Shopify → Content → Files,链接也会同步更新,因此旧商店下线后也不会出现失效。
- Magento 模板标签会被转换:
{{media url="…"}}变为图片地址,{{store url="…"}}变为链接;小部件和 CMS 块会被移除。 - 每条记录的 Magento ID 都保存在
magento.id元字段中。 - 已禁用的产品会作为草稿迁移。不单独显示的产品,或未分配到商店网站的产品,会被迁移,但不会发布到 Online Store。
不迁移: 主题和设计、扩展及其数据(博客、评论、积分)、捆绑产品、分组产品和礼品卡产品、自定义选项、阶梯价格和目录价格、其他语言的商店视图、支付、配送和税费设置、客户密码(客户需在 Shopify 中设置新密码)。
- Magento 2.3 或更高版本(Magento Open Source、Adobe Commerce 或 Mage-OS)。
- 一个可以创建集成的 Magento 管理员用户(System → Extensions → Integrations)。
- 商店必须可从互联网访问——DataEase 无法连接
localhost或内网地址。请在迁移完成前保持商店在线:图片需要从商店下载。 - 您的 Shopify 商店应使用与 Magento 相同的货币——价格按原样复制,不做换算。
第 1 步. 在 Magento 中创建集成
Section titled “第 1 步. 在 Magento 中创建集成”- 在 Magento 后台,打开 System → Extensions → Integrations,然后点击 Add New Integration。
- 输入名称,例如
DataEase,并在 Your Password 中输入您的管理员密码。 - 打开 API 选项卡,将 Resource Access 设置为 All。
- 点击 Save,然后点击新集成旁边的 Activate,再点击 Allow。
- Magento 会显示四个密钥:Consumer Key、Consumer Secret、Access Token 和 Access Token Secret。复制全部四个。
这些密钥仅提供 API 访问权限,并且可以随时撤销。DataEase 只读取数据——绝不会修改 Magento 中的任何内容。
想授予更少的权限? 您可以不选 All,而是逐项选择资源:商店、目录(产品、分类和库存)、客户和客户组、销售订单、购物车价格规则以及 CMS 页面。如果缺少某项,DataEase 会提示需要添加哪个 Magento 资源。
第 2 步. 在 DataEase 中连接商店
Section titled “第 2 步. 在 DataEase 中连接商店”- 在 Shopify 中,打开 DataEase → Store transfers。
- 选择 From Magento 选项卡。
- 输入商店地址(例如
https://myshop.com)和集成的四个密钥。 - 点击 Check connection。
DataEase 会显示商店名称、读取数据所用的商店视图,以及商店中每种类型的记录数量。
第 3 步. 选择迁移内容并开始
Section titled “第 3 步. 选择迁移内容并开始”- 勾选要迁移的数据——默认会选中商店中找到的所有内容。
- 点击 Start migration。
迁移在后台运行——您可以关闭页面。Transfers 列表会显示当前正在迁移的数据,您可以随时 Cancel。
第 4 步. 检查结果
Section titled “第 4 步. 检查结果”迁移完成后,列表会显示每种类型已迁移的记录数,以及警告、错误及其原因——例如 Orders: 1250 ⚠3。常见的警告包括带有 Shopify 不支持条件的购物车价格规则,或之前已经迁移过的记录。
- 在 Shopify 后台检查产品、集合和价格。
- 设置支付、配送和税费——这些不会被迁移。
- 选择并自定义主题,然后将迁移的页面和集合添加到导航菜单中。
- 将您的域名连接到 Shopify。像
/joust-duffle-bag.html这样的旧链接现在会重定向到/products/joust-duffle-bag。 - 在 Magento 中删除集成(System → Extensions → Integrations)。迁移一完成,DataEase 就会从自己的数据库中删除这些密钥。
再次运行迁移
Section titled “再次运行迁移”您可以随时再次运行迁移——例如,在切换域名之前再运行一次以获取新订单。现有记录会被更新,而不会重复:
- 产品、集合、客户和页面会按 handle 或邮箱匹配并更新;
- 之前已迁移的订单、已存在的折扣码、同名的自动折扣和已存在的重定向会被跳过(您会看到带有其数量的警告);
- 已复制到 Shopify Files 的图片会被重复使用。
数据如何映射
Section titled “数据如何映射”- Handle:产品的 URL 键,因此产品地址依然易于辨认。
- 状态:Enabled → Active;Disabled → Draft。
- 价格:生效中的特价成为 Shopify 价格,常规价格成为原价(compare-at price)。特价日期按迁移时的状态判断。
- 库存:数量会进入您的主地点。允许缺货预订的产品在缺货时仍可继续销售。
- 选项:可配置产品的属性按相同顺序成为选项,值按属性选项的顺序排列。Shopify 每个产品最多支持 3 个选项和 2048 个变体;选项更多的产品会被跳过并附带警告。已禁用的子产品不会被迁移。
- 税费:税类为 None 的产品不征税。
- 简短描述保存在
magento.short_description元字段中。
| Magento 状态 | Shopify 付款状态 | 履约 |
|---|---|---|
| Pending (new)、On hold | 待处理(如已开具发票则为已付款) | 未履约 |
| Processing | 已付款(或部分付款) | 未履约,全部发货后为已履约 |
| Complete | 已付款 | 已履约 |
| Closed | 已退款(或部分退款) | - |
| Canceled | 已作废 | - |
付款状态根据 Magento 记录的已付金额和已退款金额计算。状态为 Pending payment 或 Payment review 的订单不会被迁移。每个迁移的订单都会带有 magento 标签和 magento-<status> 标签(例如 magento-complete),并保留其 Magento 订单号(#000000145)。
购物车价格规则
Section titled “购物车价格规则”| Magento | Shopify |
|---|---|
| 带特定优惠券的规则 | 折扣码 |
| 不带优惠券的规则 | 自动折扣 |
| Percent of product price discount | 百分比折扣 |
| Fixed amount discount | 每件符合条件的商品减免固定金额 |
| Fixed amount discount for whole cart | 订单减免固定金额 |
| Free shipping(折扣金额为 0) | 免运费折扣 |
| 条件 Subtotal equals or greater than | 最低消费金额 |
| 条件 Total items quantity | 最低商品数量 |
| 条件 Shipping country(免运费) | 配送至所选国家/地区 |
| 操作条件 SKU 或 Category | 特定产品或集合 |
| Uses per coupon / Uses per customer = 1 | 使用次数限制 / 每位客户限用一次 |
| Discard subsequent rules | 不与其他折扣叠加 |
DataEase 绝不会让折扣的适用范围比在 Magento 中更宽。仅限部分客户组的规则、带有 Shopify 无法表达的条件(支付方式、购物车属性、组合条件)的规则以及 Buy X get Y 规则会被跳过并附带警告——请手动重新创建。未启用的规则和自动生成的优惠券码不会被迁移。
| 消息 | 处理方法 |
|---|---|
| Magento rejected the integration keys | 检查全部四个密钥,并确保集成处于 Active 状态。如果您重新授权过,请复制新的访问令牌和密钥。 |
| The consumer isn’t authorized to access … | 编辑集成,将 Resource Access 设置为 All(或添加消息中提到的资源)并保存。 |
| Magento REST API endpoint … was not found | 检查商店地址——请使用店面地址,而不是后台 URL。 |
| returned a non-JSON response | 防火墙、维护模式或缓存阻止了 REST API。迁移期间请允许 /rest/ 请求。 |
| must be reachable from the internet | 请使用商店的公共地址,而不是 localhost 或内部 IP。 |
| Image … was not copied | 图片 URL 无法访问。页面会保留旧链接——请在 Content → Files 中手动上传图片。 |
客户会收到邮件吗? 不会。客户和订单创建时不会发送通知或邀请。
我的 Magento 商店会被修改吗? 不会。DataEase 只从中读取数据。
集成密钥会被保存吗? 仅在迁移运行期间加密保存。迁移完成、失败或取消时即被删除。
我有多个网站或商店视图,会迁移哪一个? 默认网站的默认商店视图:迁移其名称、描述、价格和 URL。
想从 WordPress 迁移,或在两个 Shopify 商店之间转移数据? 请参阅从 WordPress / WooCommerce 迁移和商店转移。