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.