Skip to content
BesteKauf.de
Price comparison

BesteKauf.de feed for Shopify

BesteKauf.de is the German storefront of Compare Group, the Zwolle-based operator whose thirteen comparison sites across twelve countries all read the same feed specification; its imprint names Compare International B.V. in Zwolle as the company behind it. It pairs your offer onto a product card by EAN and SKU, not by name, and it bills per click. Feedflock builds the XML file from your Shopify catalog on a template written against Compare Group's own schema, hosts it on a stable URL and regenerates it on your schedule, as often as every hour.

01 · ShopifyProduct in the catalog
Linen shirt SandNordlin · Men's shirtsSKU-2048 · S–XL
Price
49 €
In stock
0 pcs
When out of stock
02 · bestekauf.xmlUpdated just now
<offer>
<shopReference>shop.example</shopReference>
<shopOfferId>SKU-2048</shopOfferId>
<shopCategory>Men's shirts</shopCategory>
<products>
<product>
<name>Linen shirt Sand M</name>
<description>A breathable linen shirt in a regular cut.</description>
<brand>Nordlin</brand>
<identifiers>
<identifier><type>EAN</type><value>8594000123453</value></identifier>
<identifier><type>SKU</type><value>SKU-2048</value></identifier>
</identifiers>
<features>
<feature><name>color</name><value>Sand</value></feature>
<feature><name>size</name><value>M</value></feature>
</features>
<state>NEW</state>
<variantGroup>8236409175213</variantGroup>
</product>
</products>
<basePrice>49.00</basePrice>
<deepLink>https://shop.example/products/linen-shirt-sand?variant=44718293450817</deepLink>
<media>
<medium><type>IMAGE</type><url>https://cdn.shop.example/img/linen-shirt-sand.jpg</url></medium>
</media>
<inStock>FALSE</inStock>
<nrInStock>12</nrInStock>
<shippingOptions>
<shippingOption>
<countryCode>DE</countryCode>
<deliveryTime>1-3 days</deliveryTime>
<method>DELIVERY</method>
<price>4.95</price>
</shippingOption>
</shippingOptions>
</offer>
−20% off compare-at
ProductoriginalPricebasePrice
Linen shirt Sand49.00 €39.20 €
Mug Fjord 350 ml15.00 €12.00 €
Backpack Ridge 28 l75.00 €60.00 €
Soy candle Les14.00 €11.20 €
Wool scarf Fjell29.00 €23.20 €
36.40 €saved across these products
5 / 5products shown as a deal
Sale prices

An old price in the feed becomes a deal on the listing.

Off sale, basePrice is the only price. The moment a sale runs in Shopify, basePrice drops to the discounted price and the old price moves to originalPrice, and BesteKauf.de automatically creates and displays a deal from that pair, no deal block needed. Feedflock derives both from Shopify's compare-at price, so the deal appears exactly while the sale runs.

Feed health

Catch feed issues before BesteKauf.de 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.

Feed quality · bestekauf.xml
76 / 100
To review: 4
Missing or invalid EAN on 11 variantsEAN is the first pairing key: 13 or 14 digits. Compare Group's only stated failure mode is “Invalid EANs will be ignored”, so a bad barcode silently costs you the match.
Empty shopCategory on 9 productsThe Shopify product type is missing. A specific, lowest-level category path is what Compare Group calls essential for getting more offers live.
No units or unit on 14 food and fragrance itemsIn Germany, units together with unit are mandatory for some categories (food, beverages, perfume) so Compare Group can compute the unit price. Shopify has no such field; a metafield mapping fills it.
No delivery time or price setWithout them no shippingOption is written at all, and the number of clicks you receive depends on delivery times as much as on price.

Setup

Live in five steps

From a bare Shopify store to a listed offer: the whole setup fits into one coffee break.

  1. Register with Compare Group

    Sign up through business.comparegroup.eu. There is no German business portal; business.bestekauf.de redirects straight to the English one. Registration asks for your company details, VAT number, a SEPA direct-debit form, your domain and shop logo, and the feed URL. A fully prepared shop often goes live within 2–3 days; connecting a new feed can take up to 5.

  2. Install Feedflock

    Add Feedflock from the Shopify App Store. It reads your products, variants, stock and images directly through the Shopify API.

  3. Pick the BesteKauf.de template

    One offer per variant, with shopReference, shopOfferId, name, brand, EAN and SKU identifier blocks, state and inStock mapped from the start. The shipping country code defaults to DE (the value Compare Group added to its schema for the German storefront), and your shop domain fills the mandatory shopReference.

  4. Set delivery time and price

    Shopify has no per-product delivery time or shipping price, and BesteKauf.de asks for both in every offer. Until you set them, no shippingOption is written, because 0.00 would advertise free delivery. Selling food, beverages or perfume? Map a metafield for units and unit too: they are mandatory in Germany for some categories.

  5. Paste the feed URL

    Copy the hosted URL into your registration. BesteKauf.de's crawler fetches it four times a day by default. If you ever move or restructure the feed, tell partner@bestekauf.de beforehand: the URL is the whole integration.

    https://feedflock.appfleece.com/f/demo-bestekauf/bestekauf.xml

The feed

What the channel receives

bestekauf.xml
<offer>
  <shopReference>shop.example</shopReference>
  <shopOfferId>SKU-2048</shopOfferId>
  <shopCategory>Men's shirts</shopCategory>
  <products>
    <product>
      <name>Linen shirt Sand M</name>
      <description>A breathable linen shirt in a regular cut.</description>
      <brand>Nordlin</brand>
      <identifiers>
        <identifier><type>EAN</type><value>8594000123453</value></identifier>
        <identifier><type>SKU</type><value>SKU-2048</value></identifier>
      </identifiers>
      <features>
        <feature><name>color</name><value>Sand</value></feature>
        <feature><name>size</name><value>M</value></feature>
      </features>
      <state>NEW</state>
      <variantGroup>8236409175213</variantGroup>
    </product>
  </products>
  <basePrice>49.00</basePrice>
  <deepLink>https://shop.example/products/linen-shirt-sand?variant=44718293450817</deepLink>
  <media>
    <medium><type>IMAGE</type><url>https://cdn.shop.example/img/linen-shirt-sand.jpg</url></medium>
  </media>
  <inStock>TRUE</inStock>
  <nrInStock>12</nrInStock>
  <shippingOptions>
    <shippingOption>
      <countryCode>DE</countryCode>
      <deliveryTime>1-3 days</deliveryTime>
      <method>DELIVERY</method>
      <price>4.95</price>
    </shippingOption>
  </shippingOptions>
</offer>
Live preview
Linen shirt Sand

Nordlin

Linen shirt Sand

49 €

Feed fields

shopReference

shop.example

shopOfferId

SKU-2048

shopCategory

Men's shirts

name

Linen shirt Sand M

description

A breathable linen shirt in a regular cut.

brand

Nordlin

type

EAN

value

8594000123453

type

SKU

value

SKU-2048

name

color

value

Sand

name

size

value

M

state

NEW

variantGroup

8236409175213

basePrice

49.00

deepLink

https://shop.example/products/linen-shirt-sand?variant=44718293450817

type

IMAGE

url

https://cdn.shop.example/img/linen-shirt-sand.jpg

inStock

TRUE

nrInStock

12

countryCode

DE

deliveryTime

1-3 days

method

DELIVERY

price

4.95

The channel

Compare Group's German storefront

BesteKauf.de is the German face of Compare Group, which reports some 41 million products, over 3,200 webshops and 4.3 million leads a month across its thirteen sites, with a live German rate card. One feed specification serves all of them.

You pay per click, with a low floor

Billing is cost per click (a click being a registered deeplink click, capped at five per visitor per day), with a minimum monthly invoice of €25 excluding VAT. There is no commission on sales.

German unit pricing built in

Send units and unit and Compare Group calculates the price per unit for you, which is mandatory for some German categories like food, beverages and perfume. And a compare-at price becomes a deal on the listing automatically, no deal block needed.

The feed

  • A template written against Compare Group's own XSD: the nested element names (name, state, identifier type/value), the required set and the enums, not the flat CSV column names the manual's table prints
  • One offer per variant, with variantGroup from the Shopify product id putting the sizes back together and a stable shopOfferId that survives renames
  • shopReference, required by the schema even for a single shop, defaults to your shop domain, the value the Omnichannel manual documents
  • The shipping country code defaults to DE, the value Compare Group added to its schema (v1.5) for the German storefront; the public v1.4 still accepts only NL, BE, FR and FI
  • EAN accepts 13 or 14 digits, so a Shopify GTIN-14 with a leading zero goes out as it is
  • No accidental free shipping: the shippingOption block is written only once you set a delivery time and price, because 0.00 is a free-delivery claim
  • A stable hosted URL regenerated as often as every hour, with fetch tracking that shows when BesteKauf.de last pulled the file

Deep dive

01

How BesteKauf.de reads your feed

  • One XML file on a URL you host: no upload, no API, no authentication
  • Fetched four times a day by default, at least once; more often on request
  • Connecting a new feed can take up to 5 days
  • Any structural change or new URL has to be reported to Compare Group upfront
  • One English manual serves every Compare Group site. There is no German handbook, and business.bestekauf.de redirects to business.comparegroup.eu
Technical details

BesteKauf.de's model is the simplest possible transport: the feed lives on your server at a public URL, and their crawler fetches it, four times a day on the default schedule, at least once. There is no upload form, no SFTP and no authentication anywhere in the manual; the example URL is plain http.

Feedflock hosts the file on a stable URL and regenerates it on your schedule, as often as every hour, so each of those four daily fetches sees current prices and stock. What the URL must never do is change silently: Compare Group asks to be informed upfront about any new location or structure, by e-mail to partner@bestekauf.de or your account manager.

02

Pairing runs on identifiers, not on the name

  • EAN is the first pairing key, SKU (the manufacturer part number) plus brand the second
  • The product name is explicitly not a pairing key, and must not contain the brand or promotional text
  • Every size or colour is its own offer; variantGroup groups them back together
  • shopCategory is your own category path: specific, lowest-level, aimed at Compare Group's German tree
Technical details

BesteKauf.de links your offer to its product catalog by EAN first and by SKU with brand second. Compare Group's SKU means the manufacturer part number (MPN), not your internal code. The name is deliberately kept out of pairing: it should be unique, and it should contain neither the brand nor promotional text.

Because every variant is a separate offer, the variant belongs in the name so two sizes never collide, and variantGroup (the Shopify product id in Feedflock's default) ties them back together. Your category text is the fallback matcher: your own breadcrumb, as specific and as close to the BesteKauf.de tree as you can make it. Compare Group publishes a German tree of about 3,500 categories, roughly half the size of the Dutch and Finnish ones, purely as a target to aim at.

03

Euro prices, two decimals, deals included

  • basePrice is the selling price including VAT: a dot, two decimals, no thousands separator, no currency symbol. All prices are assumed to be in euro
  • A price of 0 fails the schema, and so does one decimal
  • originalPrice is the old price; present, it becomes a deal on the listing automatically
  • units and unit let Compare Group compute the price per unit, mandatory in Germany for some categories
Technical details

Every price in the feed is gross and in euro: “49.00”, never “49”, “49,00” or “€49.00”, however natural the German comma feels. The schema enforces the shape (a decimal greater than zero with exactly two decimals or none), and there is no net-price or VAT element anywhere in the format.

For promotions you rarely need more than Shopify's compare-at price: mapped to originalPrice, it makes BesteKauf.de create and display a deal automatically. And if you sell by weight or volume, units plus unit (from a closed list of fourteen, ml to kg) let Compare Group calculate the unit price itself, a pair Germany requires for categories like food, beverages and perfume.

04

Delivery is a mode, not a carrier

  • Each offer can carry repeated shippingOption blocks, per country, per mode
  • method is one of DELIVERY, EXPRESS or PICKUP; there is no carrier vocabulary at all: no DHL, no DPD, no Hermes
  • The price is a total including VAT, and 0.00 means free delivery
  • Empty by default: the block is written only once you set a delivery time and price
Technical details

Compare Group is unusual among comparison sites: delivery is described per offer, repeatable, and without a single carrier name. A shippingOption says where (a country code: DE for this storefront, legal since Compare Group widened its schema to the twelve countries it operates in), how fast (a free-text delivery time: “1 day”, and “2-3 days is better than 2-7 days”), which mode (delivery to door, same-day express or in-store pickup) and at what total price including VAT.

Because 0.00 is a claim of free delivery, Feedflock writes no shippingOption at all until you set a delivery time and price; Shopify has neither per product. Fill them in: Compare Group names delivery times among the factors that decide how many clicks your offers receive.

The takeaway

One URL, fetched four times a day, against a specification that pairs on identifiers and forgives nothing about price format. Feedflock keeps your BesteKauf.de feed on the schema, on your schedule, straight from Shopify.

Claude · ChatGPT

Or set up your BesteKauf.de feed in chat

Connect Feedflock to Claude or ChatGPT and ask. It creates the feed as a draft, maps your categories to BesteKauf.de's own tree and tells you what is still missing. You approve every change.

feedflock · mcp

Create a BesteKauf.de 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

You pay per click: a click is a registered deeplink click in Compare Group's system, capped at five clicks from the same visitor to the same shop per 24 hours. There is no commission on sales. The minimum monthly invoice is €25 excluding VAT, and Compare Group publishes a German rate card with the per-category CPC prices.
Four times a day on the default schedule, and at least once a day in any case; if your feed refreshes more often, Compare Group adjusts the schedule on request. Feedflock regenerates the file as often as every hour on the same URL, so every fetch sees current data.
XML is the recommended format and the only one the published XSD can validate, which is what Feedflock emits. BesteKauf.de can also work with a CSV file (pipe, semicolon or comma separated) as a fallback.
It is your own label for one shop location, not a code Compare Group hands out; their own examples are shop-x-A and shop-x-1. The schema requires exactly one per offer even for a single online shop, so the template defaults to your shop domain. If you ever run several shops in one feed, each offer repeats with a different reference.
Not the price per unit itself; Compare Group computes that. What Germany requires for some categories (food, beverages, perfume) is the pair units and unit: the numeric quantity and one of fourteen units from ml to kg. Shopify has no such field, so map a metafield. The energy efficiency class, also mandatory for the German market, goes out as a product feature.
Pairing runs on EAN first, then SKU plus brand. The usual causes are a missing or malformed EAN (13 or 14 digits; invalid ones are silently ignored), an empty brand, or a category path too general to match. The name does not pair anything. It only has to be unique and free of the brand and promotional text.

Get on every marketplace that matters this afternoon.

Install free, connect your first feed in minutes, and let Feedflock keep it fresh and validated.

.myshopify.com