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.

TypeScript
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:

merchant
string

This is the unique merchant identifier given by Depict.

market
string

This specifies the market identifier.

search?
object

Configuration object lets you customize your website’s search parameters.

locale
object

This handles the Depict Search UI translations and price formatting, gotten from the Depict locale object.

navigateFunction?
(href: string) => void

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

userId?
string

Identifies a logged in user, if applicable

metaData?
object

A <string, string> map of custom metadata to include in API requests to Depict

pageURLCreator?
function

A function that can be used to create page_urls inside of the displays and otherwise modify all displays before the productCard’s are rendered. See Creating page URLs and enriching product data

The CategoryPage component

The CategoryPage component renders your site’s different product category pages.

TypeScript
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:

categoryId
string

The unique identifier for the current product category that will be sent to depict to get the products to display.

categoryTitlePlugin
(typeof CategoryTitle | typeof EmbeddedNumProducts)?
default: "CategoryTitle"

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.

productCard
React.Element<typeof Component

Your custom ProductCard component that receives and renders your category data

columnsAtSize
array?
default: "[[2,901],[3,1024],[4]]"

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.

gridSpacing
(string | { horizontal: string; vertical: string })?
default: "2%"

The spacing between products.

showBreadcrumbs
boolean?
default: "true"

Handles whether or not to show the default breadcrumbs on the category page.

showQuicklinks
boolean?
default: "true"

Handles whether or not to show the default quick links on the category page.

listingType
("collection" | "category")?

Whether this page is a collection or a category. If not specified it will be inferred as described here.

stateKey
string | undefined

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.

contentBlocksByRow
(undefined | ReactContentBlock)[]?

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.

tsx
import { BreadCrumbs } from "@depict-ai/react-ui";

const CategoryMain = () => {
  return (
    <>
      <BreadCrumbs />
    </>
  );
};

The following table shows all BreadCrumbs configuration properties, their types, and descriptions:

stateKey
string | undefined

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.

tsx
import { QuickLinks } from "@depict-ai/react-ui";

const Carousel = () => {
  return (
    <>
      <QuickLinks />
    </>
  );
};

The following table shows all QuickLinks configuration properties, their types, and descriptions:

stateKey
string | undefined

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.