1. What is Magento?

Magento is a feature-rich eCommerce platform built on open-source technology that provides online merchants with unprecedented flexibility and control over the look, content and functionality of their eCommerce store. Magentos intuitive administration interface features powerful marketing, search engine optimization and catalog-management tools to give merchants the power to create sites that are tailored to their unique business needs. Designed to be completely scalable and backed by Variens support network, Magento offers companies the ultimate eCommerce solution.

2. Where can I download Magento?

You can download Magento from below website
http://www.magentocommerce.com/download/noregister

4. How to upgrade to the latest version using Magento Connect?

Upgrading Magento to the latest version is a fairly simple task. Copy and Paste this key magento-core/Mage_All_Latest VIA Magento Connect where it states Paste extension key to install:. This will upgrade Magento to the newest version.

5. How to show price (or sth else) in Shopping Opions when browsing a category?

Go to Catalog->Attributes->Manage Attributes, edit price attribute, set Use In Layered Navigation as Filterable (with results).

6. Explain about the history of Magento?

Varien, the company that owns Magento, formerly worked with osCommerce. They originally planned to discontinue osCommerce but later decided to rewrite it as Magento. Magento officially started development in early 2007. Seven months later, on August 31, 2007, the first public beta version was released. On May 30, 2010, Magento mobile was released; it allows store owners to create native mobile storefront apps.

7. Explain about the Modules of Magento?

Magento supports installation of modules through a web-based interface accessible through the administration area of a Magento installation. Modules are hosted on the Magento eCommerce website as a PEAR server. Any community member can upload a module through the website and is made available once confirmed by a member of the Magento team. Modules are installed by entering a module key, available on the module page, into the web based interface.

There are three categories of modules hosted on Magento Connect:

► Core Modules
► Community Modules
► Commercial Modules

Core and Community modules can be installed via the administration area. Commercial module pages provide price information and a link to an external website.

8. What are the commonly used block types? What is the special in core/text_list block type?

Commonly used block types: core/template, page/html, page/html_head, page/html_header, page/template_links, core/text_list, page/html_wrapper, page/html_breadcrumbs, page/html_footer, core/messages, page/switch.
Some blocks like content, left, right etc. are of type core/text_list. When these blocks are rendered, all their child blocks are rendered automatically without the need to call getChildHtml() method.

9. Which technology is used by Magento?

Magento uses PHP as a web server scripting language and the MySQL Database. One of the most impressive aspects of Magento is the use of the Zend Framework. This allows for separation of the Model-View-Controller (MVC) which separates its core operations from functionality and appearance. The data model is based on the Entity-attribute-value model that stores data objects in tree structures, thus allowing a change to a data structure without changing the database definition.

10. Explain about the Magento latest versions and license?

Latest Magento stable version is 1.7 and new version is 1.8. Magento is a open source eCommerce platform for a complete eCommerce web site solution. Magento's open source architecture enables the user to maintain complete control over the structure and functionality of a web site.

Download Interview PDF

11. Which features are used of 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. 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.

12. What is EAV in Magento?

In EAV database model, data are stored in different smaller tables rather than storing in a single table. Example: Product name is stored in catalog_product_entity_varchar table. Product id is stored in catalog_product_entity_int table. Product price is stored in catalog_product_entity_decimal table. Magento Use EAV database model for easy upgrade and development as this model gives more flexibility to play with data and attributes.

13. Described Magento's MVC architecture?

MVC stands for Model-View-Controller. Any application that separates it's data access, business logicand user interface is called MVC. There can be two types of MVC: convention-based and configuration-based. Example, - CakePHP is convention-based, i.e. you just need to follow the instructions of the core system to get your module ready in just few lines. - Magento is configuration-based, i.e. you need to specify each and every thing to your module's config file in order to get it work. Magento has Controller (for Routing), Block (for Business Logic), Model (for DB access, sql) and Template file (for Presentation i.e. View).

14. How Magento's MVC works?

1) When you enter the URL (something like http://mysite.com/frontname/controller/method/param1/value1/param2/value2), this URL is intercepted by one PHP file called index.php which instantiates Magento application.
2) Magento application instantiates Front Controller object
3) Further, front controller instantiates Router objects (specified in module's config.xml, global tag)
4) Now, Router is responsible to "match" the frontname which is in our URL
5) If "match" is found, it sees controller name and method name in the URL, which is finally called.
6) Now depending on what is written in action name (method name), it is executed. If any models are called in it, the controller method will instantiate that model and call the method in it which is requested.
7) Then the controller action (method) instantiate the Layout object, which calls Block specified for this action (method) name (Each controller action name have block and template file associated with it, which can be found at app/design/frontend or adminhtml/namespace/module/layout/module.xml file, name of layout file (module.xml) can be found in config.xml of that module, in layout updates tag).
8) Template file (.phtml) now calls the corresponding block for any method request. So, if you write $this->methodName in .phtml file, it will check "methodName" in the block file which is associated in module.xml file.
9) Block contains PHP logic. It references Models for any data from DB.
10) If either Block, Template file or Controller need to get/set some data from/to database, they can call Model directly like Mage::getModel('modulename/modelname').

15. How Magento ORM works?

ORM stands for Object Relational Mapping. It's a programming technique used to convert different types of data to Objects and vice versa.
In Magento, ORM is shown as Model (based on Zend Framework's Zend_Db_Adapter), which further breaks down to two types of Models.
1) First is the "simple" i.e. Regular Models which is nothing but flat table or our regular table structure.
2) Second Model is EAV (Entity Attribute Value), which is quite complicated and expensive to query.
All Magento Models interacting with database are inherited from Mage_Core_Model_Abstract class, which is further inherited from Varien_Object.
Difference between two Models is, Simple Model is inherited from Mage_Core_Model_Resource_Db_Abstract class, while EAV is inherited from Mage_Eav_Model_Entity_Abstract.
When you want to get some data in Magento, you can call it like this: Mage::getModel('module/model')->load(1); ie. Where 1 is the primary key id for some Regular/Simple table, while in EAV so many tables are joined to fetch just single row of data.

16. What permissions are required for files and folders In Magento?

Normal Operation For the normal operation or installation of a Magento store, only 2 folders need to be writable: /media - for web accessible files, such as product images /var - for temporary (cache, session) and import/export files Installation During installation Magento Install Wizard will create app/etc/local.xml file which contains database configuration and global encryption key for your Magento copy. Meaning app/etc folder has to be writable to web service.

17. Tell me how to upgrade to the latest version using Magento Connect?

Upgrading Magento to the latest version is a fairly simple task. Copy and Paste this key magento-core/Mage_All_Latest VIA Magento Connect where it states Paste extension key to install. This will upgrade Magento to the newest version.

18. What is Magendo's code pool?

It is a concept to pull the code in Magento structured format.
Magento
|_app
|_code
|_community
|_core
|_local

19. Can we override community module?

Yes, we can override to the local.

20. What are the modules of Magento?

Magento supports installation of modules through a web-based interface accessible through the administration area of a Magento installation.
Modules are hosted on the Magento eCommerce website as a PEAR server. Any community member can upload a module through the website and is made available once confirmed by a member of the Magento team. Modules are installed by entering a module key, available on the module page, into the web based interface.

21. What are the categories of modules hosted?

There are three categories of modules hosted on Magento Connect:
☆ Core Modules
☆ Community Modules
☆ Commercial Modules
Core and Community modules can be installed via the administration area. Commercial module pages provide price information and a link to an external website.

22. Explain the difference between Mage::getSingletone() andMage::getModel() in Magento?

Mage::getSingletone() always finds for an existing object if not then create that a newobject but Mage::getModel() always creates a new object.

23. What are the benefits of namespace (package) in magento?

We can have more than one module with same name but they should be placed in different namespaces. All Magento core modules are contained in Mage namespace.
core/Mage/Catalog
local/Muster/CustomModule

24. How to include CMS block in template file(.phtml)?

Access block's content from .phtml template file by:

echo $this->getLayout()->createBlock('cms/block')->setBlockId('static_block_id')->toHTML();

Download Interview PDF

25. How to add an external javascript/css file to Magento?

1) <action method="addJs"><script>js/yourfile.js</script></action>
2) <action method="addCss"><stylesheet>css/yourstyle.css</stylesheet></action>
3) OR
4) <action method="addItem"><type>skin_js</type><name>js/ yourfile.js</name></action>
5) <action method="addItem"><type>skin_css</type><name>css/yourstyle. css</name></action>