Step 1: Prepare the Source File
Before you can upload and sync a product feed to Experience OS, make sure your feed file complies with the size, format, and content requirements.
Feed Size | File Type |
---|---|
Up to 20,000 items | CSV, JSON, XML |
20,000-200,000 | CSV, JSON |
More than 200,000 | CSV |
The file can be stored in any URL or a local folder, or in an Amazon S3 bucket that we provide. You can transfer the feeds to Amazon S3 using SFTP as well. If you use a CSV file, items must be separated by commas. See Step 2 for more information on these methods.
Product feed structure
The product feed must include the basic information about your product (SKU, group ID, price, image, URL, in stock or not, and its categories). You can see the list of mandatory attributes in the following table, with detailed instructions (format, limitations, and so on).
SKUs must be unique, or the feed won't sync.
Note:
If you change the group ID structure or category structure between syncs, the feed might reset, causing all previous recommendation data to be lost.
Mandatory feed columns:
Column (case sensitive) | Description | Format | Example |
---|---|---|---|
sku | Unique product identifier. Note: SKUs cannot contain spaces or the string "//" | String (up to 256 characters, no spaces) | 135 |
product_type Optional but highly recommended | The type of item: Offer, Product, or Article Financial Institutions only. | String | Offer |
group_id | Identifies a group of products that differ in some product attributes. | String (up to 256 characters, no spaces) | 22 |
name | Product name | String (up to 1000 characters) | t_shirt |
url | URL to the product details page (must be a valid URL, starting with HTTP/HTTPS) | String (up to 1000 characters) | http://mystore.com/135 |
price | Price of the product (must be a number) | Float (up to 1000 characters) | 9.50 |
in_stock | Indication whether the product is in stock (noted by ‘true/false’) | Boolean (must be lower case) | true |
image_url | The URL to the product image (must be a valid URL, starting with HTTP/HTTPS) | String (up to 1000 characters) | http://mystore.co</span<m/135.png |
categories | The categories associated with the product, from general to specific | Strings (separated by pipes with no spaces, up to 1,000 characters) | Sports|Equipment|Weights |
keywords Optional but highly recommended | Any additional information describing the product, separated by pipes. Used for our machine learning and affinity algorithms. Because this column is optional, blank values will not trigger errors or warnings. | Strings (separated by pipes with no spaces, up to 1,000 characters) | sale_item|seasonal |
Missing mandatory values:
If a product is missing a value in a mandatory column, it isn't synced. If more than 10% of products have an empty value in one of the mandatory columns, the entire sync fails.
Use a parser function to sync from a pre-existing file:
If your feed source has this information, but names are different (for example, if you have a Google Product Feed), or this information exists in 2 separate feeds, you can use a parser function when syncing the feed to adapt it to the provided guidelines. This is available for feeds that have fewer than 200,000 items and are smaller than 180 MB. Learn more.
Multi-language support:
See the multi-language support page to learn more about creating a feed for multi-language sites or apps.
See also the included subpages for custom columns and feed file examples.
Updated 9 months ago