
Kelkoo feed for Shopify
Kelkoo Group runs comparison-shopping sites in 25 countries, from kelkoo.co.uk to kelkoo.cz, all fed by one product-data format. Feedflock turns your Shopify catalog into the XML that format documents: ten required attributes per offer, one product per variant, numeric availability codes and a flat delivery cost, hosted on a stable URL that Kelkoo fetches on a per-country timetable, as often as 14 times a day.

Your product types. The channel's categories.
The channel files offers under its own category tree. Feedflock suggests a category for each Shopify product type and you just confirm. One mapping covers every product of that type, including products you add later.
Three extra image slots. The fourth stays in Shopify.
Kelkoo takes a main image plus exactly three additional ones (image_url_2, image_url_3 and image_url_4), and each must show a different picture. Every image needs at least 300 × 300 px, no watermarks or promotional text, and a fresh image takes up to 72 hours to appear on Kelkoo.
Catch feed issues before Kelkoo does.
Before every generation Feedflock checks that every field the channel requires is filled, and, on templates verified against the channel's own spec, that the values fit its rules. Most problems are fixed with one click, without editing products in Shopify.
Setup
Live in five steps
From a bare Shopify store to a listed offer: the whole setup fits into one coffee break.
Sign up with Kelkoo Group
Kelkoo works through an account manager, not a self-serve form: you register as an advertiser, set up a campaign per country and hand over the URL of your feed. Password protection or an IP allowlist is arranged on request.
Install Feedflock
Add Feedflock from the Shopify App Store. It reads your products, variants, prices and images directly through the Shopify API.
Pick the Kelkoo template
Create a new feed and choose the Kelkoo template. id, title, description, both URLs, image, price, availability and your category path are mapped from the start: one product per variant, with the variant named in the title.
Enter your delivery cost
delivery_cost is required and Shopify has no per-product shipping price, so the template deliberately leaves it empty until you enter your real rate, since 0 declares free home delivery.
Hand over the feed URL
Give the hosted feed URL to your Kelkoo account manager and keep it stable: the file name must stay the same over time. Kelkoo fetches it on the country's timetable; Feedflock regenerates it every hour on the same address.
https://feedflock.appfleece.com/f/demo-kelkoo/kelkoo.xml
The feed
What the channel receives
<product> <id>SKU-2048</id> <title><![CDATA[Linen shirt Sand M]]></title> <price>49.00</price> <description><![CDATA[A breathable linen shirt in a regular cut.]]></description> <brand>Nordlin</brand> <gtin>8594000123453</gtin> <sku>SKU-2048</sku> <availability>1</availability> <currency>EUR</currency> <color>Sand</color> <product_url>https://shop.example/products/linen-shirt-sand?variant=9087654322</product_url> <landing_page_url>https://shop.example/products/linen-shirt-sand</landing_page_url> <merchant_category>Apparel > Men > Shirts</merchant_category> <image_url>https://cdn.shop.example/img/linen-shirt-sand.jpg</image_url> <delivery_cost>4.99</delivery_cost> <delivery_time>2 to 5 days</delivery_time> </product>

Nordlin
Linen shirt Sand
49 €
Feed fields
id
SKU-2048
title
Linen shirt Sand M
price
49.00
description
A breathable linen shirt in a regular cut.
brand
Nordlin
gtin
8594000123453
sku
SKU-2048
availability
1
currency
EUR
color
Sand
product_url
https://shop.example/products/linen-shirt-sand?variant=9087654322
landing_page_url
https://shop.example/products/linen-shirt-sand
merchant_category
Apparel > Men > Shirts
delivery_cost
4.99
delivery_time
2 to 5 days
The channel
One format, 25 country sites
A single product-data format serves the whole Kelkoo Group family: 23 European countries plus Brazil and the UAE, kelkoo.cz included. The country decides the currency, language and fetch schedule, not the vocabulary, and the group reports 10,000+ advertisers across 29 markets.
A comparison engine and a CSS in one
Kelkoo Group sells more than its own sites: it runs managed Google and Bing CSS campaigns alongside the Kelkoo Group Shopping Network. The feed you send can fuel Shopping ads as much as the comparison listing itself.
Identifiers feed the matching
Kelkoo's own product pages are keyed on GTIN, and the spec is direct about why identifiers matter: when Kelkoo understands what you sell, it can boost the performance of your campaigns. A gtin, an mpn with the brand, and a full category path are what get you matched.
The feed
- All ten required attributes (id, title, description, product_url, landing_page_url, image_url, price, availability, merchant_category and delivery_cost) mapped from the start; the delivery cost is the one value only you can enter
- The current underscored attribute names from the specification (product_url, image_url, merchant_category, delivery_cost, gtin), not the hyphenated spellings Kelkoo's own stale samples still show
- The title pairs product and variant name, because Kelkoo wants a distinguishing feature such as colour or size on every variant
- product_url deep-links the exact variant and may carry your UTM tracking; landing_page_url stays the clean final URL with no parameters, exactly as the spec splits them
- Availability goes out as Kelkoo's numeric codes 1–6, and a sold-out variant stays in the feed as 6 instead of disappearing
- Prices leave as bare numbers with no currency sign, delivery excluded; descriptions are stripped of HTML and capped at the spec's 3,000 characters
- The readiness check lists required attributes with gaps (the delivery cost you have not entered, a missing image, an empty category path) before Kelkoo's first fetch
Deep dive
One XML file Kelkoo comes to fetch
- A bare <products> root with one <product> per offer, no namespace, values as child elements
XMLis what Feedflock renders; a delimitedTXTwith a header row is also accepted- Kelkoo pulls your hosted
URLon a published per-country timetable: 3 fetches a day in Belgium, 4 in Czechia, 14 in France - The feed
URLmust stay constant; password protection and IP allowlisting are arranged with Kelkoo
Technical details
Kelkoo's format is a plain UTF-8 XML file: a <products> root, one <product> per offer, every value as a child element, free text in CDATA. A delimited TXT with a header row of attribute names works too, but XML is what the template renders. There is no published item or file-size cap.
You do not upload the file. Kelkoo fetches it. You host the feed at a URL that must keep the same name over time, and Kelkoo pulls it on a published timetable that runs from 3 fetches a day (Belgium) through 4 (Czechia, the UK, Germany's neighbours) to 14 (France). Feedflock hosts the file on a stable URL and regenerates it every hour, so every fetch reads current prices and stock.
The required ten
- Required on every offer: id, title, description, product_url, landing_page_url, image_url, price, availability, merchant_category, delivery_cost
- title: max 150 characters, plain text, matching the landing page, with a distinguishing feature on every variant
- description is required: max 3,000 characters, no
HTML, no store links or sales talk - id: max 50 characters, stable across updates and never reused for a different product
Technical details
Ten attributes are unconditionally required: a stable id, the title, a description, both URLs, the main image, the price, availability, your category path and the delivery cost. A missing required attribute may keep that particular product from showing up, and Kelkoo has no merchant-facing diagnostics page to tell you, which is why the template warns instead.
The title is capped at 150 characters, must be plain text without promotional phrases or all-caps, must match the landing page, and every variant needs a distinguishing feature such as colour or size. Kelkoo's own example is “Adidas Retrorunner Sneakers - Blue - UK 7”. The description is required too: up to 3,000 characters about the product only, stripped of HTML. The price is a bare number without the currency, and it must exclude delivery costs, voucher-code reductions and any ecotax, which has its own field.
Two URLs, two jobs
- product_url leads to the product's landing page and
MAYbe a trackingURL;UTMtags are recommended - landing_page_url must be the final
URLon your own domain, with no tracking and noURLparameter at all - So the ?variant= deep link belongs on product_url, and every variant of a product shares one landing_page_url
- Kelkoo's
UTMconvention: utm_source=kelkoo + country, utm_medium=cpc, utm_campaign=kelkooclick
Technical details
Kelkoo is one of the few channels that asks for two product URLs, and they are not interchangeable. product_url is the link the offer points to: it must start with https and it may be a tracking URL that redirects. Kelkoo explicitly recommends UTM parameters so you can attribute the traffic. landing_page_url must be the final URL the user sees, on your own domain, with no tracking solution and no URL parameter whatsoever.
The consequence is tidy: the ?variant= deep link that preselects the right size belongs on product_url, while landing_page_url stays the clean product address every variant shares. Feedflock's template maps both by default: the variant deep link on the first, the plain product URL on the second.
Your category path, numeric availability, flat delivery
- merchant_category is your
OWNfull path; Kelkoo publishes no taxonomy and maps your path internally - New merchants take a few days to be categorised; a generic path like “Shoes” degrades placement silently
- availability is a numeric enum, 1 = In stock to 6 = Not in stock; left blank it reads as unknown and limits exposure
- delivery_cost is required, home delivery only, 0 for free, no carriers, no
COD, no free-above threshold
Technical details
Kelkoo publishes no category tree at all. merchant_category carries your own full category path (“Men > Men's Shoes > Casual Shoes”, not just “Shoes”), and Kelkoo maps it to its taxonomy internally, which for a new merchant can take a few days. An optional second track, google_product_category, exists for a Google taxonomy path or id.
Availability is Kelkoo's numeric enum: 1 = In stock, 2 = Stock on order, 3 = Unknown, 4 = Pre-order, 5 = Available on order, 6 = Not in stock. Text is accepted but the numbers are preferred, and an out-of-stock item stays in the feed as 6. Delivery is two flat fields: delivery_cost, which is required, covers home delivery only and takes 0 for free, and delivery_time as free text. There is no carrier vocabulary, no COD element and no free-above threshold: weight-based rules are something you agree with your account manager, not something the feed can express.
The takeaway
One stable URL, an hourly refresh and an XML that already speaks Kelkoo's current vocabulary: ten required attributes, variant by variant, delivery included. Your Shopify catalog stays the single source of truth for all 25 country sites at once.
Claude · ChatGPT
Or set up your Kelkoo feed in chat
Connect Feedflock to Claude or ChatGPT and ask. It creates the feed as a draft, maps your categories to Kelkoo's own tree and tells you what is still missing. You approve every change.
Create a Kelkoo feed for my store and map my categories.
I'll create it as a draft and show you each change before I make it.
FAQ
Related feeds
Explore all 101 channelsGet on every marketplace that matters this afternoon.
Install free, connect your first feed in minutes, and let Feedflock keep it fresh and validated.