The Helios Blogs

Bridging the Cultural & Communication Gap

1. Why you should develop websites in magento ?

One of the most amazing features about Magento is that you can design and develop multiple web sites and they store and share one administrative interface.

This extremely flexible feature allows you to modify and control multiple web sites. All of your products inventory and pricing can be controlled from one central location. There is no longer a need to login to multiple locations to handle multiple web sites. Magento has the ability to control them all.

  • Magento supports over sixty languages, multiple currencies, and tax rates. This gives you the ability to easily expand in the global market.
  • Layered navigation gives users customized browsing options when viewing products by categories. You can now sort products by price, size, color, and other customizable attributes.
  • Magento also has built-in web services. This flexibility allows external applications to access magento’s data without changing the underlying core code. Currently, SOAP and XML-RPC protocols are available out of the box.
  • Magento has Search Engine Optimization (SEO) built in from the start. It has the ability to handle friendly URL rewrites which make it easy for search engines to index your store and products.
  • Not only does Magento offer real-time carrier rates and quotes, users can ship products from one order to multiple shipping address. This makes gift shopping especially easy.
  • Magento also has several reporting features built in. These allows for easy view of sales reports, best-selling products, and customer reporting. They can even be exported in a CSV format to integrate with excel and other database programs.
  • Magento has designed its file structure to three major sections: core, functionality, and design. This allows for easy updating of images and CSS styling without affecting the functionality of the site. Store functionality can also be easily customized without affecting the Magento’s core. As a result, you can modify
    Magento without having to worry about upgrading to newer versions in the future.
  • Magento has a huge community backing. In addition to a public forum and bug tracking, Magento also has its own public repository of extensions called Magento Connect. These extensions can be found at http://www.magentocommerce.com/ magento-connect. Magento Connect features both free and commercial extensions
    to enhance the functionality of your web site.
  • Since Magento is released under the Open Software License (OSL), the Magento Community Edition is available at no cost. In turn, this allows web site developers and eCommerce web site owners to cut down on software costs

Describe Magento codepools

Magento has three different codepools:

  • Community
  • Core
  • Local

Core pool

  • All of Magento’s code exists in the core directory and you should NEVER, EVER, EVER edit that code. these folder stores all the code that makes Magento so powerful, flexible and lovely. In other words, this folder belongs to Magento core development only and if you are going to edit anything in this pool, then it may

Community pool

  • This folder belongs entirely to community developers. This is the right place for hundreds of 3rd party extensions, both free and paid, that can be found at MagentoConnect or available on extensions development store (for instance, http://store.belvg.com/). So basically, if you have installed any extension, it must be in app/code/community/ only.

Local pool

  • If you have your own Magento-based store and want to make everything by yourself or you are a Magento developer and have a purpose to change the logic somehow, local pool is the place where everything should be done. If you want to override Magento extensions, blocks or methods, copy the necessary folders from the Core pool and do whatever you are inclined to do. Apply the same rule for custom extensions that are created specifically for the website – all code should be in local pool.

Describe Magento Folder Structure

Here’s short overview where the application resides
/ app / etc – is global configuration den
/ app / code – is where modules have installed their models and controllers
/ app / code / core – are core team developed or certified modules
/ app / code / community – are community contributed modules
/ app / code / local – are local customizations
/ app / code / core / Mage – magento default namespace
/ app / code / core / Mage / {Module} – module root
/ app / code / core / Mage / {Module} / etc – module configuration
/ app / code / core / Mage / {Module} / controllers – controllers provided by module
/ app / code / core / Mage / {Module} / Block – Block logic classes
/ app / code / core / Mage / {Module} / Model – Object Models provided by module
/ app / code / core / Mage / {Module} / Model / Mysql4 – Resource Models provided by module
/ app / code / core / Mage / {Module} / sql – sql installation and upgrade files between module versions
/ app / code / core / Mage / {Module} / sql / {resource} / – resource model specific upgrades
/ app / code / core / Mage / {Module} / sql / {resource} / {type}-{action}-{versions}.(sql|php) – resource update files. example: mysql4-upgrade-0.6.23-0.6.25.sql
/ app / design – is location of design packages (layouts, templates, translations)
/ app / design / frontend – frontend design
/ app / design / adminhtml – HTML admin panel design
/ app / design / {area} / {package} / {theme} – theme customizations
/ app / design / {area} / {package} / {theme} / layout – .xml files that define block structure for different cases in website flow
/ app / design / {area} / {package} / {theme} / template – .phtml (html with php tags) templates
/ app / design / {area} / {package} / {theme} / locale – Zend_Translate compatible translation files for package/theme
/ app / locale – locale files
/ app / locale / {locale (en_US)} – Zend_Translate compatible translation files for modules
/ skin / {area} / {package} / {theme} / – is where design package css and images are
/ lib – are libraries such as Zend and Varien
/ js – are javascripts smile
/ media – uploaded files (product images, pdf documents, etc)
/ tests – Unit tests (not done yet)
/ var – temporary files
/ includes – contains config.php

Describe Magento Blocks and Layouts

There are some concepts and tools you need to learn to be a successful designer in Magento:

  • Structural Blocks
  • Content Blocks
  • Layout

BLOCKS

Blocks are a way by which Magento distinguishes the array of functionalities in the system and creates a modular way to manage it from both visual and functional standpoint. There are two types of blocks and they work together to create the visual output.

Structural Blocks

—These are blocks created for the sole purpose of assigning visual structure to a store page such as header, left column, main column and footer.

Content Blocks

—These are blocks that produce the actual content inside each structural block. They are representations of each feature’s functionality in a page and employ template files to generate xHTML to be inserted into its parent structural block. Category list, mini cart, product tags and product listing, etc, are each its own content block. Instead of including template after template as a typical eCommerce application would in order to gather the entire xHTML output, Magento gathers and arranges page content through blocks.

Layouts

—These are the files that essentially map your content blocks to your structural blocks. Layouts in Magento have two functions—they define both the structural and content blocks and then they inform Magento how and where to connect them up.

Leave a Reply

Your email address will not be published. Required fields are marked *