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.)
AInject a “reader” dependency for “Magento\Framework\Config\Data” in di.xml
BWrite a plugin for \Magento\Framework\Config\Data::get() and read the custom xml files
CCreate a Data class that implements “\Magento\Framework\Config\Data”
DAppend the custom xml file name in “Magento\Config\Model\Config\Structure\Reader” in di.xml
EMake a Reader class that implements “\Magento\Framework\Config\Reader\Filesystem”
0
Question 2
Configure all aspects of Adobe Commerce Cloud
0
Question 3
Customize Commerce features
0
Question 4
Design and implement optimal solutions for Adobe Commerce to meet business needs
0
Question 5
Customize Commerce features
0
That's the end of the Preview
This exam has 50 community-verified practice questions. Create a free account to access all questions, comments, and explanations.
Topics covered:
Design and implement optimal solutions for Adobe Commerce to meet business needsConfigure all aspects of Adobe Commerce CloudTroubleshoot to identify the root cause of issues with Adobe CommerceTroubleshoot design flowsConfigure and DeployEnforce coding standardsTroubleshoot infrastructure and configuration issuesUtilize Commerce test frameworks throughout the whole workflowCustomize Commerce features
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 /V1/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?
AUse 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.
BUse 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.
CUse OAuth-based authentication to provide access to system resources. Integration will be registered by the merchant in the admin panel with an OAuth handshake during activation. The third-party system should follow OAuth protocol to authorize.
An Adobe Commerce Architect creates a stopword for the Italian locale named stopwordsJtJT.csv and changes the stopword directory to the following:
<magento_root>/app/code/CustomVendor/Elasticsearch/etc/stopwords/
What is the correct approach to change the stopwords directory inside the custom module?
AAdd stopwords to the stopwordsDirectory and CustomVendor_Elasticsearch to the stopwordsModule parameter of the \Magento\Elasticsearch\SearchAdapter\Query\Preprocessor\Stopwords class via di.xml
BAdd a new class implementing \Magento\Framework\Setup\Patch\PatchInterface to modify the default Value of elasticsearch\custom\stopwordspath in core_config_data table.
CAdd stopwords to the stopwordsDirectory parameter of the \Magento\Elasticsearch\Model\Adapter\Document\DirectoryBuilder class via stopwords/it.xml and Adobe Commerce will automatically detect the current module.
While reviewing a newly developed pull request that refactors multiple custom payment methods, the Architect notices multiple classes that depend on \Magento\Framework\Encryption\EncryptorInterface to decrypt credentials for sensitive data. The code that is commonly repeated is as follows:
In each module, the user_secret config is declared as follows:
The Architect needs to recommend an optimal solution to avoid redundant dependency and duplicate code among the methods.
Which solution should the Architect recommend?
ACreate a common config service class Vendor\Payment\Gateway\Config\Config under Vendor_Payment and use it as a parent class for all of the Vendor\PaymentModule\Gateway\Config\Config classes and remove $scopeConfig and $encryptor dependencies
BReplace all Vendor\PaymentModule\Gateway\Config\Config classes with virtualType of Magento\Payment\Gateway\Config\Config and set <user_secret backend_model=“Magento\Config\Model\Config\Backend\Encrypted” /> under config.xml
CAdd a plugin after the getValue method of $scopeConfig, remove the $encryptor from dependency and use it in the plugin to decrypt the value if the config name is ‘user_secret’
An Adobe Commerce store owner sets up a custom customer attribute “my_attribute”.
An Architect needs to display additional content on the home page, which should display only to Customers with “my_attribute” of a certain value and be the same content for all of them. The website is running Full Page Cache.
With simplicity in mind, which two steps should the Architect take to implement these requirements? (Choose two.)
AAdd a new context value of “my.attribute” to Magento\Framework\App\Http\Context
BCreate a Customer Segment and use “my_attribute” in the conditions
CAdd a custom block and a pHTML template with the content to the cmsjndexjndex.xml layout
DAdd a dynamic block with the content to the Home Page
EUse customer-data JS library to retrieve “my_attribute” value
Question 6
Utilize Commerce test frameworks throughout the whole workflow
0
Question 7
Design and implement optimal solutions for Adobe Commerce to meet business needs
Question 8
Design and implement optimal solutions for Adobe Commerce to meet business needs
Question 9
Customize Commerce features
Question 10
Troubleshoot infrastructure and configuration issues
Question 11
Troubleshoot to identify the root cause of issues with Adobe Commerce
Question 12
Customize Commerce features
Question 13
Customize Commerce features
Question 14
Troubleshoot infrastructure and configuration issues
Question 15
Customize Commerce features
Question 16
Customize Commerce features
Question 17
Troubleshoot to identify the root cause of issues with Adobe Commerce
Question 18
Design and implement optimal solutions for Adobe Commerce to meet business needs
Question 19
Configure all aspects of Adobe Commerce Cloud
Question 20
Customize Commerce features
Ask AstroTutor
0
Ask AstroTutor
0
Ask AstroTutor
0
Ask AstroTutor
0
Ask AstroTutor
0
Ask AstroTutor
0
Ask AstroTutor
0
Ad
Want a break from the ads?
Become a Supporter and enjoy a completely ad-free experience, plus unlock Learn Mode, Exam Mode, AstroTutor AI, and more.
Ask AstroTutor
0
Ask AstroTutor
0
Ask AstroTutor
0
Ask AstroTutor
0
Ask AstroTutor
0
Ask AstroTutor
0
Ask AstroTutor
0
An Adobe Commerce Architect designs and implements functionality that introduces a new Complex Product Type to the existing Adobe Commerce website. Besides visual demonstration of the new product type, the changes include adjustments to the price index.
The website utilizes a multi-dimensional indexer feature to store the price index. The Architect decides to cover it with integration tests. After creating and running one test, the Architect discovers that database storage is not being fully cleaned.
The test method has the following annotation declaration:
Which adjustment should the Architect make to fix this issue?
AAdd annotation @magentoAppIsolation enabled to method PHPDoc
BModify method PHPDoc and change annotation @magentoDbIsoiation to enabled
CCreate Custom_ProductType::Test/_files/{fixture_name}_rollback.php for every fixture
A client has multiple warehouses where orders can be fulfilled. The cost of shipping goods from each warehouse varies by day, due to the number of workers available. The Architect needs to make sure that when an order is shipped, it is shipped from the lowest cost warehouse that is open.
How should this functionality be implemented?
ACreate a new class as a preference for Magento\InventoryShipping\Plugin\Sales\Shipment\AssignSourceCodeToShipmentPlugin to set the lowest-cost warehouse on a shipment.
BCreate a new class implementing Magento\InventorySourceSelectionApi\Model\SourceSelectionInterface, which returns open warehouses sorted by cost.
CCreate an after plugin on Magento\InventoryDistanceBasedSourceSelection\Model\Algorithms\DistanceBasedAlgorithm to sort Warehouse sources by cost.
A merchant is using a unified website that supports native Adobe Commerce B2B and B2C with a single store view.
The merchant’s objective is to display the B2B account features, such as negotiable quotes and credit limits, in the header of the site on every page for logged-in users who belong to a B2B company account.
Each B2B company possesses its unique shared catalog and customer group, while numerous customer groups for non-B2B customers undergo changes. The merchant insists that this association should not be linked to customer groups.
Which two solutions should the Architect recommend for consideration, taking into account public data and caching? (Choose two.)
ACreate a Virtual Type that switches the theme when a user is part of a B2B company so the output can be modified accordingly in the alternate theme.
BCreate a new HTTP Context variable to allow for separate public content to be cached for users in B2B companies where the output can be modified accordingly.
CSet whether the current user is part of a B2B company in the customer session and use that data directly to modify the output accordingly.
DCreate a new custom condition for customer segments that allow for choosing whether a user is part of a B2B company and then use this segment to modify the output accordingly.
ECheck if the current user is part of a B2B company within a block class and modify the output accordingly.
An Adobe Commerce Architect needs to customize the workflow of a monthly installments payment extension. The extension is from a partner who is contracted with the default website Payment Service Provider (PSP), 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 a webhook. The goal of the webhook 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.
Which solution should the Architect implement?
AAdd a plugin before the $invoice->capture() and change its input to prevent the call of the $payment->capture()
BChange the can_capture attribute for the payment method under config.xml to be <can_capture>0</can_capture>
CDeclare a capture command with type Magento\Payment\Gateway\Command\NullCommand for the payment method CommandPool in di.xml
An existing Adobe Commerce website is moving to a headless implementation.
The existing website features an "All Brands" page, as well as individual pages for each brand. All brand-related pages are cached in Varnish using tags in the same manner as products and categories.
Two new GraphQL queries have been created to make this information available to the frontend for the new headless implementation:
During testing, the queries sometimes return out-of-date information.
How should this problem be solved while maintaining performance?
ASpecify a $cache(cacheable: false) directive for each GraphQL query, making sure that the data returned is not cached, and is up to date
BSpecify a @cache(cacheIdentity: Path\To\IdentityClass) directive for each GraphQL query, corresponding to a class that adds cache tags for relevant brands and associated products
CEach GraphQL query’s resolver class should inject \Magento\GraphQlCache\Model\CacheableQuery and call setCacheValidity(true) on it as part of the resolver’s resolve function
An Adobe Commerce Architect is investigating a case where some EAV product attributes are no longer updated.
The catalog is composed of 20,000 products with 100 attributes each.
The product updates are run by recurring Adobe commerce imports that happen multiple times a day.
The Architect finds an error in the logs that indicates an integrity constraint while trying to insert row with id 2147483647.
What is causing this error?
AMagento framework uses INSERT on DUPLICATE, which leads to reaching the max limit of the increment of the column.
BIntegrity constraints were dropped after upgrading to the latest version, and the integrity checks were missed.
CEAV attribute import uses REPLACE, which leads to reaching the max limit of the increment of the column.
An Adobe Commerce Architect is planning to create a new action that will add gift registry items to the customer’s quote.
What should the Architect do to guarantee that private content blocks are updated?
AMark the controller by setting no-cache HTTP headers
BInvalidate the status of gift registry indexers
CSpecify a new action in a sections.xml configuration file
An Adobe Commerce Architect needs to scope a bespoke news section for a merchant's Adobe Commerce storefront. The merchant's SEO agency requests that the following URL structure: news/{date}/{article_url_key}, where {date} is the publication date of the article, and {article_url_key} is the URL key of the article.
The Architect scopes that a news entity type will be created. The date and URL key data will be stored against each record and autogenerated on save. The values will be able to be manually overridden.
The Architect needs to manage routing this functionality and adhere to best practice.
Which two options should the Architect consider to meet these requirements? (Choose two.)
ACreate a standard controller route and mapping the internal URLs (such as news/article/view/id/1) to rewrites that are generated on save and then stored in the URL rewrites table.
BCreate a custom router that runs before the standard router and matches the news portion of the URL, then looks for and loads a news article by matching the date and URL key parts of the URL.
CCreate a plugin that intercepts Magento\Framework\App\Action::execute(), looks for the news portion of the URL, and if it matches, loads the relevant news article by matching the URL date and URL key parts.
DCreate a standard controller route and an Index/Index controller class that loads the relevant news article by matching the URL date and URL key parts.
ECreate an observer that listens to the controller_front_send_response_before event, looks for the news portion of the URL, and if it matches, loads the relevant news article by matching the URL date and URL key parts.
An external system integrates functionality of a product catalog search using Adobe Commerce GraphQL API. The Architect creates a new attribute my_attribute in the admin panel with frontend type select.
Later, the Architect sees that ProductInterface already has the field my_attribute, but returns an Int value. The Architect wants this field to be a new type that contains both option id and label.
To meet this requirement, an Adobe Commerce Architect creates a new module and file etc/schema.graphqls that declares as follows:
After calling command setup:upgrade, the introspection of ProductInterface field my_attribute remains Int.
What prevented the value type of field my_attribute from changing?
AThe Magento_CatalogGraphQI module occurs later in sequence than the Magento_GraphQI module and merging output of dynamic attributes schema reader overrides types declared in schema.graphqls
BThe fields of ProductInterface are checked during processing schema.graphqls files. If they have a corresponding attribute, then the backend_type of product attribute is set for field type.
CThe interface ProductInterface is already declared in Magento.CatalogGraphQI module. Extending requires use of the keyword extend before a new declaration of ProductInterface.
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 steps are required when adding a product type with custom pricing? (Choose three.)
AContent of the etc/product_types.xml file
BData patch to register the new product type
CHydrator for attributes belonging to the new product type
DNew price model extending \Magento\Catalog\Model\Product\Type\Price
ECustom type model extended from the abstract Product Type model
FA new class with custom pricing logic, extending the abstract Product model class
An Adobe Commerce Architect needs to log the result of a ServiceClass::getData method execution after all plugins have executed. The method is public, and there are a few plugins declared for this method. Among those plugins are after and around types, and all have sortOrder specified.
Which solution should be used to meet this requirement?
ADeclare a new plugin with the sortOrder value lower than the lowest declared plugin sortOrder and implement aroundGetData method.
BDeclare a new plugin with the sortOrder value higher than the highest declared plugin sortOrder and implement afterGetData method.
CDeclare a new plugin with the sortOrder value higher than the highest declared plugin sortOrder and implement aroundGetData method.
While developing a new functionality for a website in developer mode with all cache types enabled, an Adobe Commerce Developer needs to add \Magento\Sales\Model\Service\InvoiceService $invoiceService as a new dependency to an existing page action controller in Vendor\CustomModule\Controller\Index\Index. This is accomplished as follows:
After cleaning the full_page cache and reloading the page, the developer encounters the following exception:
Recoverable Error: Argument 2 passed to Vendor\CustomModule\Controller\Index\Index::__construct() must be an instance of \Magento\Sales\Model\Service\InvoiceService [...]
Which action should the Architect recommend to the developer to fix this error?
AClean the block_html cache along with full_page cache.
BAdd the new \Magento\sales\Model\Service\InvoiceService $invoiceService dependency at the end of the constructor signature.
CRemove the generated child class from generated/code/Vendor/CustomModule/Controller/Index/Index.
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?
AUtilize the Advanced Encryption Standard (AES-256) algorithm to encrypt all customer-sensitive data from the payment module.
BUtilize the payment provider iframe system to isolate content of the embedded frame from the parent web page.
CUtilize a trusted signed certificate issued by a Certification Authority (CA) to secure each connection made by the payment solution protocol via HTTPS.
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?
AThe attribute must have its apply_to field set to “staging” in the data patch file.
BThe attribute must have <item name=“allow_staging” xsi:type=“boolean”>true</item> set in the category_form.xml file under the attributes ‘config’ section.
CThe attribute must also be added to view/adminhtml/ui_component/catalogstaging_category_update_form.xml.
An Adobe Commerce Architect needs to create a new customer segment condition to enable admins to specify an ‘Average sales amount’ condition for certain segments.
The Architect develops the custom condition under Vendor\Module\Model\Segment\Condition\AverageSalesAmount with all of its requirements:
During testing, the following error appears:
What should the Architect do to fix the problem?
ASet the class to be \Vendor\Module\Model\Segment\Condition\AverageSalesAmount for the $conditions value attribute
BUse a preference <preference for=“Magento\CustomerSegment\Model\Segment\Condition\AverageSalesAmount” type=“Vendor\Module\Model\Segment\Condition\AverageSalesAmount”/>
CUse a VirtualType <virtualType name=“Magento\CustomerSegment\Model\Segment\Condition\AverageSalesAmount” types“Vendor\Module\Model\Segment\Condition\AverageSalesAmount”/>