Setting Up the Products Data Feed
The product feed is the primary means of keeping or products catalog synchronized with Pleisty. This information together with the data tracked by the JavaScript tracker allows Pleisty to determine each visitor's preferences in relation to product characteristics (such as brand, category, price, and other attributes) and make relevant product recommendations.
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://) |
| in_stock | yes | bool | 1 if the product is in stock, 0 otherwise |
| currency | yes | string | base currency |
| price | yes | float | product price in base currency |
| oldprice | no | float | the original product price prior to discount (for discounted items) |
| discount | no | float | the discount of the product as percent of the full price (for discounted items) |
| cat1 | yes | string | the title of the root category in which the product can be found |
| cat1url | yes | 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 |
| brand | no | string | the product brand |
| description | no | string | short product description |
| price_1 | no | float | product price in first currency (only for multi-currency shops) |
| currency_1 | no | string | first currency (only for multi-currency shops) |
| price_2 | no | float | product price in second currency (only for multi-currency shops) |
| currency_2 | no | string | second currency (only for multi-currency shops) |
| price_n | no | float | product price in additional currencies |
| currency_n | no | string | additional currencies |
| ... additional atributes (examples below) | no | string | custom product attributes |
| isnew | no | bool | is the product recently added to the catalog? |
| color | no | string | the product color |
| 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" :[
{
"product_id": "903360000100", //The same unique product identified (ID or SKU) as that provided via the JavaScript tracker
"title": "Product title",
"url": "Product URL (including http://)",
"img": "Thumbnail image URL (including http://)",
"in_stock": "1", //1 if the product is currently in stock, 0 otherwise
"currency": "USD", //Base currency
"price": "123.45", //Product price in base currency
"oldprice": "199.99", //The product price prior to discount (for discounted items)
"discount": "40%", //The product discount percentage (for discounted items)
"cat1": "Category 1", //The title of the root category in which the product can be found
"cat1url": "https://url.com/category1", //The URL of the root category in which the product can be found
"cat2": "Category 2", //The title of the level 2 category
"cat2url": "https://url.com/category2", //The URL of the level 2 category
"cat3": "Category 3", //The title of the level 3 category
"cat3url": "https://url.com/category3", //The URL of the level 3 category
"brand": "The brand of the product",
"description": "The short description of the product",
"price_1": "The product price in first currency (only for multi currency shops)",
"currency_1": "First currency (only for multi currency shops)",
"price_2": "The product price in second currency (only for multi currency shops)",
"currency_2": "Second currency (only for multi currency shops)",
"price_n": "The product price in additional currencies (only for multi currency shops)",
"currency_n": "Additional product currencies (only for multi currency shops)",
"isnew": "0", //Is the product recently added to the catalog? (1/0)
"color": "green", //The color of the product (if available)
"gender": "F" //The gender for which the product is intended (if available)
},
{
"product_id": "903360000101", //The same unique product identified (ID or SKU) as that provided via the JavaScript tracker
"title": "Product title",
"url": "Product URL (including http://)",
"img": "Thumbnail image URL (including http://)",
"in_stock": "1", //1 if the product is currently in stock, 0 otherwise
"currency": "USD", //Base currency
"price": "75.00", //Product price in base currency
"oldprice": "150.00", //The product price prior to discount (for discounted items)
"discount": "50%", //The product discount percentage (for discounted items)
"cat1": "Category 1", //The title of the root category in which the product can be found
"cat1url": "https://url.com/category1", //The URL of the root category in which the product can be found
"cat2": "Category 2", //The title of the level 2 category
"cat2url": "https://url.com/category2", //The URL of the level 2 category
"cat3": "Category 3", //The title of the level 3 category
"cat3url": "https://url.com/category3", //The URL of the level 3 category
"brand": "The brand of the product",
"description": "The short description of the product",
"price_1": "The product price in first currency (only for multi currency shops)",
"currency_1": "First currency (only for multi currency shops)",
"price_2": "The product price in second currency (only for multi currency shops)",
"currency_2": "Second currency (only for multi currency shops)",
"price_n": "The product price in additional currencies (only for multi currency shops)",
"currency_n": "Additional product currencies (only for multi currency shops)",
"isnew": "1", //Is the product recently added to the catalog? (1/0)
"color": "red", //The color of the product (if available)
"gender": "M" //The gender for which the product is intended (if available)
}]
}
JSON Lines Feed Format
You can also format the feed by the JSON Lines standard. See http://jsonlines.org/ for more details.
You need to keep the same format for each product as in the JSON Feed Format but have one product per line
{"product_id": "903360000101", ...}
{"product_id": "903360000102", ...}
...
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>
<product_id>903360000100</product_id>
<title><![CDATA[ Product title ]]></title>
<url><![CDATA[ Product URL (including http://) ]]></url>
<img><![CDATA[ Thumbnail image URL (including http://) ]]></img>
<in_stock>0/1</in_stock>
<currency><![CDATA[ USD ]]></currency>
<price>123.45</price>
<oldprice>199.99</oldprice>
<discount>40%</discount>
<cat1><![CDATA[ The title of the root category of the product ]]></cat1>
<cat1url><![CDATA[ The URL of the root category ]]></cat1url>
<cat2><![CDATA[ The title of the level 2 category ]]></cat2>
<cat2url><![CDATA[ The URL of the level 2 category ]]></cat2url>
<cat3><![CDATA[ The title of the level 3 category ]]></cat3>
<cat3url><![CDATA[ The URL of the level 3 category ]]></cat3url>
<brand><![CDATA[ The brand of the product ]]></brand>
<description><![CDATA[ The short description of the product ]]></description>
<price_1>The product price in first currency (only for multi currency shops)</price_1>
<currency_1><![CDATA[ First currency (only for multi currency shops) ]]></currency_1>
<price_2>The product price in second currency (only for multi currency shops)</price_2>
<currency_2><![CDATA[ Second currency (only for multi currency shops) ]]></currency_2>
<price_n>The product price in additional currencies (only for multi currency shops)</price_n>
<currency_n><![CDATA[ Additional product currencies (only for multi currency shops) ]]></currency_n>
<isnew>0/1</isnew>
<color><![CDATA[ green ]]></color>
<gender><![CDATA[ F ]]></gender>
</product>
<product>
<product_id>903360000101</product_id>
<title><![CDATA[ Product title ]]></title>
<url><![CDATA[ Product URL (including http://) ]]></url>
<img><![CDATA[ Thumbnail image URL (including http://) ]]></img>
<in_stock>0/1</in_stock>
<currency><![CDATA[ USD ]]></currency>
<price>75.00</price>
<oldprice>150.00</oldprice>
<discount>50%</discount>
<cat1><![CDATA[ The title of the root category of the product ]]></cat1>
<cat1url><![CDATA[ The URL of the root category ]]></cat1url>
<cat2><![CDATA[ The title of the level 2 category ]]></cat2>
<cat2url><![CDATA[ The URL of the level 2 category ]]></cat2url>
<cat3><![CDATA[ The title of the level 3 category ]]></cat3>
<cat3url><![CDATA[ The URL of the level 3 category ]]></cat3url>
<brand><![CDATA[ The brand of the product ]]></brand>
<description><![CDATA[ The short description of the product ]]></description>
<price_1>The product price in first currency (only for multi currency shops)</price_1>
<currency_1><![CDATA[ First currency (only for multi currency shops) ]]></currency_1>
<price_2>The product price in second currency (only for multi currency shops)</price_2>
<currency_2><![CDATA[ Second currency (only for multi currency shops) ]]></currency_2>
<price_n>The product price in additional currencies (only for multi currency shops)</price_n>
<currency_n><![CDATA[ Additional product currencies (only for multi currency shops) ]]></currency_n>
<isnew>0/1</isnew>
<color><![CDATA[ red ]]></color>
<gender><![CDATA[ M ]]></gender>
</product>
</products>
The Catalog Sync Frequency
The default frequency at which Pleisty will read the products feed 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.