A Catalog is a lookup table with one primary key item_id that can be used in various ways. E-commerce websites typically use catalogs to store products and related information. Publishing businesses use catalogs for their articles and section details.

Watch this short introductory video about catalogs in Bloomreach Engagement.

To see your catalogs, go to Data & Assets > Catalogs.

To import a new catalog, follow the guide to imports.

Catalog types

There are 2 types of catalogs in Bloomreach Engagement:

  • General catalog: This type of catalog can serve as a generic lookup table for your project. item_id is the only required column as the primary key. There are no further predefined IDs.
  • Product catalog: Product catalogs are designed to store information about your products. They have a specific data structure that helps Bloomreach Engagement identify the most important information that will be used for recommendations, inventory management, and stock level calculation.

You can define your catalog type during the first import.

Recommended product catalog columns

ColumnTypeDescription
item_idstringUnique identifier of your product variants (sku, ean - considering sizes, colors)

Note that to enable edits using our Catalog API, it is recommended to use item_id's that do not contain /. Due to the way the endpoint is decomposed, edit attempts will not work with item_id's containing /. Notice that using / also affects edits via the platform UI.
product_idstringProduct identifier not considering sizes, colors, and so on. More products of the same type have different item_id, but the same product_id.
titlestringProduct name, for example, Black fitted crew neck t-shirt.
descriptionstringDescription of product.
activebooleanInformation about product availability. Options: true/false; 0/1
brandstringBrand of product. For example, Nike, Adidas
category_idslistInternal ID of category from your e-commerce tool. For example: 12345
category_level_1stringName of first level category, where the product belongs. For example, Shoes
category_level_2string
category_level_3string
category_pathstringFull path of category tree, where product belongs delimited by pipe “|". E.g.: Tops | T-shirts | V-neck t-shirts
colorstringMain color of product. For example: red
genderstringGender for which is product designed. Options: Male / Female / Unisex
imagestringURL to main product image (not thumbnail). For example: http://…
lead_timestringTime needed for re-stocking of the product from the supplier. For example: 7
supplierstringIdentification of supplier for this product (name / id).
sizestringSize of product for current EAN / SKU. For example: XL / 12 / ...
urlstringDirect URL to the product on your site. For example: http;//
stock_levelintegerNumber of products of given ean in stock.
cost_per_unitfloatPrice of product without your margin (cost of product).
discount_percentagefloatPercentual discount. For example: 50
pricefloatFinal price displayed to your customer (already discounted by “discount” field)
returned_productsstringNumber of returned products of this type (per ean / sku).
date_addedtimestampTime of first occurrence on your stock.

🚧

Important

Catalogs that have not been used in the previous 90 days (that is, no access from app or UI and no import) will be automatically deleted. All respective scenarios will remain editable. This change will be introduced on April 4, 2023. On that day, all catalogs unused since January 1, 2023 will be deleted.

Import a catalog

Read our guide to imports to learn how to import your catalog.

Download a catalog

Downloading and exporting catalogs is not possible.

Personally identifiable information

Catalogs should never contain personally identifiable information (PII) such as emails or phone numbers.

Limitations

We encourage fair usage of catalogs with the following limits:

  • Max number of catalogs per project: 50
  • Max number of items within one catalog: 6,000,000

Show a weblayer with the last visited product on the homepage

Requirements

  • Catalog with required columns (item_id, picture_url, link_url, price, available).
  • Event tracking (Track event view_item on every page visit of a product page. Track with property item_id that matches the item_id in the product catalog)

Design a new weblayer to show an item based on the last viewed item. Create an aggregate to get last(view_item) 'item_id'. In personalization, find your aggregate and use it in catalog lookup personalization.

{% set item = catalogs.products.item_by_id(aggregates['586e0b8d830434e7cc369263']) %}

To check if an item is available and print values from the catalog:

{% if item and item.available == "true" %}
    {{ item.picture_url }}
    {{ item.link_url }}
    {{ item.price }}
{% endif %}

Recommendations

A catalog is required when using a recommendation engine. The resulting recommendations will be presented in a list of item_ids. To use these recommendations in an email or web layer you can use a catalog lookup as in the example below.

<ul id="recommendations">
  {% for item in recommendations['58aee25afb6009bfe0852332'][:8] %}
  <li> <a href="{{ item.link_url }}">{{ item.title }}</a> </li>
  {% endfor %}
</ul>