Catalogs
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 for storing products and their related information. Publishing businesses, on the other hand, use catalogs for their articles and section details.
Watch this short introductory video about this feature:
To see your catalogs, go to Data & Assets
> Catalogs
To import a new catalog, follow the guide to imports.
There are two 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, and there are no further predefined ID's. |
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 the type of your catalog during the first import.
Full list of recommended product catalog columns
Column | Type | Description |
---|---|---|
item_id | string | Unique identifier of your product variants (sku, ean - considering sizes, colors, etc.) 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_id | string | Product identifier not considering sizes, colors, etc. More products of the same type have different item_id , but the same product_id . |
title | string | Product name, e.g. Black fitted crew neck t-shirt |
description | string | Description of product. |
active | boolean | Information about product availability. Options: true/false; 0/1 |
brand | string | Brand of product. E.g.: Nike, Adidas... |
category_ids | list | Internal id of category from your e-commerce tool. E.g.: 12345 |
category_level_1 | string | Name of first level category, where the product belongs, e.g.: Shoes |
category_level_2 | string | |
category_level_3 | string | |
category_path | string | Full path of category tree, where product belongs delimited by pipe “|". E.g.: Tops | T-shirts | V-neck t-shirts |
color | string | Main color of product. E.g.: red |
gender | string | Gender for which is product designed. Options: Male / Female / Unisex |
image | string | Url to main product image (not thumbnail). E.g.: http://… |
lead_time | string | Time needed for re-stocking of the product from the supplier. E.g.: 7 |
supplier | string | Identification of supplier for this product (name / id). |
size | string | Size of product for current EAN / SKU. E.g.: XL / 12 / ... |
url | string | Direct url to product on your site. E.g.: http;// |
stock_level | integer | Number of product of given ean in stock. |
cost_per_unit | float | Price of product without your margin (cost of product). |
discount_percentage | float | Percentual discount. E.g.: 50 |
price | float | Final price displayed to your customer (already discounted by “discount” field) |
returned_products | string | Number of returned products of this type (per ean / sku). |
date_added | timestamp | Time of first occurrence on your stock. |
Catalogs should never contain PII (personally identifiable information) such as emails and/or phone numbers etc.
Catalogs that have not been used in the previous 90 days (i.e., no access from app/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.
We also want to 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
Importing a Catalog
Read our guide to imports to learn how to import your catalog.
Downloading a Catalog
Downloading/exporting catalogs is not possible.
Common use cases
Showing a Web Layer 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 propertyitem_id
that matches theitem_id
in the product catalog)
Design a new Web Layer where you can 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>
Updated about 1 month ago