⚙️Product Feed

Present products during your events, viewers can see a list of selected products, see the product detail page and add products to their cart without leaving the live.

To do that you have to share with us a XML product feed with all the information needed.


There are two ways of sharing this XML file:

  • Dynamic, your product feed is accessible via a URL, the sync will be done automatically every night, and all the changes you make on your products will replace the information we had. You can also launch the sync manually at any time from the back office (more information here)

  • Static, you send us an XML file when you need new products to be added or information to be updated.

The product feed

Here is the list of attributes you need to add in your product feed.

Attribute

Required

Description

title

yes

Product title

description

yes

Product description

image_link

yes

Product image link

id

yes

The product ID used by the Add To Cart. If there are variants, it represents the child product Id.

link

no

Product page URL, this field is mandatory if you're using the link to product page option instead of the add to cart (more information here)

price

no

Product price. The currency should not be added. It represents a floating number (e.g : 49.99)

sale_price

no

Product price if there is any discount. Both prices will be displayed.

gtin

no

Product GTIN. It should represent an EAN13 / UPC (barcode)

sku

no

Product SKU. An unique alphanumeric code for each product variant

weightPrice

no

Product price per weight, don't include currency

group_id

yes (if variants)

The parent ID of the product.

variant1

yes (if variants)

Product variant. For exemple, if it is a color, it should be <color>red</color>

variant2 (if any)

yes (if variants)

The seconds product's variant. For exemple, if it is a size, it should be <size>XXL</size>

Products missing one required field won't be imported.

Product feed integration

We are currently supporting 2 product feed formats, Lengow and Google Shopping. During the onboarding, you will need to give us a public URL to an XML file with your product feed. Every night we will use this link to synchronize the feed. Existing products will be updated and new ones added.

If you're not using one of these platforms, you have 2 solutions:

You have a public URL linked to an XML product feed

During the onboarding, we will communicate with you in order to understand your file format and map it with ours. Once done the sync will be automatically done every night

Create products manually

Add products directly from our back office, click this link to see how.

You have a static XML file

We will ask during your onboarding for an XML file with your product feed in order to match it with our and solve any corresponding issues we can find. Then each time you need to update your products you will have to send us a new file. You can find below examples of XML product feed.

Lengow XML feed

Here is an XML example of a Products Feed, based on a Lengow configuration.

With variants :

<Product>
<id>ProducID</id>
<group_id>ParentID</group_id>
<title>ProductTitle</title>
<description>ProductDescription</description>
<link>ProductURL</link>
<image_link>productImgURL</image_link>
<price>Price</price>
<sale_price>PriceWithDiscount</sale_price>
<gtin>GTIN</gtin>
<brand>Brand</brand>
<sku>SKU</sku>
<stock>Stock</stock>
<variantName1>variant1Value</variantName1>
<variantName2>variant2Value</variantName2>
</Product>

Without variants :

<Product>
<id>ProducID</id>
<title>ProductTitle</title>
<description>ProductDescription</description>
<link>ProductURL</link>
<image_link>productImgURL</image_link>
<price>Price</price>
<gtin>GTIN</gtin>
<brand>Brand</brand>
<stock>Stock</stock>
</Product>

Google Shopping XML Feed

<products>
<item>
<id>productID</id>
<item_group_id>productGroupID</item_group_id>
<title>productTitle</title>
<link>productLink</link>
<price>productPrice</price>
<sale_price>productSalePrice</sale_price>.
<description>productDescription</description>
<image_link>productImgURL</image_link>
<gtin>productGTIN</gtin>
<brand>productBrand</brand>
<availability>productStock</availability>
<variant1>productVariant1</variant1>
<variant2>productVariant2</variant2>


<condition>condition</condition>
<mpn>mpn</mpn>
<product_type>product_type</product_type>
<shipping>shipping</shipping>
<shipping_weight>shipping_weight</shipping_weight>
<adwords_grouping>adwords_grouping</adwords_grouping>
<adwords_labels>adwords_labels</adwords_labels>
<gender>gender></gender>
<age_group>age_group></age_group>
<adwords_redirect>adwords_redirect</adwords_redirect>
<tax>tax</tax>
<custom_label_0>custom_label_0</custom_label_0><
<custom_label_1>custom_label_1</custom_label_1>
<custom_label_2>custom_label_2</custom_label_2>
...........
</item>
</products>

Variants auto sorting

Ideally, your product feed should present the variant values in the order you want them to be displayed in the dropdown menu. If that is not possible, you can use this feature to get them sorted in a logical manner, usually from smallest to largest.

Contact us to activate this feature

If this feature is enabled, the product sync script will attempt to detect the nature of the variant (shoe size, bra size, t-shirt size, etc) using regular expressions. Our algorithm was designed not to meddle with the ordering of the values if we are not sure of what they represent. In order for that to happen, the algorithm will parse a product's variant values into an array of strings and will only sort them if they all match a given regular expression.

For instance, an array of ["30ml", "100ml", "15ml", "pineapple"] will not be sorted and will be imported as-is.

Examples of supported variant formats:

supported = {
  // Strings containing only letters are sorted alphabetically
  "colours": ["Blue", "Green", "Indigo", "Orange", "Red", "Violet", "Yellow"],

	// Numeric values, including the ones with decimals, are sorted from lowest to highest
  "numeric": ["36", "38", "40", "42", "44", "46", "48"],
  "numeric_with_dot": ["36", "36.5", "36.8", "42", "44", "44.2" "46", "48"],
  "numeric_with_comma": ["36", "36,5", "36,8", "42", "44", "44,2" "46", "48"],

  "numeric_with_sml": ["36 XS", "38 S", "40 M", "42 L", "44 XL", "46 XXL"],

  "numeric_with_unit": ["15ml", "30ml", "45ml", "60ml"],
  
  // Values with the same unit will be grouped together, and the units will be sorted alphabetically
  "numeric_with_mixed_units": ["1l", "2l", "15ml", "30ml", "45ml", "60ml"],
  
  // Surfaces are sorted by width, then height
  "surface": ["60x60", "60x80", "60x100", "60x120", "80x80", "80x100", "80x120", "100x100", "100x120", "120x120"],

	// Bra sizes - UK format also supported
  // Please note that they are sorted first by cup size, then by band size
  "bra_us": ["30AA", "32AA", "32A", "34A", "36A", "32B", "34B", "36B", "38B", "32C", "34C", "36C", "38C", "40C", "32D", "34D", "36D", "38D", "40D", "42D", "32DD", "34DD", "36DD", "38DD", "40DD", "42DD", "38E", "40E", "42E"],
  "bra_us_alternative": ["30AA", "32AA", "32A", "34A", "36A", "32B", "34B", "36B", "38B", "32C", "34C", "36C", "38C", "40C", "32D", "34D", "36D", "38D", "40D", "42D", "32DD", "34DD", "36DD", "38DD", "40DD", "42DD", "38DDD", "40DDD", "42DDD"],
  "bra_fr": ["85A", "90A", "95A", "85B", "90B", "95B", "100B", "85C", "90C", "95C", "100C", "85D", "90D", "95D", "100D", "85E", "90E", "95E", "90F", "95F", "100F", "105F"],
  
  // Sizes that follow a Small - Medium - Large pattern
  "sml": ["XS","S", "M", "L", "XL"],
  "sml_hyphen": ["X-S","S", "M", "L", "X-L"],
  "sml_space": ["X S","S", "M", "L", "X L"],
  "sml_lowercase": ["xs","s", "m", "l", "xl"],
  "sml_extended_letters": ["XXS", "XS", "S", "M", "L", "XL", "XXL", "XXXL", "XXXXL", "XXXXXL"],
  "sml_extended_numbers": ["2XS", "XS", "S", "M", "L", "XL", "2XL", "3XL", "4XL", "5XL"]
}

Examples of not supported variant formats:

not_supported = {
	// Sizes with intermediate values, such as these ones containing a /
	"sml_with_intermediate_values": ["S", "S/M", "M", "M/L"],
  "numeric_with_intermediate_values": ["38", "38/40", "40", "40/42"],
  
  // Complex strings containing special characters such as (), |, {}
  "complex": ["US 8 | UK 7.5 | EUR 41", "US 8.5 | UK 8 | EUR 42"],
  
  // Small - Medium - Large in full words instead of abbreviation
  "sml_full_words": ["small", "medium", "large"]
}

Last updated