---
title: Build product listing pages
slug: p8dg0472
canonical_url: https://docs.coveo.com/en/p8dg0472/
collection: coveo-for-commerce
source_format: adoc
---
# Build product listing pages
> **Important**
>
> Atomic for Commerce components are in open beta and remain under active development.
>
> Atomic for Commerce hasn't yet gone through a formal accessibility review.
> If you have accessibility needs, contact your customer success manager and we'll work with you to address them.
All [product listing pages (PLPs)](https://docs.coveo.com/en/m1sf3187/) in Atomic use the [`atomic-commerce-product-list`](https://static.cloud.coveo.com/atomic/v3/storybook/index.html?path=/docs/atomic-commerce-product-list\--docs) component to fetch product listings and display the products.
It must be placed inside a [`atomic-commerce-interface`](https://static.cloud.coveo.com/atomic/v3/storybook/index.html?path=/docs/atomic-commerce-interface\--docs) with the `type` attribute set to `product-listing`.
## Prerequisite
Make sure that you understand how to [build product listing pages (PLPs)](https://docs.coveo.com/en/o4ue0471/).
## Code Sample
Following is a minimal example of a product listing page built with Atomic for Commerce.
This uses [`getSampleCommerceEngineConfiguration`](https://docs.coveo.com/en/headless/latest/reference/functions/Commerce.getSampleCommerceEngineConfiguration.html) from `@coveo/headless/commerce` for its configuration.
This won't work in a production environment.
For a detailed breakdown of how to configure your product listing interface, refer to the Coveo Headless documentation for
[`CommerceEngineConfiguration`](https://docs.coveo.com/en/headless/latest/reference/interfaces/Commerce.CommerceEngineConfiguration.html).
```html
Example Product Listing Page
<2>
<5>
```
<1> Import the Atomic for library. This is responsible for handling the web components.
<2> Link the Coveo theme stylesheet. This provides the default styling for the web components.
<3> Import the Headless for Commerce library to get the sample configuration. When providing your own configuration you won't need to import this function.
<4> Initialize the `atomic-commerce-interface`.
<5> The product list page for the interface. For additional options refer to [Product listing page components](#product-listing-page-components).
You can find a complete example of a product listing page in [Storybook](https://static.cloud.coveo.com/atomic/v3/storybook/index.html?path=/story/product-listing-page\--default).
## Product listing page components
A product listing page typically consists of a list of products, as well as components to filter and navigate the products.
Here is a list of useful Atomic components that can be added to a product listing page:
* [`atomic-commerce-search-box`](https://static.cloud.coveo.com/atomic/v3/storybook/index.html?path=/docs/atomic-commerce-search-box\--docs): A product listing page can have a [standalone search box](https://docs.coveo.com/en/p8bg0188#standalone-search-box) that lets users perform product searches and redirects them to a search page.
* [`atomic-commerce-facets`](https://static.cloud.coveo.com/atomic/v3/storybook/index.html?path=/story/atomic-commerce-facets\--docs): This component renders facets that let users filter products by category or by attributes such as product price or color.
* [`atomic-commerce-sort-dropdown`](https://static.cloud.coveo.com/atomic/v3/storybook/index.html?path=/docs/atomic-commerce-sort-dropdown\--docs): This component renders a dropdown that lets users choose how to sort query products, such as by relevance, date, or product price.
* [`atomic-commerce-pager`](https://static.cloud.coveo.com/atomic/v3/storybook/index.html?path=/docs/atomic-commerce-pager\--docs): This component renders a pager that lets users navigate through paginated product results.
* [`atomic-commerce-load-more-products`](https://static.cloud.coveo.com/atomic/v3/storybook/index.html?path=/docs/atomic-commerce-load-more-products\--docs): This component lets users load additional products if more are available.
> **Note**
>
> The `atomic-commerce-pager` and `atomic-commerce-load-more-products` components can't be used together.