Creating product feed
A product feed is a file with information about products available in your online store – such as product name, regular price, discounted price, and availability.
Product feed data is used in:
- Recommendations
- Events such as abandoned cart and abandoned browsing, which include product details
Two ways to build your product feed#
Before you start, decide which method works best for your setup:
- Self-build – the ECDP tracking script you’ve already placed on your store’s website collects product data in the background. No manual file preparation needed, but it takes about 7 days to cover 90% of your feed.
- Import from file – you prepare a product feed file (XML or CSV) and point ECDP to its URL. Products are available right after a successful import.
If you manage multiple websites, you can only add one product feed per website.
Self-building product feed
This method requires Web Tracking channel configuration, which involves placing a tracking script on your website. The script collects product information from each visited product page and sends it to the product feed in ECDP.
Adding 90% of products takes about a week. Product pages that haven’t been visited won’t be added to the feed.
If you change a product’s price, it will be updated in the feed during the customer’s next visit.
How to enable self-building feed
- Go to Settings > Web tracking > Websites.
- Click Create new website.
- Add a website name, URL, and an optional description.
- Select the website’s primary language.
- Check Activate self-building product feed.
- Check Overwrite products added through import – this replaces product information imported from a file with data collected through automatic feed building.
- Click Save.
Importing a product feed from a file
Importing a product feed from a file
Before creating a product feed in ExpertSender CDP, prepare the file according to our guidelines below.
File format
The product feed must be a file in one of the following formats:
- XML
- CSV
Compressed files (.zip and .gz) are not supported.
Product parameters
Each product in the feed file should contain the following parameters:
| Parameter | Data type | Required | Description |
| Product ID | string | yes | The product’s ID in your store |
| Name | string | yes | Name displayed on your store’s page |
| Product URL | URL | yes | URL of the product page |
| Image URL | URL | yes | URL of the product image |
| Price | decimal | yes | Standard product price |
| Current price | decimal | yes | Price at the time the customer views the product, e.g. with a seasonal discount |
| Omnibus price | decimal | yes | The lowest price offered in the 30 days before the current promotion |
| Availability | boolean | yes | Whether the product is currently in stock; accepted values are true or false |
| Category | string | no | Category name assigned to the product, e.g. sports footwear, hiking backpacks. Can also be a number. |
File hosting
The feed file must be hosted on your store’s website and accessible via a URL, for example: https://www.yourstore.com/feed.xml
Both https and http protocols are supported.
Add a product feed in XML format
- In Web Tracking > Product feeds, click Create product feed.
- Select XML from the list.
- Proceed to feed configuration.
Basic settings
- Enter a name for the product feed.
- Select the website the feed relates to.
- In the Custom XML file field, enter the URL where the feed file is available.
- Set the schedule for how often ECDP should fetch data from the feed:
- Every 3 hours – product data will be fetched every 3 hours.
- Custom mode – specify your preferred frequency using a cron expression.
Mapping
Mapping lets you match data from your file to the corresponding product parameters in ECDP.
- Select the currency used in your product feed for the Price and Sale price fields.
- In the Product path section, indicate where products are located in the file:
- Click Select.
- A panel showing the feed structure will open – it works similarly to a folder view. Expand the elements and select the one that represents a single product. In most feeds, this will be the product element inside the main feed element.
- Once you select the product location, ECDP will read and display all system product attributes below, such as price, category, and image URL.
- Then, assign each attribute’s location the same way – click … and select the appropriate attribute from the list.
Preview
- Go to the preview and verify that the parameters have been correctly mapped to products in the file.
- If you notice an issue:
- A parameter is mapped incorrectly – go to the Mapping tab and reassign the correct location for that parameter.
- A parameter or value is missing from a column – update your product feed file and upload it again.
- If the data looks correct, click Save to complete the feed configuration.
Add a product feed in CSV format
- In Web Tracking > Product feeds, click Create product feed.
- Select CSV from the list.
- Proceed to feed configuration.
Basic settings
- Enter a name for the product feed.
- Select the website the feed relates to.
- In the Custom CSV file field, enter the URL where the feed file is available.
- Set the schedule for the ECDP to periodically import information from the file:
- Every 3 hours – product information is imported every 3 hours.
- Custom mode – set your own frequency for importing data from the file. You can set any frequency using the cron expression.
Settings
- Select the currency used in your product feed for the Price and Sale price fields.
- Under Advanced settings, specify how product data is structured in your feed – this helps us read the data correctly.
- First, indicate how values are separated in your feed:
- Tab – enable Use Tab as value separator
- Comma or semicolon – if you’re not using a tab, enter the appropriate character in the Value separator field
- The file has headers – enable this if each data column in the file has a header or title. These will be skipped when the file is imported.
- Then, specify any additional characters used in your feed:
- Quote character – indicate which character is used to wrap values so they are read rather than split. Useful for data like prices that use commas for decimal values (e.g. cents).
- Escape character – indicate 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 – indicate the character used to mark comments in the feed. These will be skipped during 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.
- First, indicate how values are separated in your feed:
Check the Preview to see how the data from your file has been read.
Mapping
Mapping assigns product attributes from your file to the corresponding attributes in the platform.
During mapping, 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 attribute (system or custom) 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. Your product feed is ready.
Common issues
The feed isn’t filling up after setup If you’ve enabled automatic creation, give it up to 7 days. The tracking script collects product 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 expected behavior.
A product’s price or details are outdated Automatic feed updates happen on the customer’s next visit to that product page. For the product feed imported from a file, check the file download schedule If you need an immediate update, you can force the feed file download manually.
The import failed Check that your file is publicly accessible at the URL you provided and that it’s in a supported format (XML or CSV, uncompressed). Then verify that all required parameters are present and correctly formatted – especially that boolean values for availability are true or false, not 1/0 or yes/no.
Products are missing after import Go to the Mapping tab and confirm that all required attributes and parameters – especially Product ID, Name, URL, and Price – are correctly assigned. A missing or mismatched mapping is the most common cause of incomplete imports.
The feed isn’t updating on schedule Double-check your cron expression in the Custom mode 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.