You are browsing upcoming documentation for version 6.0 of OroCommerce, OroCRM, and OroPlatform, scheduled for release in 2024. Read version 5.1 (the latest LTS version) of the Oro documentation to get up-to-date information.

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.