Product Feed
What is Product Feed and how can you add it in User.com?
Product feed
A product feed is a file that contains all the information about the products you sell. The different pieces of information about your products are described in attributes, which allow you to create product segments and print the product data in your emails/popups/recommendations etc.. Connecting a product feed allows you to enrich product data by automatic updates (every 24 hours).
How should I prepare the product feed?
At User.com you can connect a Google Merchant Product Feed, .xml file, hosted on your server, with one of these three headers:
text/plain
application/xml
text/html; charset=UTF-8"
The size limit for a single feed is 4 GB (if you need to load more products, split your feed and connect multiple feeds).
Each item in the feed will create or update product in User.com. An item, to be synchronized, needs to have some mandatory fields:
custom_id: <g:id>
name: <title>
There are also some non-mandatory fields with custom synchronization rules, like:
category: <g:google_product_category>
Image URL: <g:image_link>
Product URL: <link>
sale_price_effective_date_start, sale_price_effective_date_end (two attributes updated by one field): <sale_price_effective_date>
You can add other custom attributes. Any other field is synchronized on the attribute with the name relevant to the field name:
attribute name: <attribute_name>
Note: Every product attribute not defined in the application data structure will be automatically created as a "string" attribute. If you want to synchronize your data with another field type, define the attributes and their types before the synchronization.
How to connect the product feed
You can connect a product feed or multiple product feeds to User.com application. To connect your feed :
Go to: Settings --> App settings --> Products --> Product feed
Click on: Add new feed.
Provide the feed data:
name of your feed (important if you connect multiple feeds)
description
URL (most important)
The feed will appear on the list with its name (as you provided), status (unsynced) and last success date (never). Click Synchronize to force the synchronization. After the synchronization is completed, the status should change to success and last success date is updated. To get the synchronization details, hover your mouse curson over the status field.
What is the feed synchronization?
Feed synchronization can be forced (as described above), but by default it's an automatic process. It happens each night around 1:00 am UTC.
For each item in the feed:
if product doesn't exist, User.com created the product with custom_id = <g:id> and attributes according to other fields
if product exists, User.com updates the product with custom_id = <g:id> and its attributes according to other fields.
Note: If some field on the product (ex. my product has special_price=100) is not mentioned in the feed, the value in User.com will not change (you can only update the attribute value with the feed, you cannot nullify it).
How to connect multiple feeds with different values for the same attribute? (multilanguage field)
In User.com you can connect multiple language versions of your store to one app. If you connect two feeds, with values:
Feed "EN" (incorrect version):
<g:id>123</g:id>
<title>The Product</title>
<price>100</price>
Feed "FR" (incorrect version):
<g:id>123</g:id>
<title>Le Produit</title>
<price>120</price>
Both feeds will update the same product, and as a result you will have one product with atrribute values from the field which synchronized later.
To avoid this problem, you should create unique, custom attributes for each language:
Feed "EN" (correct version):
<g:id>123</g:id>
<title>The Product</title>
<name_en>The Product</name_en>
<price_en>100</price_en>
Feed "FR" (correct version):
<g:id>123</g:id>
<title>Le Produit</title>
<name_fr>Le Produit</name_fr>
<price_fr>120</price_fr>
As the "title" field is mandatory, you need to overwrite it, but in communication with your users, you will use unique parameters according to their language (en: name_en, price_en; fr: name_fr, price_fr, etc.).