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

1.0.2 2020-04-08 23:53 UTC

This package is auto-updated.

Last update: 2024-12-06 23:12:16 UTC


README

phpcs

PHPCompatibility

PHPStan

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

Screenshot

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

Screenshot

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

Screenshot

Known issues

  • Will need to convert enum column type to varchar in m1_* tables as magento 2 does not support this column type