Is there a standard third-party module that everyone/anyone is using for programming batch order imports in Magento? I need to do a complicated history import for a client, and the SOAP API doesn’t have an order creation API, and an Order model existing in the system is dependent on so many other things already existing that it’s not a simple straight forward “create an order model”. Has anyone created tools to solve this problem?
I’m interested in hearing people’s experiences with modules that are specifically aimed at importing arbitrary orders, and extensions that are aimed at importing orders from third party systems (like the M2E extension for eBay). I know how to approach the problem from a “raw programmatic” approach; I’m looking for tools that have already solves a lot of the bumps you’ll run into on the way.
4
Answers
Alan,
Thanks so much for your contributions to the Magento development community. I really appreciate it.
When I was in your position about 6 months ago, we evaluated a lot of the extensions that were available for this sort of transaction, and none of them seemed viable. We tested a few that left out information like addresses, another errored out, it was a mess. We ended up doing it programmatically. The quality of some of the extensions available is really questionable, and it seems that the import/export market is particularly bad. Good luck!
Alan- not sure but probably Unirgy’s uRapidFlow might be helpful. I haven’t tested it myself though.
I actually just got done with the same type of situation. My client wanted me to migrate 7 years worth of orders (just over 500,000 total orders).
Truth be told I only had the budget to try a single product (it was an extension of DataFlow) and I have to say that while it did sort of import orders, it was far from complete. I tried to fix his code to make it work for me but the problem was that to import that much information took an incredibly long time (I started the process before going on vacation for a week and when I came back it was only 70% done).
I looked at some other solutions but in the end I really just had to dive into the code and make my own script that lived outside of Magento to push the orders in.
I spent about 5 months on and off getting this one done. There really probably is a good market for an affordable way to push orders into the system. Frankly I am surprised this kind of functionality does not already exist inside of Magento’s API system.
On a recent project we decided that it was not practical to import all of the past orders as ‘Magento orders’. However the client wanted the orders to be in there. Therefore our solution was to add another table – ‘past orders’ – and put everything in there pretty much as a CSV.
In the customer dashboard we added another tab to access the ‘past orders’ and made it pull up orders with the customer’s email address as the search term.
There were no fancy ‘re-order’ options and you could not click through from a product, however, so much of the catalogue had changed due to it being a new model year (and SKU’s for configurables were different).
If you can get away with such a quick and dirty approach I would recommend it. It will spare you the pain of having to shoe-horn existing orders in with some unknown-unknown code, you won’t have to worry about tax/discounts being calculated ‘the Magento way’ (to match original totals) and in some ways it is a lot more honest to the customer as you can add a concise message in your legacy orders tab that explains ‘the system has changed and here are your orders from the old system’. You can structure your ‘flat table’ around the available order data (we used a dump from the backend POS system) and use normal collection methods to select by email address and group by order id. Obviously an admin grid of the past order data helps.
We put some thought into our solution and with other deliverables to consider we just got the job done rather than spend ages doing it the most elegant way. I hope this approach helps!