Magento 2 migration

@mercentia/magento-migrator reads from the Magento 2 REST API (/rest/V1/...) and writes the data into Mercentia’s normalised schema. It targets Magento Open Source and Adobe Commerce 2.4+.

What’s migrated

Entity Notes
Configurable + simple products Configurable parents become Mercentia products with variants; simple children become the variants
Custom attributes Mapped to product metafields
Categories Tree imported as collections (parent → child preserved)
Customers With addresses, default billing/shipping, group membership
Orders With line items, refunds, and invoice numbers
CMS pages Imported as Mercentia pages with slug normalised
Tax classes Surfaced as Mercentia tax categories you can map post-import

Setup

In Magento Admin:

  1. System → Integrations → Add New Integration. Name it “Mercentia” and select all REST API resources under Catalog, Sales, Customer, and CMS.
  2. Activate the integration and copy the Access Token.

In Mercentia:

  1. Open Settings → Migration and pick Magento 2.
  2. Paste the base URL (e.g. https://store.example.com) and the access token.
  3. Pick what to import. The default is everything.
  4. Click Start migration. The run executes in the background; you can close the tab.

Mapping decisions

  • Magento “configurable” products map 1:1 to Mercentia products with option_types derived from the configurable attributes.
  • “Bundle” products are imported as a single Mercentia product with a metafield holding the bundle composition — convert to Mercentia’s native bundle once imported.
  • “Grouped” products become a Mercentia collection holding the child products.

Post-import checklist

The dashboard shows a checklist after import:

  • Re-map tax classes onto Mercentia’s tax categories.
  • Re-publish customer-group pricing as B2B price lists (the migrator imports the prices but leaves them disabled until you assign them to a B2B tier).
  • Run Tools → Re-index to rebuild the search index across the imported catalogue.

Idempotency

Each run is keyed by Magento entity id, so re-running the migration is safe — existing rows are upserted, new rows are inserted, missing-on-remote rows are flagged but not deleted locally.