Using MageBridge stores to load a different Magento theme
The Magento multi-site concept is flexible but a little complex. It uses three levels which can be used in various ways: Websites, Stores and Store Views. Within the MageBridge Configuration the entire Joomla!-side of the bridge is configured as a Website. But within this Joomla! site you can still use Stores and Store Views for various purposes. For instance: To load a different theme.
The MageBridge Website
When setting up the bridge between Joomla! and Magento, one of the first steps is to configure the Magento Website which should be used within Joomla!. Because Magento connects a Root Catalog to this configuration, MageBridge is unable to show any catalog information on the frontend unless this step is taken.
But besides configuring the Website itself, there are options to load other stores as well. For instance, when the visitors language switches from German to English, you'll want to load the appropriate Store or Store View. This is how Magento deals with multi-lingual content - it uses different stores under different circumstances.
MageBridge is just bringing this principle to Joomla!. As soon as a different language is chosen in for instance JoomFish or Nooku (both are multi-lingual components for Joomla!), MageBridge detects this and switches to the appropriate Magento store. This functionality is made possible through a MageBridge Store Connector.
The cool thing about Store Connectors is that they are relatively simple to build. This means you can hook in your own logic to determine which Magento store to use under which circumstances. Besides connectors for JoomFish and Nooku, there is also a connector called Special Days that let's you load a different store on Christmas for instance. You can create your own connectors as well, which requires little PHP-knowledge.
The default Store Relation
Store Connectors are configured by browsing with the Joomla! backend to the MageBridge page Store Relations. What you need to configure is a relation between the Magento store and the MageBridge Store Connector. For instance, when loading the JoomFish language English you'll want to load the Magento Store View English as well.
One of the hidden features is that you can also set a default Store Relation. This serves actually in more or less the same way as the main Website configuration, mentioned earlier. So instead of loading by default a Magento Website, you're loading a Magento Store or Store View. It doesn't make much sense, does it? But there are some nice tricks to play here.
Using one Website for two domains
Let's say you have an existing Magento store under domain A which has a large catalog of products. Now you want to use the same catalog under domain B by using MageBridge. Magento states that you should use the multi-site principle here, so you would normally create a new Website B in Magento and use this Website B within MageBridge on domain B.
The problem here is that every product in the catalog is assigned to Website A and not Website B. This would require you to reconfigure every product to be also assigned to Website B. Too much work, of course. So instead, you'll configure Website A as well for MageBridge on domain B. This is absolutely not following the rules of multi-site as suggested by Magento, but at least it gets things going.
Assigning different themes
Now the problem is that suddenly two different domains make use of the same Website configuration. This will not cause any problem with the configuration or even caching, but what if you want two different Magento themes to be used? Let's say you have customized the Magento theme for domain A, but you want to use the Magento Blank Theme for the MageBridge website.
The solution is simple: Add an extra Magento Store for MageBridge within the Magento store management. Configure this store within the Joomla! backend as default Store Relation. Next, you can use the Magento configuration to load a different theme specifically for the MageBridge store used under domain A (under Magento Admin Panel > System > Configuration > General > Design).
Actually, this setup opens up for much much more options. You can completely reconfigure the Magento configuration for the MageBridge environment to make it behave differently. Note that if you setup a single Magento Website for two domains, both domains will not only share the same catalog but also the same customers.
All this shows you that MageBridge is flexible enough to deal with various multi-site configurations. It just requires some thinking to get it going.Created on Wednesday, 03 February 2010
Modified on Wednesday, 03 February 2010
More tutorials in this section
- Setting the MageBridge URLs in Magento
- Disabling user synchronization in MageBridge
- Importing and exporting users
- Using the MageBridgeLinks/JCE-plugin
- Using MageBridge Product Connectors
- Migrating users between Joomla! and Magento
- Using MageBridge stores to load a different Magento theme
- Using the MageBridge Content Plugin
- MageBridge SEO Guide
- Removing MageBridge
- Step-by-step: Adding a custom Magento block
- Managing MageBridge extensions
- How to use URL-suffices with MageBridge?
- Step-by-step: Create a Magento API user
- Step-by-step: Activating MageBridge plugins
- Step-by-step: Creating a MageBridge Menu-Item
- API permissions with MageBridge
- Configuring payment methods in MageBridge
- Using MageBridge modules
- Authentication guide for MageBridge
- Working with MageBridge URL Replacements
- Handling Downloadable Products in MageBridge
- Handling file uploads in MageBridge
- Configuring the MageBridge Root Menu-Item
- Setting MageBridge offline through the database
- How Joomla! works with MageBridge URLs
- Migrating MageBridge from Joomla! 1.5 to Joomla! 2.5
- Using the MageBridge System Plugin
- Setting Joomla! ACL-rules for the MageBridge backend
- Bypassing the MageBridge component-pages
- Integrating MageBridge in ZOO