dominicwatts / orderhistory
轻松将magento 1订单迁移到magento 2,并在客户账户中独立区域显示订单。在可能的情况下提供重新订购功能。
1.0.2
2020-04-08 23:53 UTC
Requires
- php: >=5.6.0
- magento/framework: *
This package is auto-updated.
Last update: 2024-09-06 22:41:40 UTC
README
轻松将magento 1订单迁移到magento 2,并在客户账户中独立区域显示订单。在可能的情况下提供重新订购功能。
安装
步骤 1 - 在magento 1商店中,根据销售数据创建存档订单表
CREATE TABLE m1_sales_flat_order LIKE sales_flat_order;
INSERT INTO m1_sales_flat_order SELECT * FROM sales_flat_order;
CREATE TABLE m1_sales_flat_order_address LIKE sales_flat_order_address;
INSERT INTO m1_sales_flat_order_address SELECT * FROM sales_flat_order_address;
CREATE TABLE m1_sales_flat_order_item LIKE sales_flat_order_item;
INSERT INTO m1_sales_flat_order_item SELECT * FROM sales_flat_order_item;
在仓库中包含基于magento 1示例数据的样本sql数据(./supplied/magento.sql
)
步骤 1.1 找到无效的列类型
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE ='enum';
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE ='char';
步骤 1.2 转换无效的列类型
ALTER TABLE `m1_sales_flat_order` CHANGE `column_name` `column_name` VARCHAR(255) NULL DEFAULT NULL;
步骤 2 - 从Magento 1导出以下表并导入到您的Magento 2数据库中
m1_sales_flat_order
m1_sales_flat_order_address
m1_sales_flat_order_item
使用 mysqldump
或类似工具
步骤 2.1 - Magento设置:升级错误
undefined index : <index>
检查新导入表的外键。可能需要删除。
SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = <index>;
例如
SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'core_store';
ALTER TABLE `m1_sales_flat_order` DROP FOREIGN KEY <fk_name>;
步骤 3 - 安装扩展
composer require dominicwatts/orderhistory
php bin/magento setup:upgrade
php bin/magento setup:di:compile
用法
Stores > Configuration > Xigen > Order History
需要少量配置
- 将magento 1订单状态代码映射到其标签
- 这是在magento 2前端显示的状态标签
- 将magento 2商店ID映射到magento 1商店ID
- 这是为了确保在多站点场景中正确检索订单
如果提供的客户电子邮件与登录的客户匹配,他们将看到他们的账户区域中的“以前订单”部分中的magento 1订单,如果找到匹配的产品,将提供重新订购功能。
我的账户 > 我以前的订单
已知问题
- 需要将
m1_*
表中的enum列类型转换为varchar,因为magento 2不支持此列类型