Adobe ad0-e718 practice test

Exam Title: Adobe Commerce Architect Master

Last update: Nov 27 ,2025
Question 1

An Adobe Commerce Architect gets a request to change existing payment gateway functionality by
allowing voided transactions only for a certain range of paid amounts.
In the vendor module file etc/config.xml, payment method has an option can,_void set to 1.
How should this customization be done?

  • A. Extend Magento\Payment\Model\\Method\Adapter and reimplement method void. Use this new class as a new type of payment method facade configuration overriding virtualType type for adapter.
  • B. Declare a new plugin for class Magento\Payment\ Gateway\Config\ConfigValueHandler and using the afterHandle method, change the result for Subject can_void.
  • C. Add new handler with name can_void to virtualType based on typeMagento payment\Gateway\config\ValueHandlerPool In payment method facade configuration.
Answer:

C


Explanation:
The Architect should add a new handler with name can_void to virtualType based on type
Magento\Payment\Gateway\Config\ValueHandlerPool in payment method facade configuration.
This handler will be responsible for determining whether the payment method can void transactions
or not, based on the custom logic of the paid amount range. The handler should implement
\Magento\Payment\Gateway\Config\ValueHandlerInterface and override the handle() method to
return true or false depending on the payment amount. Option A is incorrect because extending
Magento\Payment\Model\Method\Adapter and reimplementing method void will not change the
can_void option, but rather the logic of voiding transactions. Option B is incorrect because declaring
a new plugin for class Magento\Payment\Gateway\Config\ConfigValueHandler and using the
afterHandle method will affect all payment methods that use this class, not just the specific one that
needs
customization.
Reference:
https://devdocs.magento.com/guides/v2.4/payments-integrations/base-integration/integration-model.html

vote your answer:
A
B
C
A 0 B 0 C 0
Comments
Question 2

An Adobe Commerce Architect needs to customize the workflow of a monthly installments payment
extension. The extension is from a partner that is contracted with the default website PSR which has
its own legacy extension (a module using deprecated payment method).
The installment payment partner manages only initializing a payment, and then hands the capture to
be executed by the PSP. Once the amount is successfully captured, the PSP notifies the website
through an IPN. The goal of the IPN is only to create an "invoice" and save the 'capture information'
to be used later for refund requests through the PSP itself.
The Architect needs the most simple solution to capture the requested behavior without side effects.
Which solution should the Architect implement?

  • A. Add a plugin before the $invoice-> () and changes its input to prevent the call of the $payment-> capture()
  • B. Change the can_ capture attribute for the payment method under config.xml to be <can_capture>0</can_capture>
  • C. Declare a capture command with type Magento\payment\Gateway\Command\NullCommand for the payment method CommandPool in di.zm1
Answer:

C


Explanation:
The best solution for the Adobe Commerce Architect to implement in order to capture the requested
behavior without side effects is to declare a capture command with type
Magento\payment\Gateway\Command\NullCommand for the payment method CommandPool in
di.xml. This will allow the partner to initialize the payment and then hand the capture over to the
PSP, while also preventing the website from calling the $payment->capture() method. It will also
allow the PSP to notify the website through an IPN, which will create an "invoice" and save the
'capture information' to be used later for refund requests through the PSP itself.
The Architect should implement the solution of declaring a capture command with type
Magento\Payment\Gateway\Command\NullCommand for the payment method CommandPool in
di.xml. This command will do nothing when the capture method is called on the payment method,
which is the desired behavior since the capture is handled by the PSP. The NullCommand class
implements \Magento\Payment\Gateway\CommandInterface and overrides the execute() method
to return null. Option A is incorrect because adding a plugin before the $invoice->capture() method
and changing its input will not prevent the call of the $payment->capture() method, but rather
change the invoice object that is passed to it. Option B is incorrect because changing the can_capture
attribute for the payment method under config.xml to be <can_capture>0</can_capture> will not
prevent the capture method from being called, but rather disable the capture option in the Admin
panel.
Reference:
https://devdocs.magento.com/guides/v2.4/payments-integrations/base-integration/facade-configuration.html

vote your answer:
A
B
C
A 0 B 0 C 0
Comments
Question 3

An Architect needs to integrate an Adobe Commerce store with a new Shipping Carrier. Cart data is
sent to the Shipping Carrier's API to retrieve the price and display to the customer. After the feature
is implemented on the store, the API hits its quota and returns the error "Too many requests". The
Shipping Carrier warns the store about sending too many requests with the same content to the API.
In the carrier model, what should the Architect change to fix the problem?

  • A. Implement _setCachedQuotes () and_getCachedQuotes() return the data if the request matches.
  • B. In _doShipmentRequest (), call canCollectRates() before sending request to the API
  • C. Override getResponse (), save the response to a variable, check if the response exists, then return.
Answer:

A


Explanation:
Implementing setCachedQuotes () andgetCachedQuotes() in the carrier model can allow the store to
store the cart data in a cache, so that repeated requests with the same content can be retrieved from
the cache instead of sending a new request to the API. This can reduce the number of requests and
avoid hitting the quota limit.
Reference:
[1]
https://docs.adobe.com/content/help/en/experience-manager-65/commerce/commerce-payment-shipping-modules/shipping/shipping-carrier-apis.html
[2]
https://docs.adobe.com/content/help/en/experience-manager-
65/commerce/commerce-payment-shipping-modules/shipping/developing-shipping-carrier-
integrations/shipping-carrier-model.html

vote your answer:
A
B
C
A 0 B 0 C 0
Comments
Question 4

A representative of a small business needs an Adobe Commerce Architect to design a custom
integration of a third-party payment solution. They want to reduce the list of controls identified in
their Self-Assessment Questionnaire as much as possible to achieve PCI compliance for their existing
Magento application.
Which approach meets the business needs?

  • A. Utilize the payment provider Iframe system to isolate content of the embedded frame from the parent web page.
  • B. Utilize the Advanced Encryption standard (AES-256) algorithm to encrypt all customer-sensitive data from the payment module.
  • C. Utilize a trusted signed certificate issued by a Certification Authority (CA) to secure each connection made by the payment solution protocol via HTTPS.
Answer:

A


Explanation:
The Architect should utilize the payment provider iframe system to isolate content of the embedded
frame from the parent web page. This approach will reduce the list of controls identified in their Self-
Assessment Questionnaire as much as possible to achieve PCI compliance for their existing Magento
application. By using an iframe, the payment provider handles all customer-sensitive data and
Magento does not store or process any cardholder data. This reduces the PCI scope and simplifies the
compliance process. Option B is incorrect because utilizing the Advanced Encryption Standard (AES-
256) algorithm to encrypt all customer-sensitive data from the payment module will not reduce the
PCI scope, but rather increase it. Magento will still store and process cardholder data, which requires
more controls and validation. Option C is incorrect because utilizing a trusted signed certificate
issued by a Certification Authority (CA) to secure each connection made by the payment solution
protocol via HTTPS will not reduce the PCI scope, but rather ensure the security of data transmission.
Magento will still store and process cardholder data, which requires more controls and validation.
Reference:
https://devdocs.magento.com/guides/v2.4/payments-integrations/payment-gateway/integration.html

vote your answer:
A
B
C
A 0 B 0 C 0
Comments
Question 5

An Architect is working to implement Adobe Commerce into a pre-built ecosystem in a company.
Communication between different company domains uses event-driven design and is driven via
AMQP protocol with using RabbitMQ.
The Architect needs to establish the data flow between the ERP system and Adobe Commerce.
The ERP system stores only customer data excluding customer addresses.
The role of Adobe Commerce is to provide Customer Address data to the enterprise ecosystem.
Primary Customer data should not be changed from Adobe Commerce side; it should only be
updated by messages data from ERP.
Which three AMQP configurations should be considered to meet these requirements? (Choose
three.)

  • A. Create a queue_consumer.xml and communction.xml configuration files for Customer data messages
  • B. Create a queue_publisher.xml configuration file for Customer data messages
  • C. Create a nueue_publisher.xml configuration file for Customer Address messages
  • D. Create a queue_topology.xml configuration file for Customer Address messages
  • E. Create a queue_topology.xml configuration file for Customer data messages
  • F. Create a queue_customer.xml and communication.xml configuration files for Customer Address messages
Answer:

ACE


Explanation:
To establish the data flow between the ERP system and Adobe Commerce using AMQP protocol with
RabbitMQ, you need to consider the following AMQP configurations:
Create a queue_consumer.xml and communication.xml configuration files for Customer data
messages. These files will define the topics, handlers, and consumers that will receive and process
the messages from the ERP system. The communication.xml file will also specify the schema for the
Customer data messages.
Create a queue_publisher.xml configuration file for Customer Address messages. This file will define
the exchange where the Customer Address messages will be published to. The exchange will route
the messages to the appropriate queues based on the binding rules.
Create a queue_topology.xml configuration file for Customer Address messages. This file will define
the message routing rules and declare the queues and exchanges for the Customer Address
messages. The queue_topology.xml file will also specify the connection name and type for
RabbitMQ.
Reference:
:
https://devdocs.magento.com/guides/v2.3/extension-dev-guide/message-queues/config-mq.html

vote your answer:
A
B
C
D
E
F
A 0 B 0 C 0 D 0 E 0 F 0
Comments
Question 6

In a custom module, an Architect wants to define a new xml configuration file. The module should be
able to read all the xml configuration files declared in the system, merge them together, and use
their values in PHP class.
Which two steps should the Architect make to meet this requirement? (Choose two.)

  • A. Write a plugin for \Magento\Framework\Config\Data::get() and read the custom xml files
  • B. Append the custom xml file name in "Magento\Config\Model\Config\Structure\Reader" in di.xml
  • C. Create a Data class that implements "\Magento\Framework\Config\Data'
  • D. Inject a "reader" dependency for "Magento\Framework\Config\Data" in di.xml
  • E. Make a Reader class that implements "\Magento\Framework\Config\Reader\Filesystem"
Answer:

C, E


Explanation:
Based on web searches, it seems that Magento uses different classes and interfaces to interact with
configuration files, such as Data, Reader, and Converter12
.
According to the documentation1
, Data is a class that provides access to configuration data using a
scope. Reader is an interface that reads configuration data from XML files. Converter is an interface
that converts XML data into an array representation.
Based on these definitions, I would say that two possible steps that the Architect should make to
meet the requirement are:
C. Create a Data class that implements “\Magento\Framework\Config\Data”
E. Make a Reader class that implements “\Magento\Framework\Config\Reader\Filesystem”
These steps would allow the custom module to read all the XML configuration files declared in the
system, merge them together, and use their values in PHP class.
The Architect should make two steps to meet this requirement: C) Create a Data class that
implements “\Magento\Framework\Config\Data”. This class will be responsible for reading and
merging the custom xml configuration files and providing access to their values. The Data class
should extend \Magento\Framework\Config\Data and use the constructor to inject the Reader class
and
the
cache
type.
E)
Make
a
Reader
class
that
implements
“\Magento\Framework\Config\Reader\Filesystem”. This class will be responsible for loading and
validating the custom xml configuration files from different modules. The Reader class should extend
\Magento\Framework\Config\Reader\Filesystem and use the constructor to specify the file name,
schema file, and validation state of the custom xml configuration files. Option A is incorrect because
writing a plugin for \Magento\Framework\Config\Data::get() will not define a new xml configuration
file, but rather modify the existing one. Option B is incorrect because appending the custom xml file
name in “Magento\Config\Model\Config\Structure\Reader” in di.xml will not define a new xml
configuration file, but rather add it to the system configuration structure. Option D is incorrect
because injecting a “reader” dependency for “Magento\Framework\Config\Data” in di.xml will not
define a new xml configuration file, but rather use an existing one. Reference:
https://devdocs.magento.com/guides/v2.4/extension-dev-guide/build/XSD-XML-validation.html

vote your answer:
A
B
C
D
E
A 0 B 0 C 0 D 0 E 0
Comments
Question 7

A third-party company needs to create an application that will integrate the Adobe Commerce
system to get orders data for reporting. The integration needs access to the get /vi/orders endpoint.
It will call this endpoint automatically every hour around the clock. The merchant wants the ability to
restrict or extend access to resources as well as to revoke the access using Admin Panel.
Which type of authentication available in Adobe Commerce should be used and implemented in a
third-party system for this integration?

  • A. Use token-based authentication to obtain the Admin Token. The third-party system will utilize the REST endpoint using the admin username and password to get the Admin Token, which will be used as the Bearer Token to authorize.
  • B. Use OAuth-based authentication to provide access to system resources. Integration will be registered by the merchant in the panel an OAuth handshake during activation. The third-party system should follow OAuth protocol to authorize.
  • C. Use token-based authentication to obtain an Integration Token. Integration will be created and activated in the admin panel using default integration token settings to get access to the token, which will be used as the Bearer Token to authorize.
Answer:

B


Explanation:
To create an application that will integrate the Adobe Commerce system to get orders data for
reporting using the get /v1/orders endpoint, you should use OAuth-based authentication to provide
access to system resources. OAuth is a token-passing mechanism that allows a system to control
which third-party applications have access to internal data without revealing or storing any user IDs
or passwords. The integration will be registered by the merchant in the admin panel and will perform
an OAuth handshake during activation. The third-party system should follow OAuth protocol to
authorize.
The merchant will have the ability to restrict or extend access to resources as well as to
revoke the access using Admin Panel. Reference: 1
:
https://devdocs.magento.com/guides/v2.3/get-started/authentication/gs-authentication-oauth.html

vote your answer:
A
B
C
A 0 B 0 C 0
Comments
Question 8

An Adobe Commerce Architect designs a data flow that contains a new product type with its own
custom pricing logic to meet a merchant requirement.
Which three developments are valid when reviewing the implementation? (Choose three.)

  • A. Content of the etc/product_types.xml file
  • B. Hydrator for attributes belonging to the new product type
  • C. Custom type model extended from the abstract Product Type model
  • D. A new class with custom pricing logic, extending the abstract Product model class
  • E. Data patch to register the new product type
  • F. New price model extending \Magento\Catalog\Model\Product\Type\Price
Answer:

ACF


Explanation:
To create a new product type with its own custom pricing logic, you need to consider the following
developments:
Content of the etc/product_types.xml file. This file will define the name, label, modelInstance, and
priceModel of the new product type. The modelInstance will specify the custom type model that
extends from the abstract Product Type model. The priceModel will specify the new price model that
extends \Magento\Catalog\Model\Product\Type\Price.
Custom type model extended from the abstract Product Type model. This model will implement the
logic and behavior of the new product type, such as how to prepare product for cart, how to process
buy request, how to check product options, etc.
New price model extended \Magento\Catalog\Model\Product\Type\Price. This model will
implement the custom pricing logic for the new product type, such as how to calculate final price,
tier price, minimal price, etc.
Reference:
: https://meetanshi.com/blog/create-custom-product-type-in-magento-2/

vote your answer:
A
B
C
D
E
F
A 0 B 0 C 0 D 0 E 0 F 0
Comments
Question 9

A merchant asks for a new category attribute to allow uploading an additional mobile image against
categories. The merchant utilizes the content staging and preview feature in Adobe Commerce and
wants to schedule and review changes to this new mobile image field.
A
developer
creates
the
attribute
via
a
data
patch
and
adds
it
to
view/adminhtml/ui_component/category_form.xml. The attribute appears against the category in
the main form, but does not appear in the additional form when scheduled updates are made.
To change this attribute when scheduling new category updates, which additional action should the
Architect ask the developer to take?

  • A. The attribute must have its apply_to field set to "staging" in the data patch file. B. The attribute must also be added to view/adminhtml/ul_component/catalogstaging_category_update_form.xml.
  • C. The attribute must have<item name=''allow_staging'' xsi:type="boolean''>true<item> set in the =category_form.xml file under the attributes config" section.
Answer:

B


Explanation:
This is because, in order to change the attribute when scheduling new category updates, the
attribute
must
be
added
to
the
view/adminhtml/ulcomponent/catalogstagingcategoryupdateform.xml file in order to be displayed
in the additional form when scheduling updates. This additional form is used to set the values for the
category attributes when scheduling updates.
To change the new category attribute when scheduling new category updates, you need to add the
attribute to view/adminhtml/ui_component/catalogstaging_category_update_form.xml. This file
defines the form fields that appear in the Schedule New Update form for categories.
By adding the
attribute to this file, you will be able to schedule and review changes to the new mobile image field
using the content staging and preview feature in Adobe Commerce. Reference: 1
: https://docs.magento.com/user-guide/v2.3/cms/content-staging-category.html

vote your answer:
A
C
A 0 C 0
Comments
Question 10

An Adobe Commerce store owner sets up a custom customer attribute "my.attribute" (type int).
An Architect needs to display customer-specific content on the home page to Customers with
"my.attribute" greater than 3. The website is running Full Page Cache.
Using best practices, which two steps should the Architect take to implement these requirements?
(Choose two.)

  • A. Use customer-data JS library to retrieve "my.attribute" value
  • B. Add a new context value of "my.attribute" to Magento\Framework\App\Http\Context
  • C. Add a custom block and a phtml template with the content to the cmsjndexjndex.xml layout
  • D. Create a Customer Segment and use "my.attribute" in the conditions
  • E. Add a dynamic block with the content to the Home Page
Answer:

AC


Explanation:
To display customer-specific content on the home page to Customers with “my.attribute” greater
than 3, you need to use the following steps:
Use customer-data JS library to retrieve “my.attribute” value. The customer-data JS library allows you
to access the customer data stored in the local storage of the browser. You can use the get() method
to get the value of “my.attribute” for the current customer.
Add a new context value of “my.attribute” to Magento\Framework\App\Http\Context. The HTTP
context is a mechanism that allows you to vary the cache of a page based on some parameters. By
adding a new context value of “my.attribute”, you can cache separate versions of the home page for
customers with different values of “my.attribute”.
Add a custom block and a phtml template with the content to the cms_index_index.xml layout. This
step will create a block that will display the customer-specific content on the home page. You can use
the phtml template to check the value of “my.attribute” and render the content accordingly.
Reference:
:
https://devdocs.magento.com/guides/v2.3/extension-dev-guide/cache/page-caching/public-content.html
:
https://devdocs.magento.com/guides/v2.3/howdoi/checkout/checkout_customize.html

vote your answer:
A
B
C
D
E
A 0 B 0 C 0 D 0 E 0
Comments
Page 1 out of 4
Viewing questions 1-10 out of 50
Go To
page 2