Still on Drupal 7? Security support for Drupal 7 ended on 5 January 2025. Please visit our Drupal 7 End of Life resources page to review all of your options.
Commerce Migrate Ubercart is a migration using Commerce Migrate and the Migrate suite that can migrate 6.x and 7.x Ubercart stores from either the existing Drupal database or a remote database.
Visit admin/content/migrate/ubercart_migration_options to configure import options, including the source database and filesystem locations.
Please read the README.txt. There are specific requirements for setup before a migration.
What currently works:
Product types are created from ubercart product classes.
Each product type gets its own migration.
Product image migration.
Each product type gets its own node migration, which creates the matching product_display nodes.
Customer billing profiles are created from the billing info of each ubercart order.
Orders (and line items) come through.
What doesn't work yet:
Attributes
Taxes
Handling the case when the target product type / sku that we're creating already exists.
There are a number of things that will never be able to be addressed, as with all migrations. Every migration will require review and work on the migrated store.
It allows you to execute simple mathematical operations against numeric data being imported. I personally needed this to multiply prices by 100, to get them in cents, following Drupal Commerce reqs.
How it works
It uses PEAR's Math_RPN package which is pretty fast calculator. So you must install it first.
How it looks
It is similar to Rewrite plugin (and in fact - almost full copy-paste of it), which simply takes rewrited output and feeds it to Math_RPN as the expression. NOTE: your expressions must be in RPN-format, not like a usual math expression. In short, instead of doing:
[price] * 0.9 + 100
you do:
[price] 0.9 * 100 +
Why RPN? Because I found no another standard PHP calculator with pretty fast parser. If you interested, you are welcome to review results of a simple performance test I created to compare different approaches:
Running 1000 times
Using PHP native: 0.00071191787719727s