Magento is an open source CMS system mainly used to build e-commerce sites. Magento provides platform to develop e-commerce website for online shopping. A single website is enough to represent different branches of the company. It provides the website store and store view concept. Where we can divide the website in different store and each store can further divided in store view.

Magento is the world’s fastest growing eCommerce Paltform.It has 60,000 merchants who all together is doing about $25b annual transaction all around the world and is still growing day by day. Magento has developed more than 2,000 extensions till now and according to statistics it has more than 2 millions download. It is used by world's leading companies such as the Northface, Samsung, 3m etc

Package

Package is a collection of themes that defines the visual output and frontend functionalities of store. An admin can assign the package on either the website-level or store view level. If the package is apply on interface level all the store and store view inherits the same package.

Website level declaration

 Magento Store Level

Here, S1, S2 and S3 are stores

Store view level declaration

Store View

English, Japanese and Chinese are storeview for a store "Color (Blue)"

The magento already provides us a base package which contains magento cores functionality. So that custom themes can include in just to change the core and make specific to design and bussiness.

In the directory structure, the base package is located at:

  • app/design/frontend/base/default/ - contains all of the layout and template files necessary to support core Magento functionality.
  • skin/frontend/base/default/ - contains some CSS and Javascript files, which support core functionality.

Magento has always used fall-back logic to find themes. The order of fall-back hierarchy in magento v 1.4+ is as follows:

  1. First look for requested file in :
    1. App/design/frontend/custom_package/custom_theme/
    2. Skin/frontend/custom_package/custom_theme/
  2. If not found then search in :
    1. App/design/frontend/custom_package/default/
    2. Skin/frontend/custom_package/default/
  3. If not found then search in :
    1. App/design/frontend/base/default/
    2. Skin/frontend/base/default/
  4. If not found then error message will be displayed.

Themes

A theme is the combination of layout, template, locale and skin files that provides the visual experience for stores. Magento has built with capacity to load multiple themes at once.

Every packages come with default theme that will be applied to all store automatically. The default theme contains all the basic and core layout, templetes and skins to make website error-free and it has lowest priority in theme hierarchy. It is only applied when no other non-default theme is available.

The concept of non-default theme is comes to overide default theme and give specific design to our websites. This type of theme is mainly use to create temporary or seasonal design to store without having to create a whole new set of default theme.

Magento Theme Concept

A theme consists of these following terms:

  • Layout: These are the basic XML files that define block structure for different pages.
  • Templates: These are PHTML files that contain XHTML and necessary PHP syntaxs to create logic for visual presentation.
  • Locale: these are simple text documents organized on language basis that contain translations for store.
  • Skins: These are block-specific Javascript and CSS and image files.