Drupal Magento integration or is it partial integration?
I've been testing out the recent release of a Drupal module created by Adyax that allows for a 3rd party ecommerce system called Magento to be fully integrated into Drupal. But was it really a full integration?
One of the reason why i was excited to try this out is because at my previous job we were using Magento almost exclusively to build online shops because it was fully featured to run any type of online store. Even better, it allows for multiple stores from one installation without the need for a multi-site setup. Magento has certainly been one of the most exciting open source ecommerce application to hit the Internet last year causing a huge buzz and interest. Now with over a million downloads and top brand names using it, it's certainly is living up to its expectations.
There are many Magento extensions (plugins for the system) to further add additional features that is not present in Magento core system. While some of it maybe good i have not tried them out and since i use Drupal, it was only natural to give this integration test drive.
But what would be the benefits of such an integration? As i pointed out earlier, Magento offers so many features that far exceed many of today's open source ecommerce applications and that coupled with the power of Drupal was too irresistible.
Let's find out how it went during my testing of the Drupal Magento integration.
Installation and setup
I went through the usual installation routine you would normally do to setup Drupal and Magento in their own directory. Once complete, there were a lot of modules that had to be installed on Drupal which took a while to finish but once that was done the last thing was the Magento extension, and that was a breeze to install since you only need to paste in the Extension Key.
Once the site was ready for the integration, some configurations needed to be setup on both system. It uses the XML-RPC server to communicate between the applications, which allows for the content to be in sync.
[Adding API key in Drupal]
[Installed Magento extension for the integration]
[Setting up remote XMLRPC on Magento]
Keeping it all in sync
This is done within Drupal to sync with all the products and details as Magento sits idly in the background. Customers group and drupal users and roles can also be synchronized as well as the categories.
Once in sync, all the products and details from Magneto are created in Drupal exposed as fields in CCK and Views modules. This is great as now you can use Views to display the products and its details whichever way you want or any fancy ways you want using jQuery.
One thing that got me a bit confused was that it also created content-types (Product and rule content-types). But you were not supposed to add products thru Drupal as this will cause it to become out of sync since nothing is passed back to Magento. Having said that, i guess you can set permission to disallow users from accessing the content-type.
The whole point of this integration was to use Drupal for frontend and Magento as the backoffice for the ecommerce part of the site. This means all your products and details can be display via Drupal like if it was just coming straight from Drupal itself and Magento is still used to add your your products, prices, tax and etc.
Furthermore, it offers a cart as a block so customers can checkout directly from Drupal and all this will be stored in Magento
There is a manual synchronization with Magento settings but allows for setting it up to run cron to keep it in sync.
[Manual synchronization with Magento]
[Roles propagation with Magento]
[Shopping cart showing in Drupal]
[Checkout page on Drupal]
Conclusion
When you get the integration up and running, you can't help to notice the amount of hard work and long hours that Adyax must have put into developing the module even if this is not noticeable at all on the surface.
On my initial testing, the whole integration seems to work really well and now even supports Magento 1.3.
The only downside was that it wasn't as fully integrated as i hope for. Before i began testing this, i was hoping for an integration much like the Gallery2 module integration for Drupal. If you have ever used it, you'll know that it allows you to add/edit albums and photos from Drupal without the need to login into Gallery2 to do this. Another slight let down was not being able to sync Drupal admin/backend users with Magento backend users. You still needed to login twice to use either system. I know it's not fair to compare Magento with the Gallery2 integration as they are a very different beast and Gallery2 integration has been around longer. So on that note, it really has been quite a substantial integration giving that it's still early days.
However, at this time i think i'll stick with Ubercart, not because i dislike it, far from it but because it takes far longer to install and setup everything compare to Ubercart.
Thanks Adyax for giving us a solid product with a huge potential. I wonder if the Magento team will get behind this as well if they see a real potential to use Drupal.