The product feed is the primary means of keeping your products catalog synchronized with Boomtrain Commerce. This information, together with the data tracked by the JavaScript tracker, allows Boomtrain to determine each visitor’s preferences in relation to product characteristics (such as brand, category, price, and other attributes) and make relevant product recommendations.
Security Recommendations
To secure the feed data transfer, make the feed accessible using HTTP basic access authentication over HTTPS (http://en.wikipedia.org/wiki/Basic_access_authentication).
Additionally, please make the feed accessible only from Boomtrain's IPs:
5.9.21.130
5.9.21.154
136.243.8.5
136.243.8.59
144.76.102.133
The Feed Structure
The feed can be provided in JSON or XML format.
For each product please include the following product attributes. The mandatory fields are necessary for minimal functioning of the recommendation engine. For best results, please include as much data for each product as you have.
attribute | mandatory? | type | description |
---|---|---|---|
productid | yes | numeric or string | the same unique product identified (ID or SKU) as that provided via the JavaScript tracker |
title | yes | string | product title |
url | yes | string | product URL (including http://) |
img | yes | string | thumbnail image URL (including http://) |
price | yes | float | product price |
stock | yes | bool | the number of items in stock (or 1 to signal the product is in stock if exact quantity is not available) |
currency_1 | no | string | main currency |
price_1 | no | float | product price |
currency_2 | no | string | additional currency (for multi-currency shops) |
price_2 | no | float | product price in second currency |
currency_n | no | string | additional product currencies |
price_n | no | float | product price in additional currencies |
oldprice | no | float | the original product price prior to discount (for discounted items) |
discount | no | bool | the discount of the product in percents (for discounted items) |
rating | no | float | product rating |
priority | no | bool | should the product have priority in recommendations? |
isonsale | no | bool | is the product on sale? |
isnew | no | bool | is the product recently added to the catalog? |
cat1 | no | string | the title of the root category in which the product can be found |
cat1url | no | string | the URL of the root category |
cat2 | no | string | the title of the level 2 category |
cat2url | no | string | the URL of the level 2 category |
cat3 | no | string | the title of the level 3 category |
cat3url | no | string | the URL of the level 3 category |
color | no | string | the product color |
brand | no | string | the product brand |
gender | no | string | the product gender |
Notes:
- Please be sure to include all the products available on your site – even those currently out of stock
- For the URL fields please provide the exact URLs used on-site and make sure these do not redirect.
- All the URLs must use the same HTTP/HTTPS protocol.
JSON Feed Format
Please use the following format for your JSON feeds. To check for validity you can use a validator such as that at http://jsonlint.com/.
{
"products" :[
{
"productid": "903360000100",
"description": "The product description",
"oldprice": "123.45", //The old price of the product (numeric format)
"discount": "25%", //The discount of the product (as percent)
"rating": "4.5", //The rating of the product (if available)
"priority": "0", //Has the product priority in recommendations? (1/0)
"isonsale": "1", //Is the product on sale? (1/0)
"isnew": "0", //Is the product recently added to the catalog? (1/0)
"cat1": "Category 1", //The title of the main category in which the product can be found
"cat1url": "https://url.com/category1", //The URL of the main category in which the product can be found
"cat2": "Category 2",
"cat2url": "https://url.com/category2",
"cat3": "Category 3",
"cat3url": "https://url.com/category3",
"color": "green", //The color specific to the product (if available)
"brand": "Boomtrain", //The brand of the product (if available)
"gender": "F" //The gender specific to the product (if available)
},
{
"description": "Other product description",
"oldprice": "123.45", //The old price of the product (numeric format)
"discount": "25%", //The discount of the product (as percent)
"rating": "9.5", //The rating of the product (if available)
"priority": "1", //Has the product priority in recommendations? (1/0)
"isonsale": "1", //Is the product on sale? (1/0)
"isnew": "0", //Is the product recently added to the catalog? (1/0)
"cat1": "Category 1", //The title of the main category in which the product can be found
"cat1url": "https://url.com/category1", //The URL of the main category in which the product can be found
"cat2": "Category 5",
"cat2url": "https://url.com/category5",
"cat3": "Category 6",
"cat3url": "https://url.com/category6",
"color": "blue", //The color specific to the product (if available)
"brand": "Boomtrain", //The brand of the product (if available)
"gender": "F" //The gender specific to the product (if available)
}]
}
XML Feed Format
If you choose to use an XML feed, please use the following format. Once implemented, you can check it for validity using an online tool such as that at http://www.w3schools.com/xml/xml_validator.asp.
<?xml version="1.0" encoding="UTF-8" ?>
<products>
<product>
<productid>903360000100</productid>
<title><![CDATA[ The title of the product.]]></title>
<url><![CDATA[ The URL of the product.]]></url>
<img><![CDATA[ The image URL source of the product.]]></img>
<price>199.99</price>
<stock>1/0</stock>
<description><![CDATA[ The product description.]]></description>
<oldprice>399.98</oldprice>
<discount>-50%</discount>
<brand><![CDATA[ The brand of the product.]]></brand>
<color><![CDATA[ The color specific to the product.]]></color>
<cat1><![CDATA[ The title of the main product category.]]></cat1>
<cat1url><![CDATA[ The URL of the main product category.]]></cat1url>
<cat2><![CDATA[ The title of the 2nd level product category.]]></cat2>
<cat2url><![CDATA[The URL of the 2nd level product category.]]></cat2url>
<cat3><![CDATA[The title of 3rd level product category.]]></cat3>
<cat3url><![CDATA[The URL of the 3rd level product category.]]></cat3url>
<gender><![CDATA[The gender specific to the product.]]></gender>
</product>
...
</products>
The Catalog Sync Frequency
The default frequency at which Boomtrain will read the product catalog is 1 hour. This value is adjustable depending on the frequency of your catalog changes. If the default value is not optimal for your shop, please advise your account manager.