QuestionQ15

Content, CMS, and Storefront

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
  • A Create 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.
  • B Create 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.
  • C Create 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.
  • D Create 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.
  • E Create 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.
Explanation

URL rewrites are designed to map a customer-facing request path to an internal controller URL, and rewrite records can be generated when the news entity is saved. Alternatively, a custom implementation of RouterInterface can inspect the request path, match the news/{date}/{article_url_key} pattern, locate the corresponding news record, set the internal route and parameters, and forward the request before the standard router handles it. The standard router alone expects a frontName/controller/action URL format, so it does not directly interpret the date and article URL-key segments as the required news record lookup.

Learn more

Community Discussion

No comments yet. Be the first to start the discussion!