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 using FTP, use the following format: ftps ://[Username]:[Password]@myshop.com/feed.xml
For example: ftps://testuser:firstname.lastname@example.org/feed.xml
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.
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.
|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|
|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||http://www.theshirtshop.com/images/products/192354.jpg|
|Category||The product’s full category path (each category separated by > )||Men’s > T-Shirts > Crew Neck|
|Field Name Example||Description||Example|
|MerchantGroupNo||The MerchantProductNo of the parent product. This connects parent and child products.||192350|
|ProductUrl*||Deep link to the product’s details page||http://www.theshirtshop.com/products/192354-black-t-shirt-with-crew-neck.html|
*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).
Size will be set to null
Size and color will be set to null