Product data feed

CrossEngage's product data feed feature allows you to load all of your product data and update product attributes or stock that may be then used in marketing communication.

Introduction

To use our product feed functionality, you must upload either a JSON or XML file to the SFTP server you have defined in the System Setup area of your account. The product feed data file contains all of the products which you would like to load and use within personalised messages on CrossEngage.

Naming convention

The naming convention for the product feed file is the following:

product_feed_YYYYMMDDHHMMSS

Example:

product_feed_20180321110559.json
or
product_feed_20180321110559.xml

Data File

This data file must contain an array of objects which represent the data of the products that should be loaded into CrossEngage. Each object defines the attributes of a single product.

Please note that if you drop more than one file at the same time before they are being processed, only the most recent file will be processed. The older one(s) will be ignored.

The only mandatory field is the skufield. The sku field refers to the stock keeping unit you have assigned to a product in your data warehouse.

If you use multiple stores, each with a separate SKU logic, you can include the business unit a particular product belongs to in its properties. Please note that the combination of business unit and SKU needs to be unique.

Available properties

Property

Type

Description

sku

string

Required, unique. The SKU (stock keeping unit) of a product. e.g. LA222P00Q

id

string

If you're using product identifiers, other than SKU, on your side and would like to pass them over to CrossEngage, you can do it here. Please note though, that this is a simple text field and you cannot use it as a product identifier in CrossEngage. e.g. 1A23759926

enabled

integer

You can use this field to mark products, that you'd like to use (1), and those, that you'd not (0). We don't assign any internal logic to this field.

title

string

Product's title. e.g. SLIM FIT - Poloshirt - navy blue

category

string

Product category. You can use a single category such as "Jeans" or combine several in one string for example using breadcrumbs style - Clothes > Jeans

description

string

Product's description.

businessUnit

string

The business unit a product belongs to. e.g. DE

businessUnit is an optional field, but when provided, it'll be used as a product identifier together with sku.

price

double

The price of a product without currency. e.g. 100.00

salesPrice

double

The advertised sale price of a product e.g. 80.00

discount

string

The difference between price and salesPrice presented as a string. e.g. 20 EUR or -20%

salesPriceEffectiveDate

string

Date, starting when the sales price applies. You can provide a string with a date in ISO8601 format to use it in segmentation.

currency

string

The currency of the prices. e.g. EUR or $

stockQuantity

integer

The number of items in stock. e.g. 102

link

string

Absolute URL to a product's page.

smallImageLink

string

Absolute URL to a product's thumbnail image.

bigImageLink

string

Absolute URL to a product's larger image.

attributes

object

An object where you can put your custom product attributes not covered by the above set. We only allow simple data types at the moment. So arrays and objects are not supported. In case you’d like to add for example a list of categories to your product, you can flatten your data before adding it, for example use:category1:"Men", category2:"Shirts" instead of "categories": ["Men", "Shirts"]

All attributes are nullable except for sku, which is mandatory. If you would like to nullify an attribute, please enter the value null or do not include the attribute at all.

Example product object:

{
"sku": "LA222P00Q",
"title": "SLIM FIT - Poloshirt - navy blue",
"description": "Poloshirt with a classic feel",
"productCategory": "Men > Shirts",
"price": 89.95,
"currency": "€",
"attributes": {
"ean": "075678164125",
"brand": "Lacoste",
"category1": "Men",
"category2": "Shirts"
}
}

Example JSON data file

[
{
"sku": "LA222P00Q",
"title": "SLIM FIT - Poloshirt - navy blue",
"description": "Poloshirt with a classic feel",
"productCategory": "Men > Shirts",
"price": 89.95,
"currency": "€",
"attributes": {
"ean": "075678164125",
"brand": "Lacoste",
"category1": "Men",
"category2": "Shirts"
}
},
{
"sku": "K4411BA03",
"title": "Pumps - Red",
"description": "For the perfect party look",
"productCategory": "Women > Shoes > High-Heels",
"price": 669.95,
"currency": "€",
"attributes": {
"ean": "079218397621",
"brand": "Louboutin",
"category1": "Women",
"category2": "Shoes",
"category2": "High-Heels"
}
}
]

Example XML data file

<?xml version="1.0" encoding="utf-8" ?>
<data>
<record>
<sku><![CDATA[LA222P00Q]]></sku>
<title><![CDATA[SLIM FIT - Poloshirt - navy blue]]></title>
<description><![CDATA[Poloshirt with a classic feel]]></description>
<productCategory><![CDATA[Men > Shirts]]></productCategory>
<price><![CDATA[89.95]]></price>
<currency><![CDATA[€]]></currency>
<attributes>
<ean><![CDATA[075678164125]]></ean>
<brand><![CDATA[Lacoste]]></brand>
<category1><![CDATA[Men]]></category1>
<category2><![CDATA[Shirts]]></category2>
</attributes>
</record>
<record>
<sku><![CDATA[K4411BA03]]></sku>
<title><![CDATA[Pumps - Red]]></title>
<description><![CDATA[For the perfect party look]]></description>
<productCategory><![CDATA[Women > Shoes > High-Heels]]></productCategory>
<price><![CDATA[669.95]]></price>
<currency><![CDATA[€]]></currency>
<attributes>
<ean><![CDATA[079218397621]]></ean>
<brand><![CDATA[Louboutin]]></brand>
<category1><![CDATA[Women]]></category1>
<category2><![CDATA[Shoes]]></category2>
<category3><![CDATA[High-Heels]]></category2>
</attributes>
</record>
</data>