Top 10 Magento Interview questions and answers for freshers and Experienced
Registry pattern is basically a pattern that allows any object or data to be available in a public global scope for any resource to use.
In Magento, you can register an object or data with Mage::register function,
After it is registered, you can call it with Mage::registry by passing identifier name:
You can also unregister an object at any time with Mage::unregister
This is especially helpful transferring data between Models and Blocks without having to instantiate an entire class and load data.
Magento is free open source e-commerce software written PHP language, that allows merchants to create online e-commerce stores.
Four different versions of Magento are available, they are
- Magento Enterprise Edition
- Magento Community Edition
- Magento Professional Edition
- Magento .go Edition
Magento follows PHP MVC (Model-View-Controller) application architecture.
Model View Controller design Pattern is used to keep the code modular and clean to assist in programming (keep things separate).
It divides a given software application into three interconnected parts, so as to separate internal representations of information from the ways that information is presented to or accepted from the user.
The central component, the model, consists of application data, business rules, logic and functions
A view can be any output representation of information, such as a chart or a diagram
Multiple views of the same information are possible, such as a bar chart for management and a tabular view for accountants.
The third part, the controller, accepts input and converts it to commands for the model or view.
MultiChannel means providing different platform like web, mobile, etc. to facilitate the sale of products/item
Omni-Channel is a step above MultiChannel. Omni-Channel dictates that we should provide same brand experience irrespective of channel/medium customer choose
In Magento 6 standard product types exists, they are
Configurable, bundle and grouped products implement a parent-child relationship between product entities in Magento.
The Compilation feature of Magento will allow you to compile all files of a Magento installation in order to create a single include path to increase performance. The performance increase is between 25%-50% on page loads. In order to use this tool, the directory ‘includes’ and the file includes/config.php must both be writable.
EAV is an entity attribute value database model, where data is fully in normalized form. Each column data value is stored in their respective data type table. Example, for a product, product ID is stored in catalog_product_entity_int table, product name in catalog_product_entity_varchar, product price in catalog_product_entity_decimal, product created date in catalog_product_entity_datetime and product description in catalog_product_entity_text table. EAV is complex as it joins 5-6 tables even if you want to get just one product’s details. Columns are called attributes in EAV.
The flat model uses just one table, so it’s not normalized and uses more database space. It clears the EAV overhead, but not good for dynamic requirements where you may have to add more columns in database table in future. It’s good when comes to performance, as it will only require one query to load whole product instead of joining 5-6 tables to get just one product’s details. Columns are called fields in flat model.
Pay: This basically sets the invoice state is ‘paid’, this works for both when payment is online or offline.
Capture: This is when actual payment processing happens online, and the capture() method in our payment method is called. After capture, pay() is called.
Magento uses PHP as a scripting language and MySQL for the database. Database: MySQL 5.6 (Oracle or Percona). PHP version: PHP 5.4, PHP 5.5 or above.