Product feeds

A product feed is a file that is available on an online location that can be used by ChannelEngine to import all the products, attributes, stock and price levels. The requirements for a product feed are listed below.

Product feed format

Feeds should be provided in XML or CSV, when using CSV the following delimiters are allowed:

  • Semicolon ;
  • Comma ,
  • Pipe |
  • Tab \t

Each product must have a unique MerchantProductNo (SKU, ID) which makes the product unique in our database.

It is possible to import/use multiple products feeds, as long as there are no duplicate identifiers. The product feeds can be managed and added in the product feed overview, which is accessible by clicking on the product feed box on the dashboard, or by clicking on Products > Product feeds in the menu on the left.

By pressing the “+  Add feed“ button, a new feed can be added to ChannelEngine.

Password protected feeds / FTP feeds

To import a feed which is protected using HTTP basic auth, use the following format:  https://[Username]:[Password]
For example:

To import a feed using FTP, use the following format: ftps ://[Username]:[Password]
For example: ftps://

Please note that we do not accept unencrypted FTP-connections, but support both SFTP and FTPS (implicit and explicit) connections. Unencrypted http locations are allowed, but https has our preference.

Also take into account that special characters are automatically converted to their HTML encoded counterparts when using an URL, which can cause issues with authentication. Therefore it's advised to not use special characters such as $ # % ^ & * in your password to prevent any authentication errors.

Mapping feeds

When an XML feed is loaded, you might be asked to provide the node, which contains the product information, from a dropdown.

The feed attributes have to be mapped to ChannelEngine attributes. At the left side, the feed field names and a preview of the content will be shown. At the right, a corresponding field has to be selected so ChannelEngine knowns which fields to import. It is possible to select one of the existing fields, but all custom attributes and specifications can be imported by selecting “custom field” and writing down a name. By pushing the ‘save’ button when done, the mapping will be saved and the feed will be imported.

Since we offer the possibility to use multiple product feeds we recommend using the following values:
Not mapped - Clear value: useful when this field should be a fixed value. The fixed value can be mapped in channel mapping.
Not mapped - Keep value: useful when your second product feed already fills this field. 

There are three more actions that can be done in the product import overview. By clicking on the ‘report‘ button, the validation report will be opened. This page will show the amount of active, inactive and new products. It will also show which of the products could not be imported and why. By editing the feed, additional fields can be added or modified. It is also possible to delete a feed, which will automatically delete all products from that feed in ChannelEngine as well.

Separate data and offer feeds

To keep all channels in sync with your webshop or ERP, it can be convenient to provide the product master data and product offers separately. This way we can reduce the load on your systems by reading the master data feed less frequently while reading the price, stock and delivery time data (offers) as often as possible.

To do so, we require the following:

  • Both feeds must contain the same unique combination of GTIN and MerchantProductNo for the corresponding products
  • The product data feed must contain all required product information, including the fields provided in the offer feed.
  • In addition to the above, the offer feed must contain a price, stock amount and delivery time indication.

Required fields

Field Name Example Description Example
Name Product Name Black T-Shirt with Crew Neck
Description Plaintext Product Description (No HTML) A simple black T-Shirt from Fancy T-Shirts Inc…
Price Product Price (Including VAT) 49.95
ListPrice MSRP (Including VAT) 59.95
PurchasePrice Product Purchase Price (Excluding VAT) 35.00
VAT VAT Percentage 21.00
Stock Product Stock 25
Brand Product Brand Name Fancy T-Shirts Inc.
MerchantProductNo Your Unique Product Number 192354
VendorProductNo Manufacturer / Supplier Product Number FTI-BLK-XL
GTIN Product GTIN (EAN, ISBN, UPC) 8710400311140
ShippingCosts Product Shipping Costs 5.95
ShippingTime Delivery Time Indication Ordered before 22:00: Shipped Today.
ImageUrl Deeplink to the product’s image
Category The product’s full category path (each category separated by  > ) Men’s > T-Shirts > Crew Neck

Optional Fields

Field Name Example Description Example
MerchantGroupNo The MerchantProductNo of the parent product. This connects parent and child products. 192350
Size Product Size XL
Color Product Color Black
ProductUrl* Deep link to the product’s details page

*Only for click-channels

Any other additional fields might be added to the feed, these fields can be used to filter products in ChannelEngine or to be passed along to one of the Channels Additional Fields.


If you want to include special characters (like HTML in XML or quotation marks in CSV) in descriptions or other attribute values, please be sure to properly "escape" them. 


for XML you need to include the value between CDATA tags, like in below example

<description><![CDATA[This basic t-shirt has a <i>print</i> with a funny text. <br><br>The fabric is made of 92% cotton and 8% elastane.]]></description>


for CSV you need to use a quotation mark to escape special characters like the quotation mark itself ( " ), a comma ( , ) or a new line ( \n). Also if your attribute value has meaningful spaces (like at the end), the entire value should be enclosed in quotation marks. An example of a part of a CSV row containing attribute values that need to be escaped:

id, "This basic t-shirt has a ""print"" with a funny text. <br><br>The fabric is made of 92% cotton, 5% elastane and 3% awesomeness.", phone number, title,

Generate parents or grandparents

If a feed does not contain parents or grandparents, but does contain a ParentSku or GrandParentSku to group the products. A (grand)parent can be created using either one of the two options:

- Generate parent products

- Generate grandparent products

Both options cannot be used at the same time.

They function like this: if the GrandParentSku  does not refer to a Sku, then a new product with the GrandParentSku as Sku is created.

A generated product can be recognized by 'Parent (generated') or 'Grandparent (generated') in the product view.

For both parent and grandparent:
Stock, GrandParentSku, Ean will be set to null.
Values will be copied from the first parent/child below it.

The name of the new product is the longest common prefix (minus punctuation marks at the end).

New parent:
Size will be set to null

New grandparent:
Size and color will be set to null


Here you can find a simple example XML feed.