Creating product catalog
A product catalog is a set of items available on your website, that can be used to power personalization, recommendations, and automation across your channels.
Once created and filled with products, it can be shared with multiple websites and mobile apps that sell the same offer.
Product catalogs are used for:
- creating product recommendations.
- creating personalized content, such as e-mail campaigns and scenario messages, banners and pop-ups, based on user interaction with the offer on your website.
- creating previews and testing e-mail messages.
- event-based scenarios, such as abandoned carts, abandoned browsing or price drops.
Product catalog characteristics
Each product catalog you create in ECDP has:
- ID and name used to identify the catalog when connecting it to a website or mobile app.
- Number of websites and apps linked to this catalog. A source can be connected to exactly one catalog at a time, but one catalog can serve several sources at once. To see the exact websites and apps connected to a specific catalog, hover over the number displayed in the Websites and apps column.
- System and custom product attributes that define the items in the catalog. They apply at the business unit level, not per catalog.
- A set of products added through file import or tracking data on your website (self-building catalog). You can browse the catalog content for a specific website using the Browse action.
A catalog has no active/inactive status – it exists until you delete it. You can only delete a catalog that isn’t connected to any active website or mobile app.
Start by creating a product catalog. Then add custom product attributes, and finally, add the products.
Create a product catalog
- Go to Settings > Product catalogs.
- Click Create product catalog.
- Add a catalog Name.
- In the Max product inactivity time field, enter how many hours should pass since the last tracked customer visit on a product page before the product is removed from the catalog. The default time range is 48 hours. The removed products will not be included in recommendations or marketing content. Once the script records a page visit in previously removed product, it will re-appear in the catalog and will be available for marketing actions.
- Save the settings.
Product catalog for a website in multiple languages
A product catalog should be maintained in one language. If your website and app use the same language, both can use the same product catalog instead of maintaining two identical catalogs.
In case you manage a few websites in different languages, each one should use a separate catalog in its own language.
Product catalog for a website with multiple currencies
If your website manages several currencies, you don’t need to create separate product catalogs to handle them. The currencies will be added gradually by a tracking script or a file import.
In ECDP, go to Settings > Product catalogs > Browse action to view the catalog in each currency available on your website.
Add product attributes
Product attributes are pieces of information that describe the products, such as price, brand, color, or availability. In ECDP, you can use them to personalize your marketing campaigns or target product recommendations more precisely.
There are two types of attributes used in ECDP:
- System attributes, such as ID, price, and availability. They are required for every product except Category (see the table below) – make sure they are available on every product page, preferably in your website’s dataLayer and in the imported feed file. System attributes appear automatically in Settings > Product catalogs > Product attributes and cannot be modified.
- Custom attributes, which are optional product details. If you define such attributes on your product pages or in a feed file, also define them in Settings > Product catalogs > Product attributes before adding products to the catalog.
Now, let’s look at the requirements for system and custom attributes.
System attributes
Each system attribute in a product catalog should match this specification:
| Attribute | Data format and type | Required | Description |
| Product ID | string | yes | A unique identifier for the product in your store. |
| Name | string | yes | The product name visible to the customer. |
| Product URL | URL | yes | The URL address of the product page. |
| Image URL | image (URL) | yes | The URL address of the product image. |
| Price | money (decimal) | yes | The standard product price. |
| Sale price | money (decimal) | yes | The price the customer sees at the moment of viewing the product, e.g., with a seasonal discount applied. |
| Omnibus price | money (decimal) | yes | The lowest price offered in the 30 days before the current promotion. |
| Availability | yes/no (boolean) | yes | Whether the product is currently available; possible values are true or false. |
| Category | string | no | The product category, e.g. sports footwear, can also be a number. Use ‘>’ to separate nested categories. |
Custom attributes
If you use additional attributes to describe or define your products, you can add them to the product catalog in Settings > Product catalogs > Product attributes. We recommend doing it before importing the feed file or implementing the tracking script on your website.
You can create up to 20 custom product attributes.
The attribute names in the system must match the attribute names in the feed file and on your website. Otherwise, the attributes will not be added correctly and will not be available for marketing actions.
Create a custom attribute
- Go to Settings > Product catalogs > Product attributes.
- Click Create custom product attribute.
- In the Name field, enter a name that matches the attribute names in the feed file and on your website.
- In the Type field, select the data type that fits the attribute:
| Format | Data type | Description |
| String | string | Short text up to 256 characters, including digits, letters, symbols. |
| Text | string | Longer description, up to 2048 characters. This data format is not used in segmentation. |
| Number | integer | A whole number without a decimal part, e.g. product weight. |
| Money | double | A numeric value in currency. |
| Date | string | Date in DD-MM-YYYY format. |
| Date and time | string | Date and time in DD-MM-YYYY hh:mm format. |
| Yes/No | boolean | Allowed values: true, false. |
| URL | string | A link to a page, up to 256 characters. |
| Image | string | A link to a product image, up to 256 characters. |
| Set | string | A list of values separated by a delimiter, e.g. a comma or “>”. |
- Optionally, add a Description to help your associates understand how to use the attribute.
- Save your changes.
Add products to your catalog
In ECDP platform, you can add products to the catalog in two ways:
Method 1: tracking data updates
The first method uses tracking data fetched by the ECDP tracking script installed on your website. The script tracks customer product visits and adds these products to the catalog. It takes about 7 days to cover 90% of your offer. Product pages that haven’t been visited won’t be added to the catalog. The tracking script also updates existing products based on customer visits.
Turn on the tracking data updates for a product catalog:
- Go to Settings > Websites.
- Click Create new website to add a new website or choose Edit action to modify existing website’s settings.
- In the Product catalog > Choose catalog section, select a previously created catalog you want to use.
- In the Product catalog > Catalog settings section, select Activate self-building product catalog.
- Save the settings.
Method 2: cyclical import of a product feed file
The second method is importing products from a feed file. The catalog is created and updated through cyclical feed imports. Products are available right after the import is completed.
If a product added to a previous import is not present in the next scheduled one, it will be removed from the catalog.
Feed file requirements
- Format: XML or CSV, not compressed.
- File hosting: the file must be hosted on your store’s website and be publicly accessible via a URL, for example: https://www.yourstore.com/feed.xml. Both https and http protocols are supported.
- File content: the file should contain the required system attributes and custom attributes, if they appear in the file.
Once your product feed file is ready, let’s import it into the ECDP platform. The process differs slightly depending on the file format.
Schedule product feed imports from an XML file
- In Product catalogs > Imports, click Create cyclical import.
- Select XML from the list.
- Configure the feed import following the next steps.
Basic settings
- Enter a name for the import.
- Select the product catalog this import relates to.
- In the XML file field, enter the URL where the feed file is available.
- Set the schedule for how often ECDP should import product data from the feed:
- Every 3 hours – product data will be fetched every 3 hours.
- Custom mode – specify your preferred frequency: hourly, daily, or a specific time set with a CRON expression.
Mapping
Mapping lets you match product data from the feed file with the product data in ECDP.
- Select the Currency used in your product feed for the Price and Sale price fields.
- In the Product path section click Choose to indicate the product feed location:
- A panel showing the feed structure will open – it looks similarly to a nested folder view.
- Expand the elements if necessary and select the one that represents a single product. In most feeds, this will be the element called product located inside the main feed element.
- Once you select the product location, ECDP will read and display all system and custom product attributes below.
- Assign system and custom attributes
- Click the Choose button.
- Select the corresponding attribute name from the list.
- Repeat for each attribute listed in this section.
Preview
- Go to the Preview section and check if the attributes have been mapped correctly.
- If you notice an issue:
- An attribute is mapped incorrectly – go to the Mapping tab and reassign the correct location for that attribute.
- An attribute or its value is missing from a column – update your feed file and upload it again.
- If the data are correct, click Save to complete the import configuration.
Schedule product feed imports from a CSV file
- In Product catalogs > Imports, click Create cyclical import.
- Select CSV from the list.
- Configure the feed import following the next steps.
Basic settings
- Enter a name for the import.
- Select the product catalog this import relates to.
- In the CSV file field, enter the URL where the feed file is available.
- Set the schedule for how often ECDP should import product data from the feed:
- Every 3 hours – product data will be fetched every 3 hours.
- Custom mode – specify your preferred frequency: hourly, daily, or a specific time set with a CRON expression.
Settings
- Select the Currency used in your product feed for the Price and Sale price fields.
- In the Advanced settings section specify how product data is structured in your feed – this helps us read the data correctly.
- Indicate how values are separated in your feed file:
- Tab – enable Use Tab as value separator
- Comma or semicolon – enter the character in the Value separator field
- The file has headers – enable this option if each data column in the feed file has a header or a column name. Headers will be skipped during the import.
- Define any additional characters used in your feed:
- Quote character – indicates which character is used to wrap the values so they are read as one phrase rather than split. The quote character is useful for data like prices, which often use commas for decimal values (e.g. cents).
- Escape character – indicates the character or sequence that prevents the next separator or quote character from being treated as a delimiter, making it part of the value instead.
- Comment character – indicates the character used to mark comments in the feed. These will be skipped during the import.
- Character encoding – select the appropriate value from the list. A quick tip: the most common encoding is Unicode (UTF-8), which also supports Polish characters.
- Indicate how values are separated in your feed file:
Check the Preview to see how the data from the feed has been read.
Mapping
Mapping assigns product attributes present in the feed to the attributes in ECDP.
In this section, columns from the file are displayed horizontally, with data from each column shown in rows.
- Click the dropdown on the left side of each row.
- Select the system or custom attribute that matches the data displayed in that row. If a row shows a product name, select Name. If it shows a product page URL, select URL.
- Repeat for all rows.
- Once all attributes are assigned, click Save. The file import is ready.
Updating product catalog between imports#
You can use tracking data to update the catalog between the cyclical imports. import. This lets you collect more recent product data directly from the website and update the catalog instead of waiting for the scheduled import.
To enable this option:
- Go to Settings > Websites.
- Select Edit action to modify existing website’s settings.
- In the Product catalog > Catalog settings section:
- First, select Activate self-building product catalog.
- Then, select Overwrite products added through import. This option replaces product data imported from a feed file with data collected by the tracking script.
- Save the settings.
When Overwrite products added through import option is turned off, the script does not update the products that already exist in the catalog. However, if a new product appears on the website before the next import, the script will add it to the catalog.
Troubleshooting
The feed isn’t filling up after setup
If you’ve enabled product updates with tracking data, give it about 7 days to fill the catalog. The tracking script collects data only when a customer visits a product page, so products that haven’t been visited yet won’t appear in the feed. This is an expected behavior.
A product’s price or details are outdated
Product updates happen when the customer visits that product page. For feed imports, check the import schedule. If you need an immediate update, you can force the feed import manually.
The import failed
Check if your file is publicly accessible at the URL you provided and that it is in an XML or CSV format. Then, verify that all required attributes are present and correctly formatted – especially the boolean values for availability, which must be true or false, not 1/0 or yes/no.
Products are missing after importing
This can be caused by:
- Mapping issues. Go to the Mapping tab and confirm that all required attributes and parameters, especially Product ID, Name, URL, and Price, are correctly assigned.
- A product has been removed from the feed file. If a product is not present in the next scheduled import, it will be removed from the catalog. Add the missing product to the feed file and wait for it to be imported according to the schedule, or force the import manually.
The feed isn’t updating on schedule
Double-check your CRON expression in the Custom schedule settings. If you’re using the “Every 3 hours” option, make sure the feed file at your URL is being updated on your store’s side as well.