Generates the Ceneo XML feed (ceneo.pl) from your OpenCart catalogue: your own mapping to the Ceneo category tree, avail codes from stock status, one offer per size or colour, brand, manufacturer code and EAN attributes, per-product exclude, a cached feed file rebuilt by the OpenCart cron behind a secret URL, and a self-check page that lists products with missing elements. Prices with VAT in PLN. One feed and one currency per store. OpenCart 4, events only, no OCMOD.
Tested on 4.1.0.4Updated Nov 6, 2026Version 1.0.2Compatible with OpenCart 4.1.0.4 No core file edits
Built forOpenCart
Every product checked before Ceneo sees it1 of 4
What it does
Generates the Ceneo XML feed (ceneo.pl) from your OpenCart catalogue: your own mapping to the Ceneo category tree, avail codes from stock status, one offer per size or colour, brand, manufacturer code and EAN attributes, per-product exclude, a cached feed file rebuilt by the OpenCart cron behind a secret URL, and a self-check page that lists products with missing elements. Prices with VAT in PLN. One feed and one currency per store. OpenCart 4, events only, no OCMOD.
What it changes for your store
Your OpenCart catalogue on Ceneo. Ceneo is the price comparison service of Poland. It reads your offers from an XML file. This extension builds that file from your catalogue and tells you, product by product, what is still missing before Ceneo sees it.
Know the limits. One feed and one currency per store. You need your own Ceneo account; Ceneo decides which offers it accepts. Category specific attributes and product safety data for "Kup teraz" offers are sent only as far as you keep them in OpenCart. The extension is not affiliated with Ceneo.
Features
What goes into the feed
Offer attributes id, url, price, avail, weight in kilograms, basket and stock
cat, name, imgs (main image and extra images), desc and attrs: Marka, Kod producenta, EAN, Wyprodukowane przez and your product attributes
Special prices, taxes as your storefront shows them, converted to PLN with your OpenCart currency rate
Mapping
One Ceneo category path per store category, nearest mapped parent for sub-categories, override for single products
Stock status to avail code: 1, 3, 7, 14, 90, 99, 110, or leave the product out
Every size and colour combination is its own offer with the variant in the name and in the attributes
Buy now (basket) flag and optional stock quantity
Control and speed
A cached feed file behind a secret URL, rebuilt by the OpenCart cron job the extension registers
Per-product exclude and a build button in the admin
A self-check page: every product with its errors (required elements missing) and warnings (category, brand, EAN, manufacturer code)
Events only, no OCMOD, no core edits; OpenCart 4, tested on 4.1.0.4
What you get
Download & installOne installer package (.ocmod.zip) for OpenCart 4.0.2 – 4.1.x. There is no OpenCart 3 edition. Download it from My licenses right after payment.
12 months of updates & supportNew versions and help for 12 months (24 or 36 months at checkout). After that the extension keeps working; renew anytime at 50%.
License for your storeOne production domain with all its subdomains; staging and local development hosts are free. How licensing works
30-day refundFull refund within 30 days of your first purchase, no reason needed. Refund policy
Tested buildsOpenCart 4.1.0.4. Tested on OpenCart 4.1.0.4.
Documentation & supportFull guide (Installation, Configuration, FAQ) on this page. Tickets from your account, first reply within 1 business day.
Compatibility
Ceneo XML Feed works with OpenCart 4.1.0.4.
We list the builds we install and test on. “Tested” means the test plan ran on that build; “Supported” means the build is inside the supported range.
Compatibility
Version
Range
Runs on
Status
OpenCart 4.1.0.x
4.1.0.0 – 4.1.0.4
PHP 8.1 – 8.3
Tested on 4.1.0.4
OpenCart 4.0.2.x
4.0.2.0 – 4.0.2.3
PHP 8.0 – 8.2
Supported
1.0.0
Nov 6, 2026
Latest
First release: Ceneo XML feed for OpenCart 4.1.x with category mapping, avail codes from stock status, variants as separate offers, brand / manufacturer code / EAN attributes, per-product exclude, cached file behind a secret URL rebuilt by cron, and a self-check page.
How do I install the extension?
Upload. Extensions > Installer: upload the .ocmod.zip. It is for OpenCart 4 (4.0.2 to 4.1.x).
Install and enable. Extensions > Extensions > Modules: install, open the settings and switch it on. Events register themselves; nothing is patched.
Enter the license key. Paste the key from My licenses. Subdomains, staging and local hosts are included; you have 14 days to do it.
OpenCart 4.1.0.4. Tested on OpenCart 4.1.0.4. The Compatibility tab lists every version range.
Do the extensions change core files?
No. They work through OpenCart events and standard extension types (modules, order totals, themes). No core file edits, no OCMOD patches, no theme template edits, so OpenCart updates and other extensions keep working.
What does the license cover?
One production store domain with every subdomain (www, shop., staging.), plus local development hosts such as localhost, *.local and *.test. A store on another domain needs its own license; a second-store license is 40% off. You have 14 days after installing to enter the key. 12 months of updates and support are included; after that the extension keeps working and renewals are 50% off. How licensing works
Can I get a refund?
Yes. Ask for a full refund within 30 days of your first purchase, no reason needed: open a ticket or write to [email protected] with your order number. The money goes back to the card or bank account you paid with within 5 business days of approval. Refund policy
How do I get help?
Open a ticket from your account, so your license details are attached. We answer Monday to Friday: bug reports within 1 business day, how-to questions within 2. Support policy. Not a customer yet? Ask a pre-sales question.
Ceneo XML Feed turns your OpenCart catalogue into the XML product file that Ceneo (ceneo.pl, the Polish price comparison service) reads. You map your categories to the Ceneo category tree, choose the avail code for each stock status and give Ceneo one secret feed URL. The feed is a cached file that the OpenCart cron rebuilds, so Ceneo never slows your shop down.
Self-check page
What it does
Ceneo feed format. An <offers> document (xmlns:xsi, version="1", UTF-8) with one <o> element per product or variant: the attributes id, url, price, avail, weight, basket, stock and the children cat, name, imgs (main and i), desc and attrs (a name="..."), as published in the Ceneo XML instructions for shops.
Integration attributes.Marka, Kod producenta, EAN and Wyprodukowane przez, plus your OpenCart product attributes and the size and colour option names.
Prices with VAT. Special prices are used; taxes are added the way your storefront shows them; the amount is converted to the feed currency (PLN) with the rate in your OpenCart currencies.
Category mapping. One Ceneo category path per store category, separated by "/", a nearest-parent fallback and a per-product override.
Availability from stock status. The avail code you choose for in-stock products and, per stock status, for products with no stock (1, 3, 7, 14, 90, 99, 110, or leave the product out).
Variants. Choose the size option and the colour option. Every size and colour combination becomes its own offer, as Ceneo asks for variants with different prices.
Per-product exclude and a cached feed file with a secret URL.
Self-check. A product list that shows missing required elements (errors) and missing integration attributes (warnings) for every product.
Events only, no OCMOD, no core edits. OpenCart 4, tested on 4.1.0.4.
Limits to know
One feed per store and one currency.
Ceneo requires a main image, a description, a category from its tree and the brand, manufacturer code and EAN attributes. Offers with a price of zero are not written, because Ceneo uses price 0 to hide an offer.
Ceneo also asks for category specific attributes and, for "Kup teraz" offers, product safety data (GPSR). This extension sends the attributes you keep in OpenCart; it does not generate regulatory data.
The extension builds the feed. You still need a Ceneo account, and Ceneo decides which offers it accepts.
Installation
Requirements
OpenCart 4.1.x (tested on 4.1.0.4) and PHP 7.4 or newer.
PLN in System > Localisation > Currencies with a rate against your default currency.
The OpenCart cron running (see below) if you want the feed rebuilt automatically.
Install
Go to Extensions > Installer and upload kv_ceneo_feed.ocmod.zip, then press the install button.
Go to Extensions > Extensions, choose Modules and install Ceneo XML Feed (plus button). Installation creates two small tables, an hourly cron job and a secret key for the feed URL.
Press the edit button. On the General tab choose PLN as the feed currency, the size and colour options if you use them, the barcode and manufacturer code sources and the Buy now setting.
On Availability choose the avail code for each stock status. On Categories type the Ceneo category path for your categories. Press Save.
Press Build feed and run check, open Products and check, fix what is listed, build again.
Copy the Feed URL from the top of the page into your Ceneo shop panel.
Other user groups need access and modify rights for extension/kv_ceneo_feed/module/kv_ceneo_feed under System > Users > User Groups.
Cron
The extension registers the job "Ceneo XML Feed" in System > Maintenance > Cron Jobs. It needs the standard OpenCart cron call on your server, for example every 15 minutes:
The job rebuilds the file when it is older than the interval you set (default 6 hours). A server cron can also call the cron URL shown on the settings page. If nobody calls the cron, the feed URL rebuilds an outdated file when Ceneo asks for it.
Uninstall
Uninstalling removes the tables, the cron job, the events and the generated files. Your products and categories are not touched.
Configuration
General
Settings
Status. Off stops the feed URL and the scheduled rebuild. Nothing else changes.
Feed currency. PLN for ceneo.pl. The amount is your price with taxes, converted with the rate of the currency.
Rebuild interval. How old the cached file may get before the cron or the feed URL builds it again.
Store address. Optional public address for product and image links, for example behind a proxy.
Size option, Color option. Product options whose values are sizes and colours. Every combination becomes its own offer with the stock and price of its option values.
MPN, Barcode (EAN). Where "Kod producenta" and "EAN" come from (the identifier fields of the product in OpenCart 4.1, or Model / SKU).
Availability when in stock. The avail code of products with stock: 1 (24 hours), 3, 7 or 14 days.
Buy now (basket).basket="1" only if you take part in the Ceneo "Kup teraz" programme; otherwise basket="0".
Send stock quantity. Adds the stock attribute for products with a quantity above zero.
Manufacturer entity. Optional fixed text for "Wyprodukowane przez"; empty uses the product manufacturer.
Availability
Availability
A product with a quantity above zero gets the in-stock avail code. For the others choose the avail code of the product's stock status: 1, 3, 7, 14 (shipping within that time), 90 (made to order), 99 (no shipping information), 110 (pre-order) or Leave the product out of the feed. Ceneo only lists offers that can be ordered.
Categories
Categories
Type the full category path of the Ceneo category tree, separated by "/" (for example Dom i ogród/Ogród/Nawadnianie/Pompy ogrodowe, up to 255 characters). A sub-category without its own entry uses the nearest mapped parent. A category with no mapping sends the store path and the check lists it as a warning. A single product can have its own category on the Products and check tab.
Products and check
Check
Press Build feed and run check. The list shows every product with OK, errors (id, url, price, cat, name, main image or desc missing or invalid) and warnings (the Marka, Kod producenta and EAN attributes, unmapped category). Exclude keeps a product out of the feed.
FAQ
Where do I give the feed to Ceneo?
Copy the Feed URL from the top of the settings page into your Ceneo shop panel (the XML file address). The URL contains a secret key; create a new key on the General tab if it ever leaks.
Why is a product missing from the feed?
It is disabled, excluded, not in the default store, has a price of zero, or it has no stock and its stock status is set to leave it out. The Products and check tab shows "Excluded" and "Left out".
Which category text does Ceneo expect?
Ceneo asks for the exact category from its own tree, from the top level to the most specific level, separated by "/". Copy the path from Ceneo and paste it on the Categories tab. Anything else is sent as it is and flagged as a warning.
Do prices include VAT?
Yes. price is the price your storefront shows with taxes, converted to the feed currency.
How are variants sent?
Each size and colour combination is a separate offer with its own id, price and stock, as Ceneo asks for variants that change the price.
Does it use OCMOD or change core files?
No. It uses OpenCart events and its own files only.
Does it call any other server?
No. Building and serving the feed uses only your own shop.
Server-side tracking for OpenCart 4.x and 3.0.x: purchases, refunds, add to cart, checkout, product views and leads go from your server to the free official GA4 Measurement Protocol, Meta Conversions API and TikTok Events API, deduplicated with the browser pixels through shared event ids. Consent-aware, SHA-256 hashed customer data, order status mapping, queue with retries, test mode and an event log. No paid relay, events only, no OCMOD.
The department store theme for OpenCart 4.x and 3.0.x: colour-coded departments, a department list beside the hero slider with two side promos, a big search with a department selector, tabbed product blocks, a 2 + 1 + 2 offer grid, deals of the day with real countdowns, a department showcase, a promotions band and a three-column product page with a sticky buy box. Four styles (Meridian, Harbor, Citrus, Night) and your own colours on top. Events only, no core changes.
Stop AI crawlers, scrapers, vulnerability scanners and unwanted countries before OpenCart 4.x or 3.0.x builds a page. Googlebot and Bingbot are verified by DNS and always allowed; 50+ bots get one switch each; country rules use free GeoIP databases and can close only the checkout; IP and network lists, rate limits, honeypots and the cart flood fix; a one-second challenge instead of a captcha; learning mode, dashboard, log, IP tester and Cloudflare export. No core changes, no OCMOD.