React UI Reference
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.
React component API
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
component
The DepictProvider
is a wrapper component for the root component of your entire application. It provides configuration to all Depict UI components beneath it.
return (
<DepictProvider merchant="MERCHANT_ID" market="MARKET_IDENTIFIER">
<div className="App">...</div>
</DepictProvider>
);
The following table shows all DepictProvider
configuration properties, their types, and descriptions:
This is the unique merchant identifier given by Depict.
This specifies the market identifier.
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
.
Configuration object lets you customize your website’s search parameters.
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.
A <string, string> map of custom metadata to include in API requests to Depict
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 CategoryPage
component
The CategoryPage
component renders your site’s different product category pages.
return (
<div>
<CategoryPage
categoryId="CATEGORY_IDENTIFIER"
productCard={ProductCard}
columnsAtSize={[[4], [3, 1024], [2, 901]]}
categoryTitlePlugin={EmbeddedNumProducts}
/>
</div>
);
The following table shows all CategoryPage
configuration properties, their types, and descriptions:
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"
..
- If
id
is"listingId"
, it should be a uuid where Depict is the source of truth, you can get them here: https://api.depict.ai/docs#tag/Listing/operation/Get_Listings_v3_listings_get. - If
id
is"externalId"
, it should be the id of the product listing in your system - whatever was passed to Depict during data ingestion.
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.
Your custom ProductCard
component that receives and renders your category
data
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.
The spacing between products.
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
The layout used for listing the products.
"grid"
is the default and shows the products in a grid"slider"
shows the products in a slider and has defaultfalse
for showBreadcrumbs and showQuicklinks"slider-without-filters"
is the same as"slider"
but does also not render any sorting or filter buttons
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.
The BreadCrumbs
component
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.
import { BreadCrumbs } from "@depict-ai/react-ui";
const CategoryMain = () => {
return (
<>
<BreadCrumbs />
</>
);
};
The following table shows all BreadCrumbs
configuration properties, their types, and descriptions:
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
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.
import { QuickLinks } from "@depict-ai/react-ui";
const Carousel = () => {
return (
<>
<QuickLinks />
</>
);
};
The following table shows all QuickLinks
configuration properties, their types, and descriptions:
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.
Was this page helpful?