There’s a number of expensive and complicated products to do this, but this way is very simple & straightforward for people familiar with Joomla templates and how they work. This method requires very little Magento knowledge, but it does help if you have a moderate amount of knowledge of developing Joomla templates. This method also works very well with integrating Joomla with nearly any other system (WordPress,
What this will allow you to do, is to output Joomla module positions in your Magento templates. It also grants access to the wide range of Joomla classes & functions if you like to use those. But the main purpose of this post, is to take Joomla module content, and output it on Magento.
For this tutorial I’m just using default installs of Joomla 1.7, and Magento 1.6. It should work with most versions of Joomla, and all versions of Magento.
Step One: the Menu Item
Joomla organizes its content based on the Menu Item. The menu item decides what component to load, what modules to load, and what items show up as “active” or highlighted in the outputted menu. So the first thing we need to do is make a menu item for Magento. You can either add the menu item to a real menu, so that the link to Magento shows up on the frontend of
Joomla, or you can add it to a Hidden menu. A “Hidden” menu is like any other menu, except it isn’t output on the frontend anywhere, so noone ever sees it. But the menu items work all the same.
Create a new menu item of type “External URL” and enter your magento URL for the URL. Note the Menu ID (shown below)
Step Two: create the Module
You can use any kind of module, but for this example is a mod_custom (a Custom HTML module). Also if you already have modules created, you can use those. This is just an example.
For the “Menu Assignment” either choose the Menu Item you created earlier, or choose “On All Pages”
Step 3: Integration
Download the integration file and upload “joomla_integration.php” to your Magento’s /includes/ directory.
Then, in Magento’s “index.php”, add these lines near the end, right before Mage::run():
Step 4: Add it to your Magento template
Now you just need to add a small line to your magento template. What file exactly depends on the template you’re using, and where you’d like the modules to show up. For this example, I’ll show you how to output the modules in the sidebar on the right, in the default template.
If your Joomla template uses module attributes, such as:
Also you’re not limited to using just one menu ID. For example, you can make one menu item for “Magento – Logged In” and another for “Magento – Not Logged In”, though of course this requires a small amount of magento programming.
If any of you want to see this as a Magento extension, or if there’s any questions/suggestions, let me know in the comments!