Learn more about our React SDK, its components and configuration.
The Depict Category Page UI React SDK enables seamless integration of Depict Category Page UI into your React web applications. With our developer-friendly components and wrappers, you can effortlessly render all product categories to your eCommerce website.Please find the guide on how to integrate with depict if you’re using react here.
The SDK is pre-built with React components and wrappers, making it a perfect fit for React.js and Next.js web applications. The following sections describe these components and their configuration.
The DepictProvider is a wrapper component for the root component of your entire application. It provides configuration to all Depict UI components beneath it.
Locale object imported from @depict-ai/react-ui/locales. Determines
The translations for the UI
The locale to request from backend
The currency formatting used on the frontend
You have to check demo.depict.ai to see which locales the Depict backend accepts for your specific merchant.
The different objects exported from @depict-ai/js-ui/locales have a backend_locale_ property equivalent to their name, so either import the locale with the correct name (recommended) or just set the backend_locale_ property to the correct value.You can modify or create your own locale object as long as it’s the same format as the ones in @depict-ai/js-ui/locales.
This function will be used internally by our components to navigate between
Depict Search UI pages.This prop is required in all applications that don’t
use Next.JS
Optionally you can override the default session id used for personalization here. This is the ID that will be used to tie together the different tracking events for a user.
DisplayTransformers are functions that take in a list of categories, content search results or products and then can transform or enrich the data for each category, content search result or product card in a batched way. See
Creating page URLs and enriching product
data.
The unique identifier for the current listing page that will be sent to
depict to get the products to display.
type can be "listingId" or "externalId"..
Accepts one of two “plugins” that determines the layout of your category page.
The default value—CategoryTitle—displays the current category title above
the product cards. Alternatively, you can opt not to show the category title
above the product card by using the EmbeddedNumProducts function imported
from the @depict-ai/react-ui SDK. This option is ideal for merchants who
prefer to create their titles on the category page. If the latter, the SDK
will attempt to position it between the sort and filter button on smaller
screens to save space.
Used to customize breakpoints on category pages. Handles the number of product
card columns displayed at each screen size. Example: [[2, 901], [3, 1024], [4]] means 2 columns at sizes up to 901px, 3 columns at sizes up to 1024px
and after that 4 columns at any viewport size.
Handles whether or not to show the default breadcrumbs on the category page. If layout is set to
"slider" or "slider-without-filters" this will be set to false by default
Handles whether or not to show the default quick links on the category page. If layout is set to
"slider" or "slider-without-filters" this will be set to false by default
When using multiple CategoryPage components on the same page, you need to set
a unique stateKey for each one, otherwise leave this unset. We recommend using
an incrementing number, such as “1”, “2”, “3”, etc. To associate a certain
BreadCrumbs or QuickLinks component with a certain CategoryPage component, set
the same stateKey on both.
A sparse array containing content blocks to show (or an empty slot or undefined if there’s no block at that index). See ReactContentBlock for how a content block looks like. The index is the row where the content block should be shown.
ReactContentBlock type definition
Copy
Ask AI
/** * The interface for a content block. * Please make sure that you don't have content blocks overlap as that will cause undefined behavior. * The height of the content block will be the height of the tallest item in a row, so if there are no products in a row the content block needs to "bring its own height". * If you need to load any data in the content block, please make sure to return a placeholder while you're doing so (see `ImagePlaceholder`), to avoid layout shifts and ensure scroll restoration works correctly. * * - `spanColumns`: How many columns the block should span. This will be capped to the number of columns available. * - `spanRows`: How many rows the block should span. * - `position`: Where the block should be positioned. Can be `left`, `center` or `right`. * - `content`: The content to render in the block - please provide a React component. */export type ReactContentBlock = { spanColumns: number; spanRows: number; position: "left" | "center" | "right"; content: React.FC;};
Breadcrumb navigation helps users know their location in the category tree by providing a trail back to the root category. By default, the CategoryPage component contains breadcrumb navigation. You can disable its default breadcrumb navigation by setting the showBreadcrumbs property to false. To add a custom breadcrumb navigation, import the BreadCrumbs component from the SDK and nest it in the desired location on your DOM tree.
When using multiple CategoryPage components on the same page, you need to set
a unique stateKey for each one, otherwise leave this unset. We recommend using
an incrementing number, such as “1”, “2”, “3”, etc. To associate a certain
BreadCrumbs or QuickLinks component with a certain CategoryPage component, set
the same stateKey on both.
The QuickLinks component shows all available product categories in a carousel for easy navigation. By default, the CategoryPage component contains quick link navigation. You can disable its default quick link navigation by setting the showQuicklinks property to false. To add a custom quick link navigation, import the QuickLinks component from the SDK and nest it in the desired location on your DOM tree.
When using multiple CategoryPage components on the same page, you need to set
a unique stateKey for each one, otherwise leave this unset. We recommend using
an incrementing number, such as “1”, “2”, “3”, etc. To associate a certain
BreadCrumbs or QuickLinks component with a certain CategoryPage component, set
the same stateKey on both.