📡 Database Connections
📊 Statistics
🔄 Store Mapping
Map each Magento 1 store to its corresponding Magento 2 store:
No Magento 1 stores found. Please check your database connection.
⚡ Actions
What happens when you click "Start Migration"?
The migration process will:
- Migrate category structure: Create categories in Magento 2 based on the hierarchy from Magento 1, preserving parent-child relationships and positions
- Migrate category attributes: For each mapped store, migrate category names, URL keys, and active status from Magento 1 to Magento 2
- Preserve hierarchy: Maintain the exact category tree structure with proper levels and paths
- Handle existing categories: If a category with the same name and parent already exists in Magento 2, it will be reused instead of creating a duplicate
- Generate logs: Provide detailed migration logs showing which categories were added, updated, or encountered errors
⚠️ Warning: This will modify your Magento 2 database. Make sure you have a backup before proceeding.
Migration in progress...
📋 Migration Logs
Detailed logs showing which categories were added, updated, or encountered errors during migration:
📊 Category Statistics
⚠️ Magento 2 Categories Not Found in Magento 1
These categories exist in Magento 2 but do not have a matching name in Magento 1:
@if($m2CategoriesNotInM1->count() > 0)| ID | Category Name | Level | Status | Root Category | Path | Actions |
|---|---|---|---|---|---|---|
| {{ $category->entity_id }} | {{ $category->name ?? 'Unnamed Category' }} | {{ $category->level ?? 'N/A' }} | {{ ($category->is_active ?? 0) ? 'Active' : 'Inactive' }} | @if(isset($category->root_category_name) && $category->root_category_name !== 'N/A') {{ $category->root_category_name }} @if(isset($category->root_category_id)) (ID: {{ $category->root_category_id }}) @endif @else N/A @endif | {{ $category->path ?? 'N/A' }} |
🌳 Category Trees
View category hierarchies from Magento 1 and Magento 2
Magento 1 Categories
Magento 2 Categories
📦 Attribute Groups
View attribute groups that organize attributes within attribute sets:
Magento 1 Attribute Groups ({{ $m1AttributeGroups->count() }})
| Group ID | Group Name | Attribute Set | Attributes | Sort Order | Actions |
|---|---|---|---|---|---|
| {{ $group->attribute_group_id }} | {{ $group->attribute_group_name ?? 'N/A' }} | {{ $group->attribute_set_name ?? 'N/A' }} | {{ $group->attribute_count ?? 0 }} | {{ $group->sort_order ?? 'N/A' }} | @if($isMissing) @else ✓ Exists @endif |
Magento 2 Attribute Groups ({{ $m2AttributeGroups->count() }})
| Group ID | Group Name | Attribute Set | Attributes | Sort Order |
|---|---|---|---|---|
| {{ $group->attribute_group_id }} | {{ $group->attribute_group_name ?? 'N/A' }} | {{ $group->attribute_set_name ?? 'N/A' }} | {{ $group->attribute_count ?? 0 }} | {{ $group->sort_order ?? 'N/A' }} |
⚠️ Magento 1 Attributes Missing in Magento 2
These attributes exist in Magento 1 but do not have a matching attribute code in Magento 2:
@if($m1AttributesMissingInM2->count() > 0)| ID | Attribute Code | Label | Type | Input | Required | User Defined | Actions |
|---|---|---|---|---|---|---|---|
| {{ $attr->attribute_id }} | {{ $attr->attribute_code }} | {{ $attr->frontend_label ?? 'N/A' }} | {{ $attr->backend_type ?? 'N/A' }} | {{ $attr->frontend_input ?? 'N/A' }} | @if($attr->is_required ?? 0) Yes @else No @endif | @if($attr->is_user_defined ?? 0) Yes @else No @endif |
📋 Category Attributes
View all category attributes from Magento 1 and Magento 2
Magento 1 Attributes ({{ $m1Attributes->count() }})
| ID | Code | Label | Type | Input | Required |
|---|---|---|---|---|---|
| {{ $attr->attribute_id }} | {{ $attr->attribute_code }} | {{ $attr->frontend_label ?? 'N/A' }} | {{ $attr->backend_type ?? 'N/A' }} | {{ $attr->frontend_input ?? 'N/A' }} | @if($attr->is_required ?? 0) Yes @else No @endif |
Magento 2 Attributes ({{ $m2Attributes->count() }})
| ID | Code | Label | Type | Input | Required |
|---|---|---|---|---|---|
| {{ $attr->attribute_id }} | {{ $attr->attribute_code }} | {{ $attr->frontend_label ?? 'N/A' }} | {{ $attr->backend_type ?? 'N/A' }} | {{ $attr->frontend_input ?? 'N/A' }} | @if($attr->is_required ?? 0) Yes @else No @endif |
🚀 Product Migration
What happens when you click "Start Product Migration"?
The product migration process will:
- Create new products: If a product with the same SKU doesn't exist in Magento 2, it will be created with all its attributes (name, description, price, weight, status, etc.)
- Update existing products: If a product with the same SKU already exists in Magento 2, it will be updated with the latest data from Magento 1
- Migrate product attributes: All product attributes including SKU, name, description, price, weight, status, visibility, and tax class will be migrated
- Assign to categories: Products will be assigned to the corresponding categories in Magento 2 based on the category mapping from previous migrations
- Preserve product types: Product types (simple, configurable, etc.) will be maintained
- Generate logs: Detailed migration logs showing which products were added, updated, or encountered errors
⚠️ Warning: This will modify your Magento 2 database. Make sure you have a backup before proceeding.
📋 Product Migration Logs
Detailed logs showing which products were added, updated, or encountered errors during migration:
🌳 Category Tree with Products
View all categories with their associated products in a tree structure.
Magento 1 Categories
Magento 2 Categories
🔄 Sync Product Categories
This tool will update Magento 2 products to be in the same categories as their Magento 1 counterparts.
- Matches products between M1 and M2 by SKU or Product ID
- Uses the category mapping from previous migrations
- Adds missing category associations
- Removes category associations that don't exist in M1
- Preserves product positions in categories
⚠️ Warning: This will modify product-category associations in your Magento 2 database. Make sure you have a backup before proceeding.
Sync Logs
⚠️ Magento 1 Products Not Found in Magento 2
These products exist in Magento 1 but do not have a matching SKU or ID in Magento 2:
@if($m1ProductsNotInM2->count() > 0)| ID | SKU | Name | Type | Created |
|---|---|---|---|---|
| {{ $product->entity_id }} | {{ $product->sku ?? 'N/A' }} | {{ $product->name ?? 'Unnamed Product' }} | {{ $product->type_id ?? 'N/A' }} | @if($product->created_at) {{ \Carbon\Carbon::parse($product->created_at)->format('Y-m-d') }} @else N/A @endif |
⚠️ Magento 2 Products Not Found in Magento 1
These products exist in Magento 2 but do not have a matching SKU or ID in Magento 1:
@if($m2ProductsNotInM1->count() > 0)| ID | SKU | Name | Type | Created | Actions |
|---|---|---|---|---|---|
| {{ $product->entity_id }} | {{ $product->sku ?? 'N/A' }} | {{ $product->name ?? 'Unnamed Product' }} | {{ $product->type_id ?? 'N/A' }} | @if($product->created_at) {{ \Carbon\Carbon::parse($product->created_at)->format('Y-m-d') }} @else N/A @endif |
📦 Products
View all products from Magento 1 and Magento 2
Magento 1 Products ({{ $m1Products->count() }})
| ID | SKU | Name | Type | Created |
|---|---|---|---|---|
| {{ $product->entity_id }} | {{ $product->sku ?? 'N/A' }} | {{ $product->name ?? 'Unnamed Product' }} | {{ $product->type_id ?? 'N/A' }} | @if($product->created_at) {{ \Carbon\Carbon::parse($product->created_at)->format('Y-m-d') }} @else N/A @endif |
Magento 2 Products ({{ $m2Products->count() }})
| ID | SKU | Name | Type | Created |
|---|---|---|---|---|
| {{ $product->entity_id }} | {{ $product->sku ?? 'N/A' }} | {{ $product->name ?? 'Unnamed Product' }} | {{ $product->type_id ?? 'N/A' }} | @if($product->created_at) {{ \Carbon\Carbon::parse($product->created_at)->format('Y-m-d') }} @else N/A @endif |