
Jeftinije.hr feed for Shopify
Jeftinije.hr is Croatia's price comparison site, part of the Heureka Group through sMind d.o.o., running the very same CNJExport format as its Slovenian sister Ceneje.si, published in Croatian. It pairs offers on codes, imports most values exactly once and runs no validator over your file; an editor reviews it instead. Feedflock renders the feed against the live specification, keeps the pairing fields filled and regenerates the file every hour on a stable 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.
A discounted item carries two prices, and the old one is required.
When an item is on sale, Jeftinije requires regularPrice: the price incl. taxes before the discount, beside the final price. Feedflock fills it from your Shopify compare-at price and leaves the element out entirely when nothing is discounted, exactly as the template's guard works. A real markdown therefore shows as an old price and a new one, and a full-price item never carries a fake one.
Catch feed issues before Jeftinije.hr 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 your shop with Jeftinije
Apply through Jeftinije.hr's merchant onboarding. As on Ceneje, onboarding is personal: you host the XML file on your server and send them the URL, and an editor confirms the feed before anything imports. Questions go to the shared group address, urednik@ceneje.si.
Install Feedflock
Add Feedflock from the Shopify App Store. It reads your products, variants, stock and images directly through the Shopify API.
Pick the Jeftinije.hr template
Create a new feed and choose the Jeftinije.hr template. One Item per variant under a bare CNJExport root, with ID, name, link, mainImage, price, stock, fileUnder, brand and EAN mapped from the start, prices in euro with curCode EUR. HRK is not a legal value, whatever the site's stale sample feed still prints.
Map categories and check pairing data
Match your product types in the category mapping; that fills fileUnder, which Jeftinije classifies from. Their numeric cenCategoryId, stored in a metafield, places an item within 48 hours. And fill the trio Jeftinije pairs on: a 13-digit EAN from the barcode, productCode from the SKU, productModel from a metafield.
Send the feed URL
E-mail the hosted feed URL to Jeftinije. After the editorial check your products import; from then on price and stock refresh about every two hours and the assortment nightly, all read from the same URL.
https://feedflock.appfleece.com/f/demo-jeftinije/jeftinije.xml
The feed
What the channel receives
<Item> <ID>SKU-2048-M</ID> <groupId>8236409175213</groupId> <name><![CDATA[Linen shirt Sand]]></name> <description><![CDATA[<p>A breathable linen shirt in a regular cut.</p>]]></description> <link>https://shop.example/products/linen-shirt-sand?variant=44718293450817</link> <mainImage>https://cdn.shop.example/img/linen-shirt-sand.jpg</mainImage> <moreImages>https://cdn.shop.example/img/linen-shirt-sand-back.jpg</moreImages> <price>49.00</price> <curCode>EUR</curCode> <stock>in stock</stock> <deliveryTimeMin>1</deliveryTimeMin> <deliveryTimeMax>3</deliveryTimeMax> <fileUnder><![CDATA[Odjeća i obuća > Muška odjeća > Muška odjeća za slobodno vrijeme > Muške košulje]]></fileUnder> <cenCategoryId>1902</cenCategoryId> <brand><![CDATA[Nordlin]]></brand> <EAN>8594000123453</EAN> <productCode>SKU-2048-M</productCode> <condition>new</condition> <attributes> <gender>male</gender> <color><![CDATA[Sand]]></color> <size><![CDATA[M]]></size> <ageGroup>adult</ageGroup> <attribute> <name>Materijal</name> <values><value>100% linen</value></values> </attribute> </attributes> </Item>

Nordlin
Linen shirt Sand
49 €
Feed fields
ID
SKU-2048-M
groupId
8236409175213
name
Linen shirt Sand
description
A breathable linen shirt in a regular cut.
link
https://shop.example/products/linen-shirt-sand?variant=44718293450817
price
49.00
curCode
EUR
stock
in stock
deliveryTimeMin
1
deliveryTimeMax
3
fileUnder
Odjeća i obuća > Muška odjeća > Muška odjeća za slobodno vrijeme > Muške košulje
cenCategoryId
1902
brand
Nordlin
EAN
8594000123453
productCode
SKU-2048-M
condition
new
gender
male
color
Sand
size
M
ageGroup
adult
name
Materijal
value
100% linen
The channel
Where Croatia compares prices
Jeftinije.hr's own front page invites shoppers to compare 6,489,614 products from 554 shops (read 2026-09-03). It is the Croatian sister of Slovenia's Ceneje.si, under sMind d.o.o. in the Heureka Group. Harvey Norman, whose live feed proves the hosted-URL model end to end, is one of the listed merchants.
Pairing runs on codes
Your offer is matched to the product card by EAN + productCode + productModel. Send CUIN, the group's own product code from the card, and the item auto-links to the existing catalog entry within 48 hours.
Price and stock every two hours
Jeftinije's own B2B FAQ splits the sync in two: price and availability are re-read several times a day, about every two hours; the assortment syncs nightly. Fresh data pays off here more than almost anywhere else.
The feed
- A template written against the live Croatian specification (read 2026-09-03): bare CNJExport root, case-sensitive tags, text in CDATA, ids and enums bare
- One Item per variant tied together by groupId; clothing and footwear send gender, color, size and ageGroup, every other attribute a repeatable <attribute> block
- The pairing fields mapped from the start: EAN from the barcode, productCode from the SKU, brand from the vendor
- fileUnder from category mapping against the real Jeftinije tree (1,403 categories, synced in the app), and cenCategoryId from a metafield for 48-hour placement
- Euro pricing done right: curCode EUR, because HRK is not an accepted value. The kuna in the site's own sample feed is a leftover from before 2023
- regularPrice from the compare-at price, present only on discounted items, exactly as Jeftinije requires; deliveryTimeMin/Max as a working-day pair and deliveryCost 0 for free delivery
- The readiness check names every required element with a gap (a missing EAN, fileUnder or brand) before the URL goes to Jeftinije
Deep dive
How Jeftinije reads your feed
- One
UTF-8XMLfile on aURLyou host. Jeftinije polls it; there is no upload UI and noAPI - The first import waits for an editor to confirm the feed; questions go to urednik@ceneje.si
- The assortment syncs nightly (00:00–04:00); price and stock are re-read about every 2 hours
- No item cap and no file-size limit: a Croatian shop's live jeftinije.xml runs 49 MB
Technical details
Jeftinije reads one XML file from a URL you host and e-mail to their team; there is no upload interface and no API. Nothing imports until an editor confirms the feed; the address at the foot of the spec, urednik@ceneje.si, is shared by all four storefronts of the group. After that the rhythm splits in two: new and withdrawn products move once a night between midnight and four in the morning, while price and stock are re-read several times a day, about every two hours.
No item cap, file-size limit or compression rule is stated anywhere, and none is enforced: one Croatian cosmetics shop publishes a jeftinije.xml of 49 MB and a ceneje.xml of 46 MB side by side, both regenerated daily. The declared encoding must match the file's real one; Feedflock emits and declares UTF-8, hosts the file on a stable URL and regenerates it every hour, so both of Jeftinije's rhythms always read current data.
The name is written once
- Only about twenty elements are re-read daily: price, stock, link, delivery and a few more
- name, description, mainImage, fileUnder, brand and
EANimport once; later changes bring additional costs - The name must carry brand + product type + model, with no promo words, no all-caps, no size in clothing
- description and specifications are
HTMLinCDATA; specifications feed Jeftinije's filters
Technical details
The most consequential line of the spec is easy to miss: most values are imported into Jeftinije's database only once, and later changes to them bring additional costs. The re-read list covers price, regularPrice, clubPrice, stock, stockText, link, the delivery elements, condition, warranty, coupon and gift. A name, description, main image, category path, brand or EAN is not on it. A wrong product name is a support ticket, not a regeneration.
So the name deserves the care the spec asks for: brand + product type + model, as in their example “SAMSUNG hladnjak RB37J5018SA”. No promo phrases like besplatna dostava or poklon, no all-caps, second-hand status stated, and for clothing and footwear the size must stay out of the name. Descriptions are HTML without styling, wrapped in CDATA, and the specifications element is what Jeftinije turns into the filters buyers narrow results with.
Pairing runs on codes
- Offers pair to the catalog by
EAN+ productCode + productModel; the name is what editors classify from - The
EANis exactly 13 digits with a validGS1check digit; a 14-digitGTINfails CUIN, the group's own product code, auto-links an item to the existing catalog within 48 hours- An ID must never change or be reused: a duplicated ID drops every offer that shares it
Technical details
Jeftinije pairs your offer to its product card by EAN, productCode and productModel, as stated outright in the spec's closing list of common problems. The EAN is exactly 13 digits, valid per GS1, with restricted and coupon prefixes excluded; a 14-digit GTIN or a leading-zero value does not pass, exactly as on Heureka. The template fills EAN from the Shopify barcode and productCode from the SKU.
Two shortcuts exist. CUIN, the group's own product code shown on every Jeftinije.hr product page under “Podaci”, auto-links your item to the existing catalog entry within 48 hours, and cenCategoryId (the numeric id from the group's category archive) places it into the right category just as fast. The ID itself is permanent: never changed, never recycled, kept across a platform migration, because a duplicated ID drops every offer that shares it.
Variants, categories and delivery
- One Item per variant, tied together by groupId, which is reserved for color, size, gender and ageGroup differences
- Clothing and footwear must send gender, color, size and ageGroup
- fileUnder is your shop's own category path: required, exactly one per item
- deliveryCost is a single price per item (0 means free); delivery times are a working-day pair
Technical details
Variants are flat: one Item per variant, tied together by groupId. And groupId is reserved for products that differ by the four pre-defined attributes color, size, gender and ageGroup, sent inside the attributes block. For clothing and footwear all four are required; every other attribute goes out as a repeatable attribute block with a name and values.
fileUnder carries your shop's own category path, exactly one per item. Jeftinije classifies from it, so the mapping matters. Availability is a three-value enum with dispatch semantics: in stock ships within a day, preorder in 2–10 working days, out of stock has no known date. Unlike Heureka, an out-of-stock item may stay in the feed. Delivery is one price per item, 0 for free, with deliveryTimeMin/Max in working days required whenever the item is in stock or on preorder.
The takeaway
One URL, two sync rhythms and an XML that follows Jeftinije's spec element by element. The names and codes Jeftinije imports only once go out right the first time, and Feedflock keeps price and stock current from then on.
Claude · ChatGPT
Or set up your Jeftinije.hr feed in chat
Connect Feedflock to Claude or ChatGPT and ask. It creates the feed as a draft, maps your categories to Jeftinije.hr's own tree and tells you what is still missing. You approve every change.
Create a Jeftinije.hr 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
Related feeds
Explore all 101 channelsGet on every marketplace that matters this afternoon.
Install free, connect your first feed in minutes, and let Feedflock keep it fresh and validated.