A company plans to build an Adobe Commerce website to sell its products to customers in its country. Tax rules in that country are highly complex and require Adobe Commerce customization. An Architect intends to address this by creating a custom tax calculator that calculates taxes for every Adobe Commerce order.
How should the Architect add taxes to all orders?
AWrite a before plugin to \Magento\Quote\Model\QuoteManagement::placeOrder() and add the custom tax to the quote
BDeclare a new total collector in “etc/sales.xml” in a custom module
CAdd a new observer to the event “sales_quote_collect_totals_before” and add the custom tax to the quote
0
Community Discussion
No comments yet. Be the first to start the discussion!
An Architect on a headless Adobe Commerce project creates a new customer attribute named my_attribute. Based on the customer’s attribute value, a plugin modifies the results of GraphQL queries. The frontend application communicates with Adobe Commerce through Varnish by Fastly, which already caches the queries that will be modified. The Adobe Commerce Fastly extension is installed, and no other changes are made to the application.
Which steps should the Architect take to ensure that Varnish’s vcl_hash function also takes the newly created attribute into account?
ACreate a new class inheriting from Magento\Framework\GraphQl\Query\Resolver\IdentityInterface and returning the value of my_attribute from the getIdentities function. Then specify a @cache(cacheIdentity: Path\To\IdentityClass) directive for each GraphQL query to include the newly created IdentityClass to each query that adds the cache tags for each customer.
BCreate a new class inheriting from Magento\GraphQlCache\Model\CacheId\CacheIdFactorProviderInterface and returning the value of my_attribute from the getFactorValue function and my_attribute from getFactorName function. Then add this class through DI to the IdFactorProviders array of Magento\GraphQlCache\Model\CacheID\CacheIdCalculator.
CCreate a new class inheriting from Magento\Customer\CustomerData\SectionSourceInterface and returning the value of my_attribute from the getSectionData function. Then add this class through DI to the sectionSourceMap array of Magento\Customer\CustomerData\SectionPoolInterface.
0
Community Discussion
No comments yet. Be the first to start the discussion!
An Adobe Commerce Architect is developing a new GraphQL API mutation to change how configurable products are added to the cart. The mutation accepts a configurable product ID. If the supplied product has only one variant, the mutation must add that variant to the cart and return a non-null Cart type. If the configurable product has multiple variants, the mutation must return a non-null ConfigurableProduct type.
The mutation declaration is as follows:
How should the Adobe Commerce Architect declare this mutation’s output?
A
B
C
0
Community Discussion
No comments yet. Be the first to start the discussion!
An Adobe Commerce Architect must log the result of a ServiceClass::getData method execution after every plugin has run. The method is public, and several plugins are declared for it. These plugins include after and around types, and each has a specified sortOrder.
Which solution should be used to satisfy this requirement?
ADeclare a new plugin with the sortOrder value higher than the highest declared plugin sortOrder and implement afterGetData method.
BDeclare a new plugin with the sortOrder value lower than the lowest declared plugin sortOrder and implement aroundGetData method.
CDeclare a new plugin with the sortOrder value higher than the highest declared plugin sortOrder and implement aroundGetData method.
0
Community Discussion
No comments yet. Be the first to start the discussion!
A company operates an Adobe Commerce store. An attribute called “my_attribute” (type “text”) was created to store every product’s global ID, which is shared across multiple systems.
Several months after go-live, all “my_attribute” values are integers. This creates an issue for the other systems when they receive this data.
An Adobe Commerce Architect must recommend a solution to change “my_attribute” from type “text” to “int”.
Which two actions should the Architect take to accomplish this?
Choose two
AMigrate data from table “catalog_product_entity_text” to “catalog_product_entity_int” for the attribute_id
BGo to Admin > Stores > Attributes > Product, edit “my_attribute” and update type from “text” to "int"
CWrite a plugin for \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend::afterLoad() and load data from “catalog_product_entity_int”
DCreate a Data Patch and update “my_attribute” type from “text” to “int”
ERun the command bin/magento indexer:reset catalog_product_attribute
0
Community Discussion
No comments yet. Be the first to start the discussion!
That's the end of the preview
It's free
100% of the questions are free for all users. No strings attached.
No comments yet. Be the first to start the discussion!
Save question
0
Community Discussion
No comments yet. Be the first to start the discussion!
0
Community Discussion
No comments yet. Be the first to start the discussion!
0
Community Discussion
No comments yet. Be the first to start the discussion!
0
Community Discussion
No comments yet. Be the first to start the discussion!
0
Community Discussion
No comments yet. Be the first to start the discussion!
0
Community Discussion
No comments yet. Be the first to start the discussion!
Save question
0
Community Discussion
No comments yet. Be the first to start the discussion!
0
Community Discussion
No comments yet. Be the first to start the discussion!
0
Community Discussion
No comments yet. Be the first to start the discussion!
0
Community Discussion
No comments yet. Be the first to start the discussion!
0
Community Discussion
No comments yet. Be the first to start the discussion!
0
Community Discussion
No comments yet. Be the first to start the discussion!
0
Community Discussion
No comments yet. Be the first to start the discussion!
An Adobe Commerce Architect is configuring a Development environment for an on-premises project, where developers will specifically test functionality—not performance—before it is handed to the Testing team.
The Magento application must meet these requirements:
Errors must be logged but hidden from the user.
Cache mode can be changed only from the Command Line.
Static files must be created dynamically and then cached.
Which Application Mode is required to accomplish this?
ADefault Mode
BProduction Mode
CDeveloper Mode
An Adobe Commerce Architect is assisting a merchant that uses B2B features with a configuration issue.
The Architect creates a test Company Account and wants to create Approval Rules for orders. When the Architect signs in with the Company Administrator account, the Approval Rules tab is absent from the Company section of the Customer Account Menu.
Which two actions must be completed to resolve this issue?
Choose two
ASet ‘Enable Purchase Orders’ in the B2B Admin to TRUE
BMerchant needs to log out of frontend and then log back in to load new permissions
CSet ‘Enable Purchase Orders’ on the Company Record to TRUE
DMake sure that the ‘Purchase Order’ payment method is active
ESet ‘Enable B2B Quote’ in the B2B Admin to TRUE
An Adobe Commerce Architect receives a request to modify existing payment-gateway functionality so that voided transactions are allowed only for a specified range of paid amounts.
In the vendor module file etc/config.xml, the payment method has the can_void option set to 1.
How should this customization be implemented?
AExtend 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.
BDeclare a new plugin for class Magento\Payment\Gateway\Config\ConfigValueHandler and using the afterHandle method, change the result for subject can_void.
CAdd new handler with name can_void to virtualType based on type Magento\Payment\Gateway\Config\ValueHandlerPool in payment method facade configuration.
An Adobe Commerce Architect must customize the workflow for a monthly-installments payment extension. The extension is supplied by a partner contracted with the default website PSP, which has its own legacy extension (a module that uses a deprecated payment method).
The installments-payment partner only manages payment initialization, then passes capture execution to the PSP. After the amount is captured successfully, the PSP sends the website an IPN. The IPN’s sole purpose is to create an “invoice” and save the “capture information” for later refund requests through the PSP itself.
The Architect needs the simplest solution that achieves the requested behavior without side effects.
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 Architect is working to implement Adobe Commerce in a company's pre-built ecosystem.
Communication between the company’s different domains uses an event-driven design and is driven through the AMQP protocol using RabbitMQ.
The Architect must establish the data flow between the ERP system and Adobe Commerce.
The ERP system stores only Customer data, excluding Customer Address data.
Adobe Commerce is responsible for providing Customer Address data to the enterprise ecosystem.
Primary Customer data must not be changed from the Adobe Commerce side; it may only be updated by message data from the ERP.
Which three AMQP configurations should be considered to meet these requirements?
Choose three
ACreate a queue_consumer.xml and communication.xml configuration files for Customer data messages
BCreate a queue_publisher.xml configuration file for Customer data messages
CCreate a queue_publisher.xml configuration file for Customer Address messages
DCreate a queue_topology.xm1 configuration file for Customer Address messages
ECreate a queue_topology.xm1 configuration file for Customer data messages
FCreate a queue_consumer.xml and communication.xml configuration files for Customer Address messages
In a custom module, an Architect needs to define a new XML configuration file. The module must be able to read every XML configuration file declared in the system, merge them, and use their values in a PHP class.
Which two steps should the Architect take to meet this requirement?
Choose two
AWrite a plugin for \Magento\Framework\Config\Data::get() and read the custom xml files
BAppend the custom xml file name in “Magento\Config\Model\Config\Structure\Reader” in di.xml
CCreate a Data class that implements “\Magento\Framework\Config\Data”
DInject a “reader” dependency for “Magento\Framework\Config\Data” in di.xml
EMake a Reader class that implements “\Magento\Framework\Config\Reader\Filesystem”
A third-party company must create an application that integrates with Adobe Commerce to retrieve order data for reporting. The integration requires access to the GET /V1/orders endpoint. It will invoke this endpoint automatically every hour, around the clock. The merchant wants to be able to restrict or extend resource access and revoke that access through the Admin Panel.
Which authentication type 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 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.
CUse 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.
A merchant requests a new category attribute that allows an additional mobile image to be uploaded for categories. The merchant uses Adobe Commerce Content Staging and Preview and wants to schedule and review modifications to this new mobile-image field.
A developer creates the attribute through a data patch and adds it to view/adminhtml/ui_component/category_form.xml. The attribute is shown for the category in the main form, but it is absent from the additional form when scheduled updates are created.
To modify this attribute while scheduling new category updates, what additional action should the Architect ask the developer to perform?
AThe attribute must have its apply_to field set to “staging” in the data patch file.
BThe attribute must also be added to view/adminhtml/ui_component/catalogstaging_category_update_form.xml.
CThe attribute must have <item name="allow_staging" xsi:type="boolean">true</item> set in the category_form.xml file under the attributes ‘config’ section.
An Adobe Commerce store owner configures a custom customer attribute, my_attribute, of type int.
An Architect must show customer-specific content on the home page to customers whose my_attribute is greater than 3. The website uses Full Page Cache.
Using best practices, which two steps should the Architect take to meet these requirements?
Choose two
AUse customer-data JS library to retrieve “my_attribute” value
BAdd a new context value of “my_attribute” to Magento\Framework\App\Http\Context
CAdd a custom block and a phtml template with the content to the cms_index_index.xml layout
DCreate a Customer Segment and use “my_attribute” in the conditions
EAdd a dynamic block with the content to the Home Page
An Adobe Commerce Architect needs to scope a bespoke news section for a merchant's Adobe Commerce storefront. The merchant’s SEO agency requests the following URL structure: news/\{date\}/\{article_url_key\}, where \{date\} is the article’s publication date and \{article _url_key\} is the article URL key.
The Architect determines that a news entity type will be created. The date and URL-key data will be stored for each record and automatically generated on save. The values can be overridden manually.
The Architect must manage routing for this functionality while following best practice.
Which two options should the Architect consider to meet these requirements?
Choose two
ACreate 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.
BCreate an observer that listens to the controller_front_send_responce_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.
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 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.
ECreate 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.
An Adobe Commerce Architect is preparing a sales campaign to introduce a new product on the site that enables customers to purchase a predefined set of products at a discount. Each product in the set must retain its own stock and tax class.
A requirement is to use a third-party reporting system with the REST API to retrieve the following data:
SKU
Qty
Original price
Sales price
Tax amount
Which solution should the Architect use to satisfy these requirements?
ACreate Fixed Bundle Product for gathering simple products;Manage price for every selected option;Add extension attribute original_simple_price for \Magento\Sales\Api\Data\OrderItemExtensionInterface and populate value with price of simple product;
BCreate Dynamic Bundle Product for gathering simple products;Utilize Content Staging to manage special prices for bundle products on time for the campaign;Expose required data via Adobe Commerce Order API;
CCreate Grouped Product and create after plugin on \Magento\GroupedProduct\Model\Product\Type\Grouped::prepareForCartAdvanced for bunch products ordering;Utilize Content Staging to manage special prices on time for the campaign for simple products;Expose required data via Adobe Commerce Order API;
A merchant observes that product price updates are not appearing on the storefront.
The Index Management page in the Adobe Commerce Admin Panel shows the following:
All indexes are configured to update by schedule.
Their status is ready.
No items are in the backlog.
The indexes were updated 1 minute ago.
A developer confirms that changing and saving product prices inserts the applicable product IDs into the catalog_product_price_cl changelog table.
Which two actions should the Architect recommend to the developer to resolve this problem?
Choose two
AInvalidate the catalog_product_price indexer in the Adobe Commerce Admin Panel so that it is fully reindexed next time the cron runs.
BManually reindex the catalog_product_price index from the command line: bin/magento indexer:reindex catalog_product_price.
CMake sure that no custom or third-party modules modify the changelog and indexing process.
DMake sure that the version_id for the price indexer in the mview_state table is not higher than the last entry for the same column in the changelog table and re-synchronize.
EReduce the frequency of the cron job to 5 minutes so the items have more time to process.
An Adobe Commerce system is set up in a multi-tier architecture that includes:
A cache server with Varnish installed
A backend web server with Adobe Commerce installed
A database server with MySQL installed
When an Adobe Commerce Architect attempts to clean the cache from Store Admin by selecting Flush Magento Cache in Cache Management, the Full Page Cache is not cleared.
Which two actions should the Architect take to ensure the Full Page Cache works correctly?
Choose two
ASet the backend destination host to the frontend server’s address in the Store AdminStores > Configuration > Advanced > System > Full Page Cache > Varnish Configuration > Backend Host
BSet the backend port destination to the frontend server’s Varnish port in the Store AdminStores > Configuration > Advanced > System > Full Page Cache > Varnish Configuration > Backend Port
CSet the cache type to “Varnish Caching” in the Store Admin.Stores > Configuration > Advanced > System > Full Page Cache > Caching Application
DUse “Flush Cache Storage” instead of “Flush Magento Cache”
ESet the cache destination host using magento CLIbin/magento_setup:config:set -–http-cache-hosts=<cache_server>:<varnish_port>
An Adobe Commerce Architect develops new functionality called Customs Fee, adding a new total for extra costs associated with customs-clearance expenses. The extension enables the fee value to be configured separately for each website through the Adobe Commerce Configuration System.
The Architect intends to cover the new functionality with integration tests. One test case must verify that the total is calculated correctly across different websites.
How should the Architect ensure that test configuration data is added to test methods in accordance with best practices?
AOverride setUp() method, receive instance of \Magento\TestFramework\App\Config, and specify value via setValue() method
BSpecify @magentoConfigFixture annotations for the test methods in PHPDoc
CCreate a fixture file to configure Adobe Commerce and specify it in test method PHPDoc using the @magentoDataFixture annotation
An Architect needs to create an Integration Test that does the following:
Adds a product through a data fixture.
Runs $this->someLogic->execute($product) on the product.
Verifies that the result is true.
$this->someLogic has the proper object assigned in the setUp() method.
Product creation and the tested logic must run in the contexts of two distinct store views, with IDs 3 and 4, which have been created and are available for the test. How should the Architect satisfy these requirements?
ACreate one test class with one test method. Use the \Magento\TestFramework\Store\ExecuteInStoreContext class once in the fixture and another time in the test.
BCreate two test classes with one test method each. Use the @magentoExecuteInStoreContext 3 and @magentoExecuteInStoreContext 4 annotations on the class level.
CCreate one test class with two test methods. Use the @magentoStoreContext 3 annotation in one method and @magentoStoreContext 4 in the other one.
Community Discussion