Magento Certification Name Changes
Magento certification credentials were recently integrated into the Adobe Credentialing ecosystem. As a result the framework and names of Magento credential names have been changed to align with Adobe's credentialing framework and naming conventions. For more details, please visit here.
Adobe certification exams are developed with the participation of subject matter experts worldwide, following industry standards in developing fair and valid tests. Visit our FAQ page for more information.
Are you an Adobe partner?
An official Adobe Certified Expert designation acknowledges your established expertise to help current and future business clients succeed!
Partners with a status of bronze and higher receive a 33% discount on all certification exam pricing. Email firstname.lastname@example.org to request your discount(s).
Where to start? Check out the Partner Learner Journey from the Adobe Solution Partner Program today.
Exam Guide Sections:
- Exam information
- Minimum Candidate Experience
- Exam objectives and scope
- Online sample test
- Preparing for the exam
- Exam number: AD0-E705
- Certificate level: Certified Professional
- Status: Active
- Available languages: English
- Number of questions: 60
- Formats: Multiple choice and multiple select
- Duration: 120 minutes
- Delivery: Onsite/Online proctored (requires camera access) or test center proctored
- Passing mark: 38/60
- Price: $225 USD / $150 USD (India only)
Minimum Candidate Experience
Exam Objectives and Scope
Section 1: Technology Stack (20%)
- 1.1 Demonstrate understanding of RequireJS
- What is the main purpose of the RequireJS framework?
- Demonstrate the ability to use requirejs-config.js files in the development process
- What is a requirejs-config.js file?
- In which cases it is necessary to add configurations to it?
- What tools does it provide?
- What are global callbacks?
- How can mappings be used?
- Demonstrate the ability to use RequireJS plugins
- What are RequireJS plugins?
- What are the text and domReady plugins used for?
- 1.2 Demonstrate understanding of UnderscoreJS
- Demonstrate understanding of underscore utility functions
- Use underscore templates in customizations
- Describe how underscore templates are used.
- What are the pros and cons of using underscore templates?
- Describe how underscore templates are used in Magento together with the text RequireJS plugin.
- 1.3 Demonstrate understanding of jQuery UI widgets
- What is a jQuery library?
- What different components does it have (jQuery UI, jQuery events and so on)?
- How does Magento use it?
- 1.4 Demonstrate understanding of KnockoutJS
- Describe key KnockoutJS concepts
- Describe the architecture of the Knockout library: MVVC concept, observables, bindings.
- Demonstrate understanding of knockout templates
- What is the main concept of knockout templates?
- What are the pros and cons of knockout templates?
- Demonstrate understanding of the knockout-es5 library
- 2.1 Demonstrate understanding of the modular structure of Magento
- Describe how static content is organized in Magento
- How does Magento expose a module's static content to the web requests?
- What are the different ways to deploy static content?
- How do you ensure that a module will be executed before other modules?
- How can an alias for a module be declared?
- What is the purpose of requirejs-config.js callbacks?
- Plain modules
- jQuery UI widgets
- What is the purpose and syntax of the data-mage-init attribute?
- What is the purpose and syntax of the text/x-magento-init script tag?
- 2.4 Describe jQuery UI widgets in Magento
- Describe how Magento uses jQuery widgets, and demonstrate an understanding of the $.mage object
- What is the role of jQuery widgets in Magento?
- What are typical widgets?
- How are Magento jQuery widget modules structured?
- Describe how Magento executes jQuery widgets
- How are Magento jQuery widgets executed with data-mage-init and text/x-magento-init?
- Describe advantages and limitations of using mixins.
- What are cases where mixins cannot be used?
- Describe how to customize jQuery widgets in Magento
- How can a new method be added to a jQuery widget?
- How can an existing method of a jQuery widget be overridden?
- 3.1 Demonstrate understanding of the mage library
- Magento pseudo ES6 literals and underscore templates in Magento
- How is localStorage used in Magento?
- What are the different components available through the mage/utils module?
- Demonstrate the ability to use and customize the validation module
- What is the architecture of the validation modules in Magento?
- How can a custom validation rule be added?
- How can an existing rule be customized?
- 3.2 Demonstrate understanding of mage widgets
- Which collapsible widgets are available in Magento?
- How do you use them?
- Demonstrate the ability to use the popup and modal widgets
- How do you create a new popup, dialog, or modal with the Magento components?
- How do you use them?
- 3.3 Demonstrate the ability to use the customer-data module
- Demonstrate understanding of the customer-data module concept
- What is private data?
- Why do we need to store information in the browser?
- What are performance considerations?
- Demonstrate understanding of how to use the customer-data module in customizations
- How is the customer-data module structured?
- How is data accessed, invalidated, or set?
- Describe how to use sections.xml to modify the information available through the customer-data module
- How can a sections.xml file be used to add a new section and to modify the invalidation rules of an existing section?
- How can a customization change the way existing sections work?
Section 4: UI Components (24%)
- 4.1 Demonstrate understanding of Knockout customizations
- Describe Magento modifications to the Knockout template engine
- Describe the remote template engine, template syntax, custom tags and attributes, and the rendering mechanism.
- Demonstrate the ability to use the custom Knockout bindings provided by Magento
- Where can a full list of custom bindings be found?
- What are they used for?
- What alternatives are there?
- Describe the Knockout scope binding
- What is the purpose of the scope binding?
- What Knockout problem does it solve?
- How exactly does this binding work?
- Demonstrate the ability to use the scope binding in customizations
- How is the scope binding used?
- How do nested scopes work?
- How can data of a parent scope be accessed from a child?
- How can the scope binding be applied to HTML in Ajax responses?
- 4.2 Demonstrate understanding of Magento UI components
- Describe how uiComponents are executed in Magento
- What does it mean to "execute a uiComponent"?
- Why do we need the app component to execute uiComponents?
- What is the role of the layout component?
- Describe the structure of a UiComponent
- What is uiClass?
- How does it instantiate uiComponents?
- How can existing component instances be accessed?
- How can a uiComponent be modified?
- How do you extend an existing uiComponent?
- What is the role of the uiElement and uiCollection modules?
- Demonstrate the ability to create a uiComponent with its own data, or operate with data of existing uiComponents
- How does a uiComponent access the data it needs?
- What are the requirements for a subcomponent to provide data?
- How can data be loaded by Ajax?
- How can a component receive the data when it is loaded?
- Describe the process of sharing data between components
- How can one uiComponent instance access data of another instance?
- How can components communicate while taking into account their asynchronous nature?
- 4.3 Demonstrate the ability to use UI components
- Describe the uiComponents lifecycle
- What are the stages of uiComponent execution?
- What is the role of the layout module, and how does it load components, children, and data?
- What are the types of components it supports?
- Demonstrate the ability to use uiComponents configuration to modify existing instances and create new instances
- Describe the definitons.xml file and uiComponent instance XML files.
- How can you modify an existing instance of a uiComponent using a configuration file?
- What is the role of the Magento layout in the uiComponent workflow?
- 4.4 Demonstrate understanding of grids and forms
- Customize existing grids and create new grids
- How do you create a grid?
- How do you add an image column, standard validation, custom validation rules, and custom column types to a grid?
- How do you modify existing grids?
- How do you customize the data loading process for a grid, including filters and sorting?
- Customize existing forms and create new forms
- How do you create a form, a form with tabs, a form with groups of fields, a form with dynamic fields (when one field change will cause a change in another place)?
- How do you customize existing forms?
- How do you add validation to fields, including custom validation rules?
- How can you add a file upload field, an image field, and a custom field to a form?
Section 5: Checkout (12%)
- 5.1 Demonstrate understanding of checkout architecture
- What are actions, models, and views used for in checkout?
- How does Magento store checkout data?
- What type of classes are used for loading/posting data to the server?
- How does a view file update current information?
- Demonstrate the ability to use the checkout steps for debugging and customization
- How do you add a new checkout step?
- How do you modify the order of steps?
- Debug the data flow of each step.
- How do you customize a step's logic?
- Customize the shipping step rendering and saving
- How does Magento save information about the shipping address for different types of checkout (logged in with default address, without default address, not logged in)?
- How does Magento obtain the list of available shipping methods?
- Which events can trigger this process?
- How does Magento save a selected address and shipping method?
- 5.2 Demonstrate understanding of payments
- Add new payment method and payment methods renderers.
- Modify an existing payment method.
- Demonstrate the ability to use the payment data flow for debugging and customizations
- How does a payment method send its data to the server?
- What is the correct approach to deal with sensitive data?
- Describe the data flow during order placement
- Which modules are involved?
- How can the payment step be separated from the order placement?
The sample questions allows you to see the type and format of questions that you will encounter in the actual exam. The results of the sample questions do not predict your actual test results.
Preparing for the Exam
You are not required to complete training before taking the exam, and training alone will not provide you with the knowledge and skills required to pass the exam. A combination of training and successful, on-the-job experience are critical to providing you with the repository needed to pass the exam.
Questions and Inquiries?
Please contact the Adobe Credential Program Customer Support team.
The content of this exam guide is subject to changes and updates. Last update April 2020.