← All guides

The Ceneo product feed: get your shop onto Poland’s price comparison site

19 September 2026 · 8 min read

Ceneo.pl is where a large share of Polish shoppers compare before they buy, and getting in takes one XML file — but not any file you already have. Ceneo's format shares nothing with Google Shopping, nothing with Heureka, and nothing with idealo. Elements are one letter long, the delivery time is a numeric code, and the product attributes are named in Polish.

Here is the structure as Ceneo documents it, the fields that decide whether your offer is shown at all, and the rules that quietly hide offers after they pass validation.

Not sure what's wrong with your feed?Paste your feed URL and FeedRobin checks every product for missing barcodes, images, descriptions and more — free, no account needed.
Check my feed — it's free

The shape of the file

One root element, one <o> element per offer. Everything textual is wrapped in CDATA:

<?xml version="1.0" encoding="utf-8"?>
<offers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1">
  <o id="SKU-1024" url="https://sklep.pl/p/1024" price="249.00" avail="1" stock="8" basket="1">
    <cat><![CDATA[Elektronika/Smartfony]]></cat>
    <name><![CDATA[Marka Model 128GB czarny]]></name>
    <imgs><main url="https://sklep.pl/img/1024.jpg"/></imgs>
    <desc><![CDATA[Opis produktu…]]></desc>
    <attrs>
      <a name="EAN"><![CDATA[5901234123457]]></a>
      <a name="Kod producenta"><![CDATA[XY-1024-BK]]></a>
      <a name="Marka"><![CDATA[Marka]]></a>
    </attrs>
  </o>
</offers>

Required on every offer: id (unique, up to 100 characters), url (up to 1,000), price (decimal with a dot, never a comma) and avail. Optional but useful: stock, weight in kilograms, and basket, which marks the offer as eligible for Ceneo's “Kup Teraz” buy-now flow. The child elements <cat>, <name>, <imgs>, <desc> and <attrs> are all expected (Instrukcja tworzenia pliku XML).

avail: a code, not a date

Every other channel wants a number of days or a stock word. Ceneo wants one value from a fixed list, and the list is not a scale you can round to:

1 — ships within 24 hours · 3 — up to 3 days · 7 — within a week · 14 — up to 14 days · 90 — made to order · 99 — check in store · 110 — pre-order.

There is no code for “out of stock”, and that is the point: an offer a shopper cannot order should not be in the file at all. Sending unorderable offers is the fastest way to get listings hidden.

The limits that fail a file

name up to 150 characters, cat up to 255, desc up to 100,000, at most 20 images (each URL up to 2,048 characters) and at most 500 attributes per offer. These are not advisory — an over-long title is a rejected row, and a catalogue of long titles is a mostly empty listing.

attrs: the Polish field names that do the matching

Ceneo pairs your offer with its own product card using the attributes block, and the names are literal strings in Polish. The ones that matter for matching: EAN — the 8- or 13-digit barcode; Kod producenta — the manufacturer's part number; Marka — the brand; and Wyprodukowane przez for the manufacturer where it differs.

Get these right and your price appears in the head-to-head table on the product card, which is where the traffic is. As on Google, an offer without a barcode gets a standalone listing few shoppers reach. Everything else in attrs feeds the filters and the spec table — useful, but not what decides visibility.

The rule that hides offers after validation passes

Ceneo requires the file and the website to agree: the price and availability in the XML must match what a shopper sees on the product page. Discrepancies hide offers, and the check is continuous rather than a one-time import. It is the same trap as a price mismatch in Merchant Center, with one difference — Ceneo will not email you about it.

This is where a feed that regenerates on a schedule hurts: a promotion that starts at 9am and a file written at midnight disagree for nine hours, on every product in the sale.

Submitting the feed

1. Register a merchant account at Ceneo and complete the company details. 2. Paste the public URL of your XML in the merchant panel. 3. Fix what the validator reports — usually category paths, missing EANs and over-long names. 4. Top up the click balance: Ceneo bills per click, and listings pause when the balance runs out (Podręcznik integracji XML).

Questions merchants ask

Can I send Ceneo my Google Shopping feed?

No. Google Shopping uses RSS with g: attributes; Ceneo expects <offers> and <o> elements with Polish attribute names. A Google feed does not partly validate at Ceneo — it does not parse at all, and your shop shows no offers.

Is the Heureka file accepted, since both are Central European comparators?

No. Heureka expects SHOPITEM elements with PRICE_VAT and DELIVERY_DATE. Ceneo expects one-letter elements and an avail code. Shared geography is not a shared format; each portal needs its own file.

What does avail=99 mean?

Check availability in store. It is for offers that cannot be dispatched on a predictable timeline. Anything a shopper genuinely cannot order should be left out of the file rather than given a code.

Do I need an EAN for every product?

Not to pass validation, but an offer without an EAN or a manufacturer code is unlikely to be matched to Ceneo's product card, so it lists on its own where far fewer shoppers see it.

Where FeedRobin stands on Ceneo

Straight answer: FeedRobin does not generate the Ceneo file yet. We build Google, Meta, Microsoft, Heureka and Compari/Árukereső, idealo and the ChatGPT format — Ceneo is on the roadmap, and which portal we add next is decided by who asks. If you need it, write to contact@feedrobin.com and say so; that is how idealo got built.

What helps today regardless of the portal: the data Ceneo matches on is the same data Google rejects products over — barcodes, brands, titles, prices that agree with the page. The free feed check reads any feed you already have and lists what is missing, with no account.

Sources

Ceneo's own documentation: Instrukcja tworzenia pliku XML (the element and attribute reference, the avail codes and the character limits) and the Podręcznik integracji XML (submitting the file, and the requirement that the file and the shop agree).

Read next

Product feeds for price comparators: the XML formats explainedHeureka and Compari/Árukereső side by side, element by element — what they share underneath, why a shared owner doesn't mean a shared file, and the six mistakes that make a portal list zero products.
7 min
Get your products on Compari, Árukereső and Heureka: the product feed guideHow the CEE price comparators work, the feed format they expect (it's not Google's), delivery-time fields, category mapping, and how to submit your catalog step by step.
7 min
The Skroutz XML feed: get your products onto Greece’s biggest marketplaceSkroutz wants a <mywebstore> document with thirteen mandatory fields, EAN on every category, real stock quantities and a 10 MB ceiling. What each field expects, and where feeds fail validation.
8 min
What is a product feed — and why every store advertising online needs oneThe file behind every Google Shopping ad, Instagram product tag and price-comparator listing: what a product feed contains, who reads it, and what happens when it's wrong.
5 min
Not sure what's wrong with your feed?Paste your feed URL and FeedRobin checks every product for missing barcodes, images, descriptions and more — free, no account needed.
Check my feed — it's free