You are browsing documentation for version 5.0 of OroCommerce, OroCRM, and OroPlatform, maintained until August 2024 and supported until March 2026. See version 5.1 (the latest LTS version) of the Oro documentation for information on latest features.

See our Release Process documentation for more information on the currently supported and upcoming releases.

Customize Product Lists

Product lists are used to show lists of products grouped by some criteria, for example, new arrival products, featured products, top selling products, up-sell products, etc.

The data for these lists are loaded from the website search index. This was done to avoid unnecessary hydration of product entities, which is quite expensive and requires a lot of database requests.

The main entry point to the product lists is ProductListBuilder. This builder creates a base query to load products from website search index, executes this query and converts the result to a list of ProductView objects. To be able to customize which data should be loaded, this builder dispatches the following events:

PRODUCT_LIST_TYPE here is a unique string that identifies each type of product list. The following product list types are available out-of-the-box:

These events provide a possibility to customize all product lists and a particular product list.