Commerce Migrate is a general-purpose migration framework extending Migrate Module for bringing store information into Drupal Commerce.

  • Migrate destination field handlers for commerce fields (reference fields, price field)
  • Migrate destination plugin for commerce product types.

Drupal 9+

Commerce Migrate aims to provide a migration path from other e-commerce platforms and from Ubercart and Commerce 1. Import data from other platforms, e.g WooCommerce use CSV as the source requiring the data to be exported to a file first. Migrating from Ubercart 6, Ubercart 7 and Commerce 1 extend from Migrate Drupal and directly access the database. In this case it may also be possible to migrate using the user interface provide by the core Migrate Drupal UI module.

For Drupal 8.9+ change settings.php to use the classic node migrations. This is required because Commerce Migrate does not work with the new complete node migrations which are the default. To use the classic node migrations set 'migrate_node_migrate_type_classic' to TRUE in settings.php. There is more information in the change record, New default 'complete node migration' migrates all revisions including translations

Versions

3.2.x-dev works with PHP 8.1
4.0.0-alpha1 works with Drupal 10

Stability

Stable

  • Commerce Migrate Commerce
  • Commerce Migrate Ubercart

Experimental

These are provided as a starting point. No further work is planned.

  • Commerce Migrate Magento (CSV)
  • Commerce Migrate Shopify (CSV)
  • Commerce Migrate WooCommerce (CSV)

Plugins not specific to a platform

These plugins can be used with any source.

  • Migrate process plugin for Commerce Reference Revisions
  • Migrate destination plugins for Commerce Product Type, Default Store and Profile.

Supported platform migrations

  • Drupal Commerce 1.x
  • Migrations for attributes, currency, default_store, message, order, order_item, payment, payment gateway, product, product attribute, products, product types, product variation types, product variation, profiles, shipping flat rate and tax type.

    Complete test coverage.

    • Migrate field plugins for Commerce Product Reference, Commerce Price, Line Item reference and Customer Profile reference.
    • Migrate source plugins for profiles, currency, line items, message, order items, payment gateway, payment transaction, products, product type, product variation, product variation type, shipping flat rate, tax type, attribute
    • Migrate process plugin for Commerce Price.

  • Ubercart 2.x (Drupal 6)
  • Migrations for attributes, billing profile, currency, language, orders, payments, product and product variation, store and tax type. And support for migrating translated products.
    Test coverage for migrations and a complete end to end migration.

    • Products are migrated via altered node migrations, for example, d6_node:books.
    • Migrate source plugin for Products, Product Variations, Orders, Payments, Attributes, and other entities
    • Migrate destination plugin for Payments, in order to support refunds.

  • Ubercart 3.x (Drupal 7)
  • Same as Ubercart 6

  • Magento 2 (CSV)
    • Categories to taxonomy and vocabulary terms
    • Image files
    • Product attributes
    • Product variations
    • Profile types
    • Customer and shipping profiles

  • WooCommerce 3 (CSV)
    • Categories to taxonomy and vocabulary terms

These have test coverage for basic migration needs within the module, using sample datasets.

Resources

Drupal 7

Commerce Migrate depends on Migrate Extras for Entity API and Address Field integration.

Commerce Migrate Ubercart, formerly a submodule, has moved to its own project. It can migrate 6.x and 7.x Ubercart stores from either the existing Drupal database or a remote database.

When should you use Migrate/Commerce Migrate vs Feeds/Commerce Feeds?

In general, you'll use Feeds and Commerce Feeds when there's a one to one mapping between the input data and the entities you're importing. So Feeds is fantastic for importing products from a CSV file, for example. For Commerce Feeds see this article/screencast. It's not very strong in transforming data on the way in though. Much of the time a feeds migration can be done without touching any code.

Migrate and Commerce Migrate, in general, know how to transform things mightily, with the full power of SQL and PHP, on the way in. So you *can* do something like an Ubercart to Commerce migration, and you can solve the problems of a specific migration. So Migrate is the solution for more complex migrations, and it's the home of Commerce Migrate Ubercart, which solves some of the Ubercart migration issues. There's an article/screencast on that here. Much of the time a *migrate* migration will require writing PHP code.

Resources

Supporting organizations: 
Maintenance and development
Sponsored D8 port

Project information

Releases