dominicwatts / orderhistory
Easily migrate magento 1 orders to magento 2 and show orders in self contained area in customer account. Offer reorder functionality where possible.
Installs: 56
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 3
Forks: 0
Open Issues: 2
Type:magento2-module
Requires
- php: >=5.6.0
- magento/framework: *
This package is auto-updated.
Last update: 2024-12-06 23:12:16 UTC
README
Easily migrate magento 1 orders to magento 2 and show orders in self contained area in customer account. Offer reorder functionality where possible.
Install
Step 1 - On magento 1 store create archive orders tables from sales data
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;
Included sample sql data in repo (./supplied/magento.sql
) based on magento 1 sample data
Step 1.1 Find invalid column types
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE ='enum';
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE ='char';
Step 1.2 Convert invalid column types
ALTER TABLE `m1_sales_flat_order` CHANGE `column_name` `column_name` VARCHAR(255) NULL DEFAULT NULL;
Step 2 - Dump from Magento 1 and import the following tables into your Magento 2 database
m1_sales_flat_order
m1_sales_flat_order_address
m1_sales_flat_order_item
Use mysqldump
or similar
Step 2.1 - Magento setup:upgrade error
undefined index : <index>
Check foreign keys on newly imported table. May need to delete.
SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = <index>;
For example
SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'core_store';
ALTER TABLE `m1_sales_flat_order` DROP FOREIGN KEY <fk_name>;
Step 3 - Install extension
composer require dominicwatts/orderhistory
php bin/magento setup:upgrade
php bin/magento setup:di:compile
Usage
Stores > Configuration > Xigen > Order History
Minor configuration required
- Map magento 1 order status codes to their labels
- This is for status label shown on Magento 2 frontend
- Map Magento 2 Store ID against Magento 1 Store ID
- This is to ensure correct orders are fetched in multisite scenario
Providing customer email matches logged in customer they will see Magento 1 orders in Previous Order section in their account area with reorder functionality if matching product is found.
My Account > My Previous Orders
Known issues
- Will need to convert enum column type to varchar in
m1_*
tables as magento 2 does not support this column type