Skip to content
Cenu Eksperts
Price comparison

Cenueksperts.lv feed for Shopify

Cenueksperts.lv is the Latvian storefront of the international price-comparison group behind guenstiger.de, Preissuchmaschine.de and ÁrGép.hu, with more than 25 years of comparison experience, on visibly the same software. It publishes no field table of its own: its merchant FAQ answers the one format question by pointing at the group's XML sample, thirteen item_* elements under a DataFeeds root. The application form takes your feed URL, data is refreshed at least every hour, and you pay per result. Feedflock renders your Shopify catalog as exactly that XML and hosts it on the URL you hand over.

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 · cenueksperts.xmlUpdated just now
<item_data>
<item_unique_id>SKU-2048</item_unique_id>
<item_mpn>NL-2048-M</item_mpn>
<item_manufacturer>Nordlin</item_manufacturer>
<item_name>Linen shirt Sand M</item_name>
<item_category>Men's shirts</item_category>
<item_short_desc>A breathable linen shirt in a regular cut, made from washed linen.</item_short_desc>
<item_page_url>https://shop.example/products/linen-shirt-sand?variant=44718293450817</item_page_url>
<item_image_url>https://cdn.shop.example/img/linen-shirt-sand.jpg</item_image_url>
<item_upc>8594000123453</item_upc>
<item_price>49.00</item_price>
<item_inventory>AVAILABLE</item_inventory>
<item_condition>New</item_condition>
<item_shipping_charge>5</item_shipping_charge>
</item_data>

Setup

Live in five steps

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

  1. Apply at Cenueksperts.lv

    The application form at w.cenueksperts.lv/pievienot-veikalu ends with the field for your product-list URL (a CSV or XML data export). A human follows up: “we will start processing your data shortly and will contact you if anything is unclear”.

  2. Install Feedflock

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

  3. Pick the Cenueksperts.lv template

    item_name, item_price and item_page_url are mapped from the start, one <item_data> per variant. item_unique_id fills from the SKU, item_manufacturer from the vendor, item_upc from the barcode.

  4. Check condition and shipping

    item_condition defaults to New, as the Latvian terms publish new goods only. item_shipping_charge stays empty until you enter your real rate: across this group, “0” declares free shipping on every offer.

  5. Hand over the feed URL

    Paste the hosted URL into the application form. Cenueksperts states data is refreshed at least once an hour (the only interval any site in the group publishes), and Feedflock regenerates the file every hour on the same address.

    https://feedflock.appfleece.com/f/demo-cenueksperts/cenueksperts.xml
Feed health

Catch feed issues before Cenu Eksperts 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 · cenueksperts.xml
77 / 100
To review: 4
item_shipping_charge empty on all offersThe sample writes a bare “5” next to every offer. The template leaves the element out on purpose: across this group a “0” would declare free shipping everywhere.
Brand missing on 6 offersitem_manufacturer fills from the Shopify vendor. Across the group, matching pairs the product name with the manufacturer, so an empty brand weakens the automatic allocation.
No EAN on 14 offersitem_upc fills from the variant barcode. The group's German instructions say the barcode helps the allocation and search of your products. Nothing rejects a missing one, but nothing helps you without it either.
No MPN on 11 productsitem_mpn combined with the manufacturer is half the pairing key across the group. Shopify has no MPN field, so it reads a metafield.

The feed

What the channel receives

cenueksperts.xml
  <item_data>
    <item_unique_id>SKU-2048</item_unique_id>
    <item_mpn>NL-2048-M</item_mpn>
    <item_manufacturer>Nordlin</item_manufacturer>
    <item_name>Linen shirt Sand M</item_name>
    <item_category>Men's shirts</item_category>
    <item_short_desc>A breathable linen shirt in a regular cut, made from washed linen.</item_short_desc>
    <item_page_url>https://shop.example/products/linen-shirt-sand?variant=44718293450817</item_page_url>
    <item_image_url>https://cdn.shop.example/img/linen-shirt-sand.jpg</item_image_url>
    <item_upc>8594000123453</item_upc>
    <item_price>49.00</item_price>
    <item_inventory>AVAILABLE</item_inventory>
    <item_condition>New</item_condition>
    <item_shipping_charge>5</item_shipping_charge>
  </item_data>
Live preview
Linen shirt Sand

Nordlin

Linen shirt Sand

49 €

Feed fields

item_unique_id

SKU-2048

item_mpn

NL-2048-M

item_manufacturer

Nordlin

item_name

Linen shirt Sand M

item_category

Men's shirts

item_short_desc

A breathable linen shirt in a regular cut, made from washed linen.

item_page_url

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

item_upc

8594000123453

item_price

49.00

item_inventory

AVAILABLE

item_condition

New

item_shipping_charge

5

The channel

The group behind guenstiger.de

Cenueksperts says it on its own about page: part of an international price-comparison group with more than 25 years of experience, alongside guenstiger.de, Preissuchmaschine.de and ÁrGép.hu. The storefront is the same software, run for Latvia by AS “Business Media”.

The only hourly promise in the group

“Dati tiek atjaunoti vismaz reizi stundā”: data is refreshed at least once an hour. No other site in the group publishes an interval; here your price changes surface within the hour, not at some unstated cadence.

Pay per result, filtered traffic

Billing is post-paid: you pay only for the result. Clicks from outside the Baltics and duplicates are filtered out, and a monthly cap keeps the invoice predictable.

The feed

  • A template built from the XML sample Cenueksperts itself points at: the DataFeeds root, the thirteen item_* elements in the sample's order, entity-escaped values exactly like the sample: no CDATA, no invented elements
  • One <item_data> per variant, with item_page_url deep-linking the variant, so every size and colour stays a distinct, directly buyable offer
  • item_name keeps the brand out and appends the variant: across the group the manufacturer is displayed in front of the name automatically, so a brand inside the name would print twice
  • Gross EUR prices with a dot decimal and no currency symbol: the sample's own “999.99” form, confirmed by the Latvian terms: every published price includes PVN
  • item_condition defaults to New, because the terms publish new goods only: no used, display, B-grade or second-hand stock
  • item_inventory sends AVAILABLE (the only token the sample documents) and omits the element for a sold-out variant instead of inventing a second value
  • item_shipping_charge stays empty until you enter your real rate: across this group “0” in the shipping column means free shipping on every offer
  • The readiness check lists gaps in the four elements the template requires (id, name, price, URL) without pretending to enforce limits Cenueksperts has never published

Deep dive

01

An XML sample instead of a spec

  • Cenueksperts publishes no field table: no requirement levels, no limits, no enumerations, no error page
  • Its merchant FAQ answers the one format question by linking the group's own productfileexample.xml
  • Root <DataFeeds>, one <item_data> per offer, thirteen item_* children, no namespace
  • The sample uses no CDATA (it entity-escapes an “&” in a category), so the export entity-escapes too
Technical details

Most comparison sites hand you a specification. Cenueksperts hands you a file: its entire merchant documentation on formats is one FAQ question, answered by a link to productfileexample.xml on the guenstiger.de CDN: the German sibling's own XML-Vorlage. That sample is the whole vocabulary: a DataFeeds root, one item_data element per offer and thirteen item_* children, from item_unique_id to item_shipping_charge, with no namespace.

Feedflock's template carries the sample's names in the sample's order and nothing else. The sample wraps no value in CDATA (it entity-escapes an ampersand inside a category path), so the export entity-escapes too. And because both the German and the Latvian template watch the same file, a change to the sample moves both.

02

What is required, and what is not stated

  • Cenueksperts states no required set; the template requires item_name, item_price and item_page_url by inference
  • Those three are the only unconditionally required columns in BOTH of the group's published field tables: guenstiger.de's German PDF and ÁrGép's Hungarian one
  • item_unique_id is required for the same reason as guenstiger's Bestellnummer: a per-variant export needs a stable row id
  • None of the German limits (id 50, URLs 2000, name 500) are copied across, as nothing states they hold for Latvia
Technical details

Because Cenueksperts publishes no requirement levels, the template's required set is an openly named inference: the product name, the gross price and the product URL are the only columns the group's two published field tables (guenstiger.de's German PDF and ÁrGép's Hungarian translation of it) both mark as unconditionally required. item_unique_id is required on top, ours this time, on the same reasoning as guenstiger's Bestellnummer: a per-variant export needs a stable row id, and the German instructions warn that without one the import “can run into problems”.

Just as deliberately, the German PDF's per-field limits were not copied into the Latvian template: an id of 50 characters, URLs of 2000, a name of 500 are the German site's numbers, and nothing says they hold in Latvia. That is also why the template carries no specVerified flag: the readiness check lists missing data, it does not block your feed on limits nobody published.

03

Gross euro prices, new goods, one stock word

  • item_price is the gross price in EUR, dot decimal, no currency symbol; the sample writes “999.99”
  • The Latvian terms confirm the direction: every published price includes the statutory PVN
  • The terms also publish new goods only (no used, display, B-grade or second-hand items), so item_condition defaults to New
  • item_inventory knows one word: AVAILABLE, the sample's only value, omitted entirely for a sold-out variant
Technical details

Latvia is euro, so unlike ÁrGép there is no currency conversion between the group's sites: item_price is your Shopify price as is, gross, with a dot decimal and no currency symbol, exactly the sample's “999.99”. The direction is not a guess: the Latvian terms state that all published prices include the statutory value-added tax, and there is no net-price or VAT-rate element in this format.

The same terms answer two more fields. The site publishes prices of new goods only (explicitly no used, display, fair, B-grade or similar items), so item_condition defaults to the sample's “New”, with “Refurbished” existing in the sample for completeness. And item_inventory shows exactly one token across the whole sample: AVAILABLE. No second value is documented anywhere, so the template sends AVAILABLE for a sellable variant and omits the element for a sold-out one rather than inventing an OUT_OF_STOCK of its own.

04

Shipping, billing and the hourly loop

  • item_shipping_charge is one amount per offer: the sample writes a bare “5”; no carrier, no country, no cash on delivery
  • The default is empty: across this group “0” in the shipping column means free shipping on every offer
  • Billing is post-paid: you pay per result, clicks outside the Baltics and duplicates are filtered, a monthly cap applies
  • “Dati tiek atjaunoti vismaz reizi stundā”: data refreshed at least hourly, the only interval any site in the group publishes
Technical details

Shipping in this format is one number per offer: item_shipping_charge, written as a bare amount like the sample's “5”, with no carrier element, no country, no cash-on-delivery price and no free-above threshold. Shopify has no per-product shipping price, so the template ships the element empty. A “0” would not mean “unknown”: across this group it declares free shipping on every offer, a claim you should only make deliberately. A merchant with one flat rate types it; a Liquid rule on the variant price can still express “free from 50 €” per offer.

The commercial side is stated more plainly than anywhere else in the group. The application form's last field takes your product-list URL, a human follow-up is promised before processing starts, and billing is post-paid per result, with clicks from outside the Baltics and duplicates filtered out and a monthly cap on the invoice. Once listed, your data is refreshed at least once an hour; Feedflock regenerates the file every hour on the same URL, so the two loops line up.

The takeaway

One URL, an hourly refresh on both sides, and the exact XML the group itself publishes as the sample: gross euro prices, new goods, one honest stock word. Your Shopify catalog stays the single source of truth for Latvia too.

Claude · ChatGPT

Or set up your Cenu Eksperts feed in chat

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

feedflock · mcp

Create a Cenu Eksperts 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

The application form asks for a link to your product list (“CSV vai XML datu eksports”), and the merchant FAQ recommends the XML format, linking the group's own sample file. Feedflock renders exactly that XML: a DataFeeds root with one item_data element per variant and the sample's thirteen item_* elements in their original order.
Cenueksperts publishes no required set: no field table exists at all. Feedflock's template requires item_name, item_price and item_page_url, because those three are the only unconditionally required columns in both of the group's published field tables (guenstiger.de's German PDF and ÁrGép's Hungarian one), plus item_unique_id, because a per-variant export needs a stable row id. Everything else is either in the sample or absent.
Yes. The Latvian terms state that all prices published on the site include the statutory value-added tax (PVN), so item_price is your gross Shopify price, written with a dot decimal and no currency symbol, in the sample's own “999.99” form. Latvia is euro, so there is no currency conversion between the group's sites.
No. The terms are explicit: the site publishes prices of new goods only: no used items, display or fair stock, B-grade goods or anything similar. That is why item_condition defaults to “New”; the sample's “Refurbished” value exists, but the terms leave it nothing to describe.
As one amount per offer in item_shipping_charge. The sample writes a bare “5”. The template leaves it empty by default, because across this group “0” in the shipping column declares free shipping on every offer. If your shop ships free above a threshold, a Liquid rule on the variant price (0 from 50 €, otherwise your flat rate) expresses that per offer.
Billing is post-paid (“you pay only for the result”), with clicks from outside the Baltics and duplicate clicks filtered out and a monthly cap on the invoice. No per-click rate is published for Latvia the way the German site publishes its flat 38 cents; the figure arrives with the follow-up after you apply.

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