
Ceneo feed for Shopify
Ceneo is Poland's price comparison site, with its own Kup teraz (Buy Now) basket built into the listing. Feedflock turns your Shopify catalog into the XML file Ceneo expects, every variant its own offer, the integration attributes Ceneo pairs on already filled, sold-out variants left out, and keeps it fresh on a stable public URL.

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.
Catch feed issues before Ceneo 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.
Register with Ceneo
Set up your shop with Ceneo.pl and register the feed's URL with their team. The file must be freely downloadable, with no password, and its location must not change; a move has to be reported to Ceneo.
Install Feedflock
Add Feedflock from the Shopify App Store. It reads your products, variants, stock and images directly through the Shopify API.
Pick the Ceneo template
Create a new feed and choose the Ceneo.pl template. The offer attributes id, url, price and avail and the elements cat, name, imgs, desc and attrs are mapped from the start, and Marka, Kod producenta and EAN fill from vendor, SKU and barcode.
Check dispatch time and category
avail defaults to 1 (ships within 24 hours). Switch to 3, 7 or 14 if that is what your shop page promises. Make sure each product has a specific category path; a catch-all like "Sale" can keep the offer off Ceneo.
Hand over the feed URL
Copy the hosted feed URL into your Ceneo registration. Feedflock regenerates the file every hour on the same address, so there is nothing to re-send.
https://feedflock.appfleece.com/f/demo-ceneo/ceneo.xml
The feed
What the channel receives
<o id="9087654322" url="https://shop.example/products/linen-shirt-sand?variant=9087654322" price="219.00" avail="1" weight="0.3" stock="12" basket="0"> <cat><![CDATA[Moda/Odzież męska/Koszule]]></cat> <name><![CDATA[Linen shirt Sand]]></name> <imgs> <main url="https://cdn.shop.example/img/linen-shirt-sand.jpg"/> <i url="https://cdn.shop.example/img/linen-shirt-sand-back.jpg"/> </imgs> <desc><![CDATA[<p>A breathable linen shirt in a regular cut.</p>]]></desc> <attrs> <a name="Marka"><![CDATA[Nordlin]]></a> <a name="Kod producenta"><![CDATA[SKU-2048]]></a> <a name="EAN"><![CDATA[8594000123453]]></a> <a name="Rozmiar"><![CDATA[M]]></a> </attrs> </o>

Nordlin
Linen shirt Sand
219 zł
Feed fields
cat
Moda/Odzież męska/Koszule
name
Linen shirt Sand
desc
A breathable linen shirt in a regular cut.
a
Nordlin
a
SKU-2048
a
8594000123453
a
M
The channel
Where Poland compares prices
Ceneo.pl is Poland's price comparison site, and its Kup teraz (Buy Now) service lets shoppers buy directly inside the listing. Enrolled offers carry a basket flag right in the feed.
Every size and colour competes
Ceneo wants a variant that changes the price sent as its own offer. Feedflock sends every variant that way, each with its own id and a URL that opens on that variant.
Pairing runs on three attributes
Ceneo names Marka, Kod producenta and EAN as the attributes without which integration is not possible. Fill them and your offers land on the right product cards next to your competitors.
The feed
- The Ceneo template renders the offer the way the spec's sample does: id, url, price and avail as attributes on <o>, cat, name, imgs, desc and attrs as child elements, Polish text in CDATA
- Marka, Kod producenta and EAN are mapped from the start (vendor, SKU and barcode), spelled exactly as Ceneo's own sample spells them
- Sold-out variants are left out by default, matching Ceneo's rule that an offer the customer cannot order may not be in the file
- avail starts at 1, and the template only suggests Ceneo's own dispatch codes: 1, 3, 7, 14, 90, 99 and 110
- Size, colour, material and gender options become <a> attributes (Rozmiar, Kolor, Materiał, Płeć), and the gallery renders as <main> plus <i> images
- The readiness check names every required element with gaps (an empty <desc> or <cat>) before you hand the URL to Ceneo
Deep dive
How the Ceneo feed works
- One
XMLfile from a publicURL: freely downloadable, no password - The file's location must not change; a moved file has to be reported to Ceneo's team
- Price and availability in the feed must match what the visitor sees on the shop page
- Hosted on a stable
URLand regenerated every hour
Technical details
Ceneo reads one XML file from a public URL. The access rules are strict: the file must be freely downloadable with no password, and its location must not change. A moved file has to be reported to Ceneo's team.
Feedflock hosts the file on a stable URL and regenerates it every hour, which serves Ceneo's core requirement that the file mirror the shop page: price and availability in the feed must match what the visitor sees. Ceneo warns that a mismatch can get offers hidden.
Attributes on the offer, details below it
- Core data (id, url, price, avail, optionally weight, stock and basket) are attributes on <o>
- Descriptive data (cat, name, imgs, desc and attrs) are child elements, all of them required
- The price is a bare decimal with a dot separator and no currency anywhere in the file
- The name is the exact product name, without sales slogans, up to 150 characters
Technical details
A Ceneo offer splits in two. The core data (id, url, price, avail, and optionally weight, stock and basket) are attributes on the <o> element. The descriptive data (cat, name, imgs, desc and attrs) are child elements, all five required, with Polish text wrapped in CDATA.
The price is a bare decimal with a dot separator and no currency anywhere in the file; for a Polish consumer shop that means the gross price. The name is the exact product name without sales slogans, and the description may carry simple HTML (p, h2, lists, bold) but no shop notes such as cheap shipping, no links and no shop data.
Seven codes for availability
- avail is a dispatch time, not a stock state, from a closed set: 1, 3, 7, 14, 90, 99 and 110
- 1 ships within 24 hours, 7 within a week, 90 is goods on order, 110 a pre-sale
- stock is a separate optional attribute, a positive whole number
- Offers the customer cannot order are forbidden. Sold-out variants are excluded by default
Technical details
avail is a dispatch time, not a stock state, from a closed set: 1 ships within 24 hours, 3 within three days, 7 within a week, 14 within 14 days, 90 is goods on order, 99 is "check in the shop" and 110 a pre-sale. The template starts at 1 and offers only these codes; pick the one your shop page actually promises.
Stock is a separate optional attribute, a positive whole number. What may never happen is an offer the customer cannot order: Ceneo's rules keep such offers out of the file entirely, which is why sold-out variants are excluded by default.
The integration attributes decide pairing
- Marka, Kod producenta and the 8- or 13-digit
EAN: the attributes without which integration is impossible - They render as <a> entries inside <attrs>, filled from vendor,
SKUand barcode - The category is your shop's own path, levels separated by '/', which Ceneo maps onto its tree
- Too general a path, or a label like 'Sale', can keep the offer off the listing
Technical details
Ceneo names the attributes without which integration is impossible: Marka (brand), Kod producenta (manufacturer code, with a space, as the spec's sample spells it) and the 8- or 13-digit EAN. They render as <a> entries inside <attrs>; the template fills them from your vendor, SKU and barcode.
The category is your shop's own path, levels separated by "/"; Ceneo maps it onto its own tree, and there is no category id in the feed. By default the path comes from the product type. Too general a path, or a marketing label like "Sale" or "New in", can keep the offer off the listing altogether.
The takeaway
One URL, an hourly refresh and an XML structure that follows Ceneo's spec attribute for attribute. Your Shopify catalog stays the single source of truth, and Ceneo always sees offers your customers can actually order.
Claude · ChatGPT
Or set up your Ceneo feed in chat
Connect Feedflock to Claude or ChatGPT and ask. It creates the feed as a draft, maps your categories to Ceneo's own tree and tells you what is still missing. You approve every change.
Create a Ceneo 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
Get on every marketplace that matters this afternoon.
Install free, connect your first feed in minutes, and let Feedflock keep it fresh and validated.