Skip to content
Ceno.lv
Price comparison

Ceno.lv feed for Shopify

Ceno.lv is a Latvian aggregator of online shops where shoppers search and compare products from more than 600 e-shops across Latvia in one place. It is a comparison engine, not a marketplace: the checkout stays with you. Feedflock renders your Shopify catalog into the XML file Ceno's joining rules ask for, built from the element names of Ceno's own sample, saved in UTF-8 and hosted on a stable URL that fits Ceno's daily update.

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 · ceno.xmlUpdated just now
<item>
<name><![CDATA[Linen shirt Sand M]]></name>
<link>https://shop.example/products/linen-shirt-sand?variant=44718293450817</link>
<price>49.00</price>
<image>https://cdn.shop.example/img/linen-shirt-sand.jpg</image>
<manufacturer><![CDATA[Nordlin]]></manufacturer>
<category><![CDATA[Men's shirts]]></category>
<category_full><![CDATA[Clothing > Men's shirts]]></category_full>
<in_stock>0</in_stock>
<ean>8594000123453</ean>
<used>0</used>
</item>

Setup

Live in five steps

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

  1. Read the nine joining rules

    Ceno lists a shop under nine rules. The ones to plan for: one shop per domain, products that can be bought in your shop and received in Latvia, fitting product images, and a CENO.lv banner on your own site, preferably on the home page or in the footer.

  2. Install Feedflock

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

  3. Pick the Ceno.lv template

    Create a new feed and choose the Ceno.lv template. name, link, price, image, manufacturer, category, category_full, in_stock, ean and used are mapped from the start, one item per variant so no product appears twice.

  4. Add delivery and the optional elements

    Ceno's ten delivery elements are desirable but have no defaults: enter your real prices and day counts for the methods you offer and leave the rest unmapped. model, category_link and price_sale are yours to map too, if you use them.

  5. Register your shop

    Put the CENO.lv banner on your site and register at ceno.lv/register/store with true company data. The hosted feed URL is the XML file the rules ask for. Ceno also supports other XML layouts, but asks you to say so by e-mail after registering.

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

Catch feed issues before Ceno.lv 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 · ceno.xml
75 / 100
To review: 4
No image on 4 productsJoining rule 5 says products must have fitting images. These products have neither a variant image nor a featured image, so image would go out empty.
No vendor on 7 productsCeno describes name as manufacturer, product model and code. The name and the manufacturer element both read the Shopify vendor, which is empty on these products.
used left at 0 on 3 second-hand productsFor used goods the used element is mandatory and must be 1. The default 0 is the value Ceno's own sample sends for a new product.
No product type on 6 productscategory fills from the product type and category_full falls back to it. Without a type both elements are left out of the item.

The feed

What the channel receives

ceno.xml
<item>
  <name><![CDATA[Nordlin Linen shirt Sand M]]></name>
  <link>https://shop.example/products/linen-shirt-sand?variant=44718293450817</link>
  <price>49.00</price>
  <image>https://cdn.shop.example/img/linen-shirt-sand.jpg</image>
  <manufacturer><![CDATA[Nordlin]]></manufacturer>
  <category><![CDATA[Men's shirts]]></category>
  <category_full><![CDATA[Clothing > Men's shirts]]></category_full>
  <in_stock>0</in_stock>
  <ean>8594000123453</ean>
  <used>0</used>
</item>
Live preview
Linen shirt Sand

Nordlin

Linen shirt Sand

49 €

Feed fields

name

Nordlin Linen shirt Sand M

link

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

price

49.00

manufacturer

Nordlin

category

Men's shirts

category_full

Clothing > Men's shirts

in_stock

0

ean

8594000123453

used

0

The channel

A third place Latvia compares prices

Ceno.lv describes itself as an aggregator of online shops that lets users search and compare products in one place, with more than 600 e-shops from across Latvia.

The checkout stays with you

Ceno is a comparison engine, not a marketplace. The shopper finds your offer on Ceno, clicks through and buys on your own site, under your own terms.

Your feed URL stays private

Ceno states that it will not disclose the address of your product file to anyone and will not open it without reason. The file lives on a URL, and Ceno picks it up from there.

The feed

  • The template uses exactly the element names of Ceno's own sample and annotated list: <root> with one <item> per variant, free text in CDATA, UTF-8 by default because Ceno makes UTF-8 a working condition
  • name defaults to vendor, product title and variant title, matching Ceno's description of the element: manufacturer, product model and code
  • price is the gross shelf price in euros as a bare number with a decimal point and two places, the form Ceno states twice
  • One item per variant, each with its own variant link, so the rule against listing the same product twice is met by construction
  • in_stock sends Shopify's stock level with oversold variants clamped to 0, and used defaults to 0, the value Ceno's sample sends for a new product
  • No delivery element is filled with an invented 0: in Ceno's feed 0 is a real price (free), so each method stays out until you enter your own figure

Deep dive

01

How the Ceno feed works

  • An XML file on a URL: Ceno's own examples are /xml/cenolv.php and /xml/cenolv.xml on the shop's server
  • The file has to be saved in UTF-8 to work
  • Ceno updates its database of products and shops every day, and recommends shops refresh daily
  • Other XML layouts are supported, by e-mail after registration
Technical details

Ceno reads a file from a URL. Its spec page shows where the file should live with two example addresses, says the file must be saved in UTF-8 to work, and states that Ceno updates its database of product ranges and shop information every day. For that reason it recommends that shops refresh availability and assortment daily as well.

Feedflock hosts the file on a stable URL and regenerates it as often as every hour, comfortably inside that daily rhythm. You hand Ceno the URL once, and there is nothing to upload again. If you already have a differently shaped XML, Ceno says other formats are supported too, but it wants to hear about it by e-mail after you register.

02

The sample is the specification

  • Thirteen product elements: name, link, price, price_sale, image, manufacturer, model, category, category_full, category_link, in_stock, ean, used
  • Ten delivery elements, each marked as desirable
  • Nothing is called mandatory except used, and only for second-hand goods
  • No length limits, no image size rules and no item caps are stated
Technical details

Ceno's XML page is one complete sample feed followed by the same elements again, each with a short comment. That is the whole vocabulary: thirteen product elements and ten delivery elements under <root>/<item>. There is no developer portal, no schema file and no validator to test against.

The page almost never says "mandatory". It demands prices in euros with VAT, the joining rules demand fitting images, and used is mandatory for second-hand goods; delivery elements and in_stock are only recommended. The template treats name, link, price and image as required, because an offer without them is not an offer, and leaves the rest optional.

03

Prices, sale prices and stock

  • price: euros including VAT, a number with a decimal point
  • price_sale: the promotional price next to the normal price, unmapped by default
  • in_stock: the units available for delivery in Riga within 4 working days, recommended
  • used: 1 for used, 0 for new
Technical details

All prices are given in euros with VAT, as a number whose decimal part is separated by a point. Ceno pairs price with price_sale: the normal price and the promotional one. Shopify models it the other way round (the price is what the customer pays today and the compare-at price is the old one), so the template gives price_sale no automatic value. If you want Ceno's pairing, you map the two fields yourself.

in_stock is more specific than a stock level: Ceno recommends giving the quantity in the warehouse that is available for delivery in Riga within four working days. The template sends Shopify's inventory count, never below 0. If your stock cannot reach Riga in that time, override the mapping with a number that is true for you.

04

Delivery: every method is its own element

  • Six named methods: Latvijas Pasts, DPD Pickup, Pasta Stacija, Omniva, Circle K, Venipak Pickup
  • Two maximum prices (Riga, Latvia) and two maximum working-day counts
  • A method you do not support stays empty; 0 means free
  • delivery_latvija is the maximum price here, and the cheapest on Salidzini.lv
Technical details

Ceno has no delivery block and no carrier codes. Each method is an element of its own, so a DPD pickup price goes into delivery_dpd_paku_bode and nowhere else. Next to the six methods sit delivery_cost_riga and delivery_latvija, the maximum delivery prices for Riga and for Latvia, and delivery_days_riga and delivery_days_latvija, the maximum number of working days.

All ten are desirable, numeric, and have no default in the template. Ceno's rule is that an unsupported method is left empty, and a 0 would advertise free delivery, so Feedflock writes a delivery element only once you have entered your own value. Take care when you also list on Salidzini.lv: the same element names mean the maximum on Ceno and the cheapest there.

05

Nine rules before the feed counts

  • True registration data, and only one shop per domain name
  • No product listed twice in the XML, and fitting images on every product
  • Products can be bought in the shop and received in Latvia
  • A CENO.lv banner on your site; fake reviews are strictly forbidden
Technical details

Registration at ceno.lv/register/store comes with nine rules of use. Some are about the feed, and the template covers them: the XML follows Ceno's sample, each variant is its own item with its own link, and image is always filled when the product has one. Others are about the shop: true registration data, one shop per domain, and products a customer can actually buy and receive in Latvia.

Two need action on your side. Ceno expects its banner on the registered shop's website, preferably on the home page or in the footer, which is a small theme edit. And it forbids fake profiles used to review your own shop or to discredit competitors; a shop suspected of unfair behaviour can be warned or blocked.

The takeaway

One URL, a daily update and an XML file that speaks Ceno's own sample. Your Shopify catalog stays the single source of truth, and the parts only you can decide (delivery prices, the banner, the registration) stay clearly in your hands.

Claude · ChatGPT

Or set up your Ceno.lv feed in chat

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

feedflock · mcp

Create a Ceno.lv 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

No. The Ceno.lv template renders the full structure for you: <root> with one <item> per variant, Ceno's own element names, free text in CDATA, UTF-8 encoding. If you ever need a custom layout, the Liquid editor builds one in XML, CSV or JSON with a live preview.
Register your shop at ceno.lv/register/store with true data, have your feed URL ready, and follow the nine rules of use: one shop per domain, no duplicate products in the file, fitting images, products receivable in Latvia and a CENO.lv banner on your site.
Ceno updates its database of products and shops every day and recommends that shops refresh their data daily. Feedflock regenerates the file on a stable URL as often as every hour, so each daily update reads recent prices and stock.
Because Ceno and Shopify pair the two prices in opposite ways. On Ceno, price is the normal price and price_sale the promotional one. In Shopify, the price is what the customer pays now and the compare-at price is the old one. An automatic fill would put the wrong number in the sale field, so you map the pair deliberately.
Only the methods you really offer, with real prices: Latvijas Pasts, DPD Pickup, Pasta Stacija, Omniva, Circle K or Venipak Pickup, plus the maximum prices and working days for Riga and Latvia. Ceno wants an unsupported method left empty, and 0 means free delivery.
No. Create a separate feed from each template. The three Latvian engines look alike but differ where it hurts: the brand is manufacturer here and brand on Salidzini, only Ceno has price_sale and model, Kurpirkt has a single delivery element, and delivery_latvija means the maximum price on Ceno but the cheapest on Salidzini.

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