Skip to content

Instantly share code, notes, and snippets.

@ryaan-anthony
Created March 22, 2018 02:06
Show Gist options
  • Save ryaan-anthony/199b41b7177e2e32cdd20cd6619c74ef to your computer and use it in GitHub Desktop.
Save ryaan-anthony/199b41b7177e2e32cdd20cd6619c74ef 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/

  1. Define basic EAV concepts and class hierarchy

http://blog.magestore.com/2012/03/23/magento-certificate-eav-model-concepts/

  1. Describe the database schema for EAV entities

http://blog.magestore.com/2012/03/28/magento-certificate-databases-tables-for-eav-entities/

  1. 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

  1. 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

  1. Identify the purpose of attribute frontend, source, and backend models

http://www.atwix.com/magento/frontend-backend-source/

  1. 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

  1. Describe the similarities and differences between adminhtml and frontend interface and routing

http://alanstorm.com/magento_dispatch_admin_cms_default_routers

  1. 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

  1. 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

  1. Create a simple form and grid for a custom entity

  2. 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

  1. Define the basic terms, elements, and structure of system configuration XML

  2. 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

  1. Define/identify basic terms and elements of ACL

  2. Use ACL to:

  3. Set up a menu item

  4. Create appropriate permissions for users

  5. Check for permissions in permissions management tree structures

http://alanstorm.com/magento_acl_authentication

Working with extensions in Magento

  1. Describe how to enable and configure extensions

  2. 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

  1. Identify and describe standard product types (simple, configurable, bundled, etc.)

  2. 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/

  1. 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

  1. Identify basic concepts of price generation in Magento

  2. 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

  1. Describe the Category Hierarchy Tree Structure implementation (the internal structure inside the database), including:

  2. the meaning of parent_id 0

  3. the construction of paths

  4. 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

  1. Identify how catalog price rules are implemented in Magento

http://blog.magestore.com/2012/06/15/magento-blog-catalog-rules/

Other Skills

  1. Choose optimal catalog structure (EAV vs. Flat) for a given implementation

http://blog.magestore.com/2012/06/22/magento-blo-flat-catalog-product/

  1. Implement, troubleshoot, and modify Magento tax rules

http://www.magentocommerce.com/knowledge-base/entry/what-are-tax-rules-and-how-do-i-use-them

  1. Modify, extend, and troubleshoot the Magento layered("filter") navigation

http://blog.magestore.com/2012/06/29/magento-certificate-layered-navigation/

  1. Troubleshoot and customize Magento indexes

http://blog.magestore.com/2012/07/20/magento-certificate-custom-index/

  1. 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

  1. 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/

  1. 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

  1. 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

  1. 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

  1. Describe the shipping rates calculation process

  2. 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

  1. Describe how to extend the Magento multishipping implementation

  2. 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