Skip to main content

Product Feeds

Feeds are dynamic export tools that transform your store's products into structured files (XML, CSV, JSON) following a defined syntax. They are automatically generated every night (00:00 CET) and uploaded to our Edge Network to be consumed by marketplaces, price comparators, or marketing tools.

Path and Accessibility

Feeds are generated for every active language in your store and are accessible via a public URL distributed through a CDN. The path pattern is: https://cdn.webround.com/{{userId}}/{{storeId}}/feeds/{{langCode}}/{{marketplaceName}}.{{format}}

Example: Suppose you have configured Italian as the only language on Webround, your storeId is 32d20f24-6c99-4e72-bdde-a25f91aabb91, your userId is k9J2bWz7vM4nLpXqR1tG8sY3dF5A, and you have created a Feed with Marketplace Shopping Graph and extension XML. After generation, your feed file will be located at: https://cdn.webround.com/k9J2bWz7vM4nLpXqR1tG8sY3dF5A/32d20f24-6c99-4e72-bdde-a25f91aabb91/feeds/it/Google_Shopping.xml


Feed Structure

The configuration of a feed is based on two main pillars that define the file structure:

  1. Wrapper Template: Defines the external structure of the file (e.g., the XML header or CSV heading). It must contain the {{items}} placeholder, where the products will be injected.
  2. Item Template: Defines how each individual product variant should be represented.

Available Placeholders (Dynamic Tags)

You can use the following tags within the templates to map data:

TagDescription
{{product.id}}Unique product ID
{{product.name}}Product name (multilingual)
{{product.seoDescription}}SEO description (multilingual)
{{product.htmlDescription}}Full HTML description (multilingual)
{{variant.id}}Unique variant ID
{{variant.sku}}Variant SKU
{{variant.ean}}EAN
{{variant.gtin}}GTIN
{{variant.mpn}}MPN
{{variant.name}}Variant name (multilingual)
{{variant.price}}Net price (cadence: once)
{{variant.comparePrice}}Strikethrough price
{{variant.availability}}Numerical availability (quantity)
{{variant.availabilityLabel}}Textual availability (in stock / out of stock)
{{variant.quantity}}Inventory quantity
{{variant.slug}}Variant URL slug
{{variant.weight}}Weight in grams
{{variant.weightKg}}Weight in kg (e.g., 1.500)
{{variant.length}}Length in cm
{{variant.width}}Width in cm
{{variant.height}}Height in cm
{{variant.volume}}Volume in cm³ (L×W×H)
{{variant.externalId}}External ID (e.g., PrestaShop ID)
{{variant.metadata.X}}Variant metadata field (replace X with the key)
{{product.metadata.X}}Product metadata field (replace X with the key)
{{asset.0}}Primary image
{{asset.1}}Second image
{{asset.2}}Third image
{{asset.N}}N-th image
{{asset.50}}Fiftieth image
{{tag.brand}}Brand
{{tag.color}}Color
{{tag.material}}Material
{{tag.size}}Size/Measurement
{{tag.gender}}Gender
{{tag.age_group}}Age group
{{tag.condition}}Condition
{{tag.product_type}}Product type
{{tag.energy_class}}Energy class
{{tag.manufacturer}}Manufacturer
{{tag.model}}Model
{{tag.pattern}}Pattern
{{store.name}}Store name
{{store.domain}}Store domain
Multilingual

Multilingual data is automatically resolved during generation, saving a specific feed for each language configured on the store.


Generation Logic

  • Scoping: The feed operates at the variant level. If a product has 5 sizes, 5 elements will be generated in the feed (required for marketplaces like Google Shopping).
  • Visibility: Only variants set as visible are exported.
  • Inheritance: If a variant inherits assets or dimensions from the parent product, the feed will automatically resolve the correct data.
  • Filters: You can link one or more filterIds. In this case, the feed will only contain products that meet the criteria of the selected filters (e.g., only products from a certain category or brand).
  • Sitemap: Simultaneously with feed generation, Webround automatically updates the sitemap-products.xml to optimize SEO indexing.

Configuration Examples

1. Google Shopping (XML)

Wrapper Template:

<?xml version="1.0"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
<title>{{store.name}}</title>
<link>{{store.domain}}</link>
<items>
{{items}}
</items>
</channel>
</rss>

Item Template:

<item>
<g:id>{{variant.id}}</g:id>
<g:title>{{product.name}} - {{variant.name}}</g:title>
<g:description>{{product.seoDescription}}</g:description>
<g:link>{{store.domain}}/p/{{variant.slug}}</g:link>
<g:image_link>{{asset.0}}</g:image_link>
<g:price>{{variant.price}} EUR</g:price>
<g:availability>{{variant.availabilityLabel}}</g:availability>
<g:brand>{{tag.brand}}</g:brand>
<g:gtin>{{variant.gtin}}</g:gtin>
</item>

2. Simple CSV Export

Wrapper Template:

id,sku,name,price,availability
{{items}}

Item Template:

"{{variant.id}}","{{variant.sku}}","{{product.name}}","{{variant.price}}","{{variant.availabilityLabel}}"
tip

You can generate a feed on demand using the button after creating one.