Application initialization My video "Under the hood of Magento": http://www.youtube.com/watch?v=M10RR9acNE8 (watch in 1080p)
Front Controller These articles both cover in greater depth how the Front controller is initiated and how routers are selected.
http://www.andreiboar.com/magento/magento-front-controller/
http://blog.belvg.com/magento-front-controller-pattern.html
URL rewrites These articles describe how url paths are formatted, where theyre located, and how theyre used by routers. As well as ... dun dun dunnn .. how the catalog url rewrite indexer works.
http://blog.belvg.com/magento-certified-developer-exam-url-rewrites-part-i.html
http://blog.belvg.com/magento-certified-developer-exam-url-rewrites-part-ii.html
Alternatively: http://alanstorm.com/magento_dispatch_rewrites_intro
Request routing Dive MUCH deeper into the core routers to see how routers are selected and how routes are created, interpretted, and used.
http://blog.belvg.com/magento-certified-developer-exam-request-routing.html
Module initialization Learn how core and custom modules are initialized, sorted, and how dependencies are resolved. Also the order in which configuration files are loaded.
http://blog.belvg.com/magento-certified-developer-exam-module-initialization.html
Design and layout initialization Learn how layout configurations are used to generate views.
http://magebase.com/magento-tutorials/demystifying-magentos-layout-xml-part-1/
http://magebase.com/magento-tutorials/digging-deeper-into-magentos-layout-xml-part-2/
Flushing data (output) A closer look at how headers are sent and output is rendered.
http://blog.belvg.com/magento-certified-developer-exam-flushing-data-output.html
Another excellent article by Alan Storm on routers and request dispatching. It filled in some blanks i had left over from the other articles
http://alanstorm.com/magento_dispatch_routers
Also, creating custom layout handles, very useful knowledge:
http://magebase.com/magento-tutorials/creating-custom-layout-handles/
Blocks
Describe the programmatic structure of blocks
http://www.danielnavarroymas.com/magento-certification-rendering-blocks-part-1/
Describe the relationship between templates and blocks
http://www.danielnavarroymas.com/magento-certification-rendering-blocks-part-2/
Describe the stages in the lifecycle of a block
http://www.danielnavarroymas.com/magento-certification-rendering-blocks-part-3/
Describe events fired in blocks
http://www.danielnavarroymas.com/magento-certification-rendering-blocks-part-4/
Identify different types of blocks
http://www.danielnavarroymas.com/magento-certification-rendering-blocks-part-5/
Describe block instantiation
http://www.danielnavarroymas.com/magento-certification-rendering-blocks-part-6/
Explain different mechanisms for disabling block output
http://www.danielnavarroymas.com/magento-certification-rendering-blocks-part-7/
Describe how a typical block is rendered
(Covered in above article: part 7)
Design layout, XML schema, and CMS content directives
Describe the elements of Magento's layout XML schema, including the major layout directives
http://www.danielnavarroymas.com/magento-certification-describe-directives-of-magento-layout-xml/
Register layout XML files
http://www.danielnavarroymas.com/magento-certification-register-layout-xml-files/
Create and add code to pages
http://www.danielnavarroymas.com/magento-certification-create-and-add-code-to-pages/
Explain how variables can be passed to block instances via layout XML
Describe various ways to add and customize javascript to specific request scopes
Widgets
Create frontend widgets and describe widget architecture
http://www.magentocommerce.com/knowledge-base/entry/introducing-magento-widgets/
http://www.magentocommerce.com/knowledge-base/entry/tutorial-creating-a-magento-widget-part-1
http://www.magentocommerce.com/knowledge-base/entry/tutorial-creating-a-magento-widget-part-2
Models, resource models, and collections
Overview
Models / Resource Models
http://www.excellencemagentoblog.com/magento-part6-series-models
Database and SQL
http://www.excellencemagentoblog.com/magento-part7-series-models-sql-operations
Describe the basic concepts of models, resource models, and collections, and the relationship they have to one another
http://www.phpzag.com/magento-models-resource-models-and-collections/
Configure a database connection
http://www.andreiboar.com/magento/configure-a-database-connection-in-magento/
Describe how Magento works with database tables
(see Overview above)
Describe the load-and-save process for a regular entity
http://blog.magestore.com/2012/03/07/magento-certificate-magento-object-relational-mapping-orm/
Describe group save operations
(described throughout)
Describe the role of Zend_Db_Select in Magento
http://framework.zend.com/manual/1.12/en/zend.db.select.html
Describe the collection interface (filtering/sorting/grouping)
http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/using_collections_in_magento
http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-8-varien-data-collections
http://www.excellencemagentoblog.com/magento-part12-series-collection-sql-operations
http://www.excellencemagentoblog.com/magento-product-collection
Describe the hierarchy of database-related classes in Magento
(described throughout above articles)
Describe the role and hierarchy of setup objects in Magento
http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-6-magento-setup-resources
Install/upgrade scripts
Describe the Install/Upgrade Workflow
http://blog.magestore.com/2012/03/09/magento-certificate-installupgrade-scripts/
Write install and upgrade scripts using set-up resources
(see above)
Identify how to use the DDL class in setup scripts
http://blog.magestore.com/2012/03/14/magento-certificate-installupgrade-scripts-continue/
Bonus Exercise
Create custom Indexer for featured products
http://www.ecomdev.org/2011/09/16/magento-index-seminar-video-guide.html
Definitely a good reference to wrap up week 4: http://www.magentocommerce.com/images/uploads/RDBMS_Guide.pdf
EAV model concepts
http://www.solvingmagento.com/magento-eav-system/
- Define basic EAV concepts and class hierarchy
http://blog.magestore.com/2012/03/23/magento-certificate-eav-model-concepts/
- Describe the database schema for EAV entities
http://blog.magestore.com/2012/03/28/magento-certificate-databases-tables-for-eav-entities/
- Describe the EAV entity structure and its difference from the standard core resource model
- Describe the EAV load-and-save process and its differences from the regular load- and-save process
http://blog.magestore.com/2012/04/04/magento-certificate-load-and-save-eav-entities/
http://blog.magestore.com/2012/04/18/magento-certificate-magento-eav-attribute-management/
Attributes management
- Identify the purpose of attribute frontend, source, and backend models
http://www.atwix.com/magento/frontend-backend-source/
- Describe how to implement the interface of attribute frontend, source, and backend models
// Frontend is providing the user interface for the attribute
interface Mage_Eav_Model_Entity_Attribute_Frontend_Interface
// Source is providing the selection options for user interface
interface Mage_Eav_Model_Entity_Attribute_Source_Interface
// Backend is responsible for saving the values of the attribute and performing pre and post actions
interface Mage_Eav_Model_Entity_Attribute_Backend_Interface
- Describe how to create and customize attributes
See first article “Magento for Developers: Part 7”
Questions
Which classes in Mage_Eav are used as resource models and which are used as regular models?
How do flat and EAV resource models differ?
Which entities in a native Magento installation use EAV resource models and why?
What are the advantages and disadvantages of EAV over flat table resource models?
How are store and website scope attribute values implemented in the Magento EAV system?
How does the model distinguish between insert and update operations?
How do load and save processes for EAV entities differ from those for flat table entities? What parts are identical?
For week 6 Adminhtml, it took a while to really get some good resources on all the topics but the following should help you ace the Adminhtml section of the exam!
Common structure/architecture
- Describe the similarities and differences between adminhtml and frontend interface and routing
http://alanstorm.com/magento_dispatch_admin_cms_default_routers
- Describe the components and types of cache clearing using the adminhtml interface
http://stackoverflow.com/questions/9283279/explain-magento-caching-system#answer-9285788
Forms in Magento
- Define form structure, form templates, grids in Magento, and grid containers and elements
How it works: http://www.magentogarden.com/blog/how-does-magento-adminhtml-grid-work.html
How to build one: http://codegento.com/2011/02/grids-and-forms-in-the-admin-panel/
Grids in Magento
-
Create a simple form and grid for a custom entity
-
Describe how to implement advanced Adminhtml Grids and Forms, including editable cells, mass actions, totals, reports, custom filters and renderers, multiple grids on one page, combining grids with forms, and adding custom javascript to an admin form
Simple:
http://www.excellencemagentoblog.com/admin-part1-series-magento-admin-forms-grids-controllers-tabs
Complex:
http://www.excellencemagentoblog.com/admin-part2-series-magento-admin-forms-grids-controllers-tabs
Advanced:
http://www.excellencemagentoblog.com/magento-grid-serializer-admin-tabs-grid
System configuration
-
Define the basic terms, elements, and structure of system configuration XML
-
Describe system configuration scopes
Access Control Lists (ACL) and permissions in Magento
-
Define/identify basic terms and elements of ACL
-
Use ACL to:
-
Set up a menu item
-
Create appropriate permissions for users
-
Check for permissions in permissions management tree structures
http://alanstorm.com/magento_acl_authentication
Working with extensions in Magento
-
Describe how to enable and configure extensions
-
Define Magento extensions and describe the different types of extension available (Community, Core, Commercial)
http://coding.smashingmagazine.com/2012/03/01/basics-creating-magento-module/
Additional Adminhtml
Admin config.xml terms, elements, structure
Under the hood of loading declared modules
http://alanstorm.com/magento_config_declared_modules_tutorial
Using Package Extensions
Week 7: Catalog makes up 10% of the exam. Some of the more complex parts of this weeks studies comes with indexing and understanding how to properly implement new product types.
Product Types
-
Identify and describe standard product types (simple, configurable, bundled, etc.)
-
Create custom product types from scratch or modify existing product types
http://inchoo.net/ecommerce/magento/how-to-create-a-new-product-type-in-magento/
- Identify how custom product types interact with indexing, SQL, and underlying data structures.
http://blog.magestore.com/2012/05/16/magento-certificat-product-types/
http://blog.magestore.com/2012/05/23/magento-certificate-product-types-continued/
Price Generation
-
Identify basic concepts of price generation in Magento
-
Modify and adjust price generation for products (for example, during integration of third-party software)
http://blog.magestore.com/2012/05/30/magento-blog-price-generation/
Category Structure
-
Describe the Category Hierarchy Tree Structure implementation (the internal structure inside the database), including:
-
the meaning of parent_id 0
-
the construction of paths
-
the attributes required to display a new category in the store
http://blog.magestore.com/2012/06/06/magento-blog-category-structure/
Catalog Price Rules
- Identify how catalog price rules are implemented in Magento
http://blog.magestore.com/2012/06/15/magento-blog-catalog-rules/
Other Skills
- Choose optimal catalog structure (EAV vs. Flat) for a given implementation
http://blog.magestore.com/2012/06/22/magento-blo-flat-catalog-product/
- Implement, troubleshoot, and modify Magento tax rules
http://www.magentocommerce.com/knowledge-base/entry/what-are-tax-rules-and-how-do-i-use-them
- Modify, extend, and troubleshoot the Magento layered("filter") navigation
http://blog.magestore.com/2012/06/29/magento-certificate-layered-navigation/
- Troubleshoot and customize Magento indexes
http://blog.magestore.com/2012/07/20/magento-certificate-custom-index/
- Describe custom product options in Magento
http://blog.magestore.com/2012/07/27/magento-certificate-product-option/
Week 8 and its getting pretty serious, there is a lot to learn about the core API. Understanding it is worth 13% of the exam, yet i dont recall there being that many API related questions.
Catalog Price Rules
Identify how catalog price rules are implemented in Magento
http://www.solvingmagento.com/magento-catalog-price-rules/
Shopping Cart Rules / Coupons
Describe how shopping cart price rules work and how they can be customized
http://www.hostknox.com/tutorials/magento/shopping-cart-price-rules
Magento API
Use the Magento API to implement third party integrations
Extend the existing Magento API to allow for deeper integrations into third party products
Describe the different Web Service APIs available within the Magento Core
Describe the advantages and disadvantages of the available Web Service APIs in Magento
Identify the configuration files used for the v2 SOAP API
Describe the purpose of the configuration files related to the API
Complete API Series by Alan Storm
http://alanstorm.com/category/magento#magento_api
SOAP
Official: http://www.magentocommerce.com/api/soap/introduction.html
Demystified: http://inchoo.net/ecommerce/magento/magento-v2-soap-demystified/
REST
Official: http://www.magentocommerce.com/api/rest/introduction.html
If you made it this far, you're in good shape! Week 9 is checkout and this is the largest part of the exam, weighing in at 16% of all questions.
Checkout components
- Describe how to modify and effectively customize the quote object, the quote item object, and the address object
http://prezi.com/360sqt1ykfdl/magento-checkout-components/
http://blog.magestore.com/2012/08/03/magento-blgo-certificate-quote/
- Explain the database schema for total models
http://blog.magestore.com/2012/09/07/magento-blogcertificate-total-models/
http://blog.magestore.com/2012/09/14/magento-certificate-show-custom-total/
Shopping Cart price rules
- Describe how shopping cart price rules work and how they can be customized
http://blog.magestore.com/2012/09/21/magento-certificate-shopping-cart-rules/
Shipping and payment methods in Magento
- Describe the programmatic structure of shipping methods, how to customize existing methods, and how to implement new methods
-
Describe the shipping rates calculation process
-
Describe the programmatic structure of payment methods and how to implement new methods
http://www.magentocommerce.com/wiki/5_-_modules_and_development/payment/create-payment-method-module
Magento multishipping implementation
-
Describe how to extend the Magento multishipping implementation
-
Identify limitations of the multishipping implementation
http://prezi.com/pvdewcromexe/magento-multishipping/
Exercises
Modify the onepage-checkout to skip shipping step if only one shipping option is available.
http://www.excellencemagentoblog.com/magento-onestep-checkout-remove-shipping-method-step
Modify the onepage-checkout remove payment method
http://www.excellencemagentoblog.com/magento-onestep-checkout-remove-payment-method-step
Prohibit sale of certain products to selected countries or states
http://www.inverseparadox.com/2013/06/magento-prohibited-products/
Add a new step to onepage checkout
http://www.fontis.com.au/blog/magento/adding-step-onepage-checkout
code:http://inchoo.net/ecommerce/magento/adding-a-new-tab-under-one-page-checkout-full-working-module/
Weeks 10, 11, 12 focus on orders/customers/payments which i spent a lot of time building custom payment and shipping methods. This is very useful too:
http://www.ecomdev.org/2012/12/12/magento-checkout-shopping-cart-flow.html