Magento Website / Store Groups / Store Views

Magento offers great flexibility when it comes to setup, configure or design your shop. But with great flexibility often also comes great confusion. Especially when Magento's built-in interfaces are ambiguous and sometimes not easy to understand and to use. 

In this blog post you'll learn what websites, store (groups) and store (views) are, how they are connected to each other and which data ist connected to those. In addition you'll find my new module "Aoe_ManageStores" that offers a much more intuitive interface for managing your shop structure.

If you login to your Magento backend and go to System > Manage Modules you'll find this interface:

There you'll find the terms "Website", "Store" and "Store view". This is really confusing as soon as you start digging into the code because there those terms are mapped to "Website", "Store Group" and "Store View":

Backend Label Website Store Store View
Model Class Mage_Core_Model_Website Mage_Core_Model_Store_Group Mage_Core_Model_Store
Database Table core_website core_store_group core_store

To always be clear I'll stick to the terms "Website", "Store Group" and "Store View".

In addition to these configurable layers there is also the "default" scope. This makes four layer where  stuff can be configured. But note that you can't do everything in all scopes.

Here's a matrix of what features are supported by which layer/scope:

  Default Website Store Group Store View
Product settings X     X
Product prices X X    
Product tax class X X    
Base currency X X    
(Default) display currency X     X
Category settings X     X
System configuration settings X X   X
Root category configuration     X  
Orders       X
Customers X X    

Behind the scenes

The table and class structure is not very clean: There is some redundant data. Also note that the website has an own flag describing if it is the default website or not, while store group's and store view's default status will be managed by their respective parent objects.

The store view is the only entity of those that can be in an deactivated state. 

Magento always runs in a specific store. If noone is explictly set (e.g. by server variable MAGE_RUN_CODE or by get paremter in the url) the default store in the default store group of the default website will be displayed. 

The store groups feel somehow superfluous as their own purpose seems to be defining the root category the stores attached to it.

Basically websites, store groups and store views build an hierarchic structure. Too bad this isn't reflected by Magento's default interface for managing those.


And this is why I created the module "Aoe_ManageStores". It replaces the "Manage Stores" interface in "System > Manage Stores".

It shows everything in a structured way and adds additional data:

  • Default website, store group and store view are bold.
  • Disabled store views are striked.
  • Websites and store views show their code.
  • Store groups show their root category.
  • Hover on each element shows its database id.
  • New items can also be created by clicking the corresponding table header.

Checkout Aoe_ManageStores on GitHub or download the latest version directly from there:

Aoe_ManageStores (from GitHub)


Recent Comments

Zend Certified Engineer (ZCE)
TYPO3 Certified Integrator
Magento Certified Developer PLUS