Could anybody point me towards a good technical explanation of Magento's Store Views/Websites system on a programming level?
I am considering a customization of the system, but am not yet sure which one of these levels to use.
Could anybody point me towards a good technical explanation of Magento's Store Views/Websites system on a programming level?
I am considering a customization of the system, but am not yet sure which one of these levels to use.
Not meant to be rude, but your best bet about Magento related questions is their website. Try the Resource Section, the Wiki, the Community Forum, etc.
First thing to read is the Magento Designer's guide : http://www.magentocommerce.com/design_guide
Yep, "Designer" rather than "Developper" :) But this is a great background to undestand how things do articulate. And, let's be honest... in Magento, "Designer" is really the same as "Developper" and sometime as "System engineer". One can't be a good Magento Designer if not a Developper (imo).
Now, the SO community of Magento is still shy because there are not loads of Magento experts yet I guess. Being not humble enough, I may think that, as a brand new SOer, I found I could help in a few areas. So feel free to ask and I'm sure when someone knows, someone answers. At last, please keep in mind that Magento is so powerful and featured that one can be expert in design integration but not in sales workflow management nor in back-office use for instance. Expertise may be very segmented.
Have fun !
There's no canonical resource on this. The best way to think about these views are with the concept of scope. Certain data in Magento is returned differently depending on which level (website, store, etc. you're on)
I'd start by getting a good understanding of the Layout system. Basically, layouts are abstracted out into a tree of "Block" objects. Most of these Blocks objects render a specific phtml template file.
The phtml template files are considered the store's theme. You can point to a different group of templates depending on which store, store view or website is currently selected.
Step Two would be to get familiar with the configuration system. Magento takes certain actions based on the values set here, and the values can be set on a global, website, or store level. The obvious example here is locale.
Finally, Magento's EAV model system allows even the models to have have values scoped at the global, website, or store level.