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||Model Class||Database Table|
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 tax class||X||X|
|(Default) display currency||X||X|
|System configuration settings||X||X||X|
|Root category configuration||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: