Skip to content

Instantly share code, notes, and snippets.

@ryaan-anthony
Created June 8, 2015 13:35
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save ryaan-anthony/166433546895c48bf343 to your computer and use it in GitHub Desktop.
Save ryaan-anthony/166433546895c48bf343 to your computer and use it in GitHub Desktop.

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 http://www.danielnavarroymas.com/magento-certification-explain-how-variables-can-be-passed-to-block-instances-via-layout-xml/

Describe various ways to add and customize javascript to specific request scopes http://www.danielnavarroymas.com/magento-certification-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 http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-5-magento-models-and-orm-basics

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/ http://stackoverflow.com/questions/4315660/alter-table-in-magento-setup-script-without-using-sql#answer-4318501

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.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-7-advanced-orm-entity-attribute-value http://www.solvingmagento.com/magento-eav-system/ 59. Define basic EAV concepts and class hierarchy http://blog.magestore.com/2012/03/23/magento-certificate-eav-model-concepts/ 60. Describe the database schema for EAV entities http://blog.magestore.com/2012/03/28/magento-certificate-databases-tables-for-eav-entities/ 61. Describe the EAV entity structure and its difference from the standard core resource model http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-5-magento-models-and-orm-basics 62. 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 63. Identify the purpose of attribute frontend, source, and backend models http://www.atwix.com/magento/frontend-backend-source/ 64. 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

  1. 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 66. Describe the similarities and differences between adminhtml and frontend interface and routing http://alanstorm.com/magento_dispatch_admin_cms_default_routers 67. 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 68. 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 69. Create a simple form and grid for a custom entity 70. 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 71. Define the basic terms, elements, and structure of system configuration XML 72. Describe system configuration scopes http://www.magentocommerce.com/wiki/5_-_modules_and_development/admin/xml_structure_for_admin_configurations

Access Control Lists (ACL) and permissions in Magento 73. Define/identify basic terms and elements of ACL 74. Use ACL to:

  1. Set up a menu item
  2. Create appropriate permissions for users
  3. Check for permissions in permissions management tree structures http://alanstorm.com/magento_acl_authentication

Working with extensions in Magento 75. Describe how to enable and configure extensions 76. 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 http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/module_config.xml#xml_structure3 Under the hood of loading declared modules http://alanstorm.com/magento_config_declared_modules_tutorial Using Package Extensions http://www.magentocommerce.com/wiki/7_-_modules_and_development/creating_magento_connect_extension_package

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 77. Identify and describe standard product types (simple, configurable, bundled, etc.) 78. 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/ 79. 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 80. Identify basic concepts of price generation in Magento 81. 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 82. Describe the Category Hierarchy Tree Structure implementation (the internal structure inside the database), including:

  1. the meaning of parent_id 0
  2. the construction of paths
  3. 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 83. Identify how catalog price rules are implemented in Magento http://blog.magestore.com/2012/06/15/magento-blog-catalog-rules/

Other Skills 84. Choose optimal catalog structure (EAV vs. Flat) for a given implementation http://blog.magestore.com/2012/06/22/magento-blo-flat-catalog-product/ 85. Implement, troubleshoot, and modify Magento tax rules http://www.magentocommerce.com/knowledge-base/entry/what-are-tax-rules-and-how-do-i-use-them 86. Modify, extend, and troubleshoot the Magento layered("filter") navigation http://blog.magestore.com/2012/06/29/magento-certificate-layered-navigation/ 87. Troubleshoot and customize Magento indexes http://blog.magestore.com/2012/07/20/magento-certificate-custom-index/ 88. 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 http://inchoo.net/ecommerce/magento/programming-magento/programmatically-create-apply-and-delete-shopping-cart-price-rule-in-magento/

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 89. 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/ 90. 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 91. 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 92. Describe the programmatic structure of shipping methods, how to customize existing methods, and how to implement new methods http://www.magentocommerce.com/wiki/5_-_modules_and_development/shipping/create-shipping-method-module 93. Describe the shipping rates calculation process 94. 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 95. Describe how to extend the Magento multishipping implementation 96. 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 legacy:http://www.magentocommerce.com/wiki/5_-_modules_and_development/checkout/customizing_onepage_checkout_-_remove_shipping_method 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment