Skip to content
Hintaopas.fi
Price comparison

Hintaopas.fi feed for Shopify

Hintaopas.fi is the Finnish face of Prisjakt / PriceSpy, the Schibsted price-comparison network: one specification, one vocabulary and one required set serve every site from prisjakt.nu to pricespy.co.uk; only the currency, language and market differ. Feedflock renders your Shopify catalog on a template written against the developer portal's own field pages and regenerates the file on your schedule, as often as every hour, on a stable public URL.

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 · hintaopas.xmlUpdated just now
<item>
<g:id>SKU-2048</g:id>
<g:item_group_id>8236409175213</g:item_group_id>
<g:title><![CDATA[Linen shirt Sand]]></g:title>
<g:description><![CDATA[Hengittävä pellavapaita rentoon menoon, pehmeää kudottua pellavaa, lyhyt kaulus ja rintatasku.]]></g:description>
<g:link><![CDATA[https://kauppa.example/products/pellavapaita-sand?variant=44718293450817]]></g:link>
<g:image_link><![CDATA[https://cdn.kauppa.example/img/pellavapaita-sand.jpg]]></g:image_link>
<g:price>49.00 EUR</g:price>
<g:availability>out_of_stock</g:availability>
<g:condition>new</g:condition>
<g:brand>Nordlin</g:brand>
<g:gtin>8594000123453</g:gtin>
<g:mpn>SKU-2048</g:mpn>
<g:google_product_category><![CDATA[Apparel & Accessories > Clothing > Shirts & Tops]]></g:google_product_category>
<g:size>M</g:size>
<g:size_system>eu</g:size_system>
<g:shipping_weight>0.30 kg</g:shipping_weight>
</item>
Category mapping

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.

Full category path in the feed
One mapping per product type
Override per individual product
Shopify typeproducts
Channel category
Pánské košile
Catalog coverage79 %
−20% off compare-at
Productg:price (regular)g:sale_​price
Linen shirt Sand49.00 €39.20 €
Mug Fjord 350 ml15.00 €12.00 €
Backpack Ridge 28 l75.00 €60.00 €
Soy candle Les14.00 €11.20 €
Wool scarf Fjell29.00 €23.20 €
36.40 €saved across these products
5 / 5products with an active g:sale_price
Sale prices

A sale offer is two prices, never one.

While a product is on sale, g:price carries the regular price and g:sale_price the discounted one, always lower, or the value is dropped. Feedflock derives both from Shopify's compare-at price, so the pair can never invert. And if you schedule the sale with g:sale_price_effective_date, both ends must fall within one year of today, or the sale price silently leaves the listing.

Feed health

Catch feed issues before Hintaopas.fi 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 · hintaopas.xml
73 / 100
To review: 4
Title without the manufacturer on 9 offersThe title is the single most important attribute for indexing, and the spec asks for the manufacturer name alongside the product name: “Nordlin Pellavapaita Sand”, not just “Pellavapaita Sand”.
Price not in “NN.NN EUR” form on 6 offersg:price is required and must be a dot-decimal number, a space and an uppercase ISO code, VAT included. A missing or invalid price drops the whole offer.
Availability written “in stock” on 5 offersg:availability is a closed underscored enum: in_stock, out_of_stock, preorder, backorder, download. The Google spelling with a space is an invalid value, and the offer is omitted.
No Google category on 11 productsg:google_product_category is optional but strongly recommended. Hintaopas matches on the Google taxonomy, and an offer without one is harder to index.

Setup

Live in five steps

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

  1. Register with Prisjakt Business Center

    Hintaopas.fi is run through the shared Prisjakt Business Center. That is where you add your feed URL as an offer feed, where the validation report lives, and where all shipping is configured.

  2. Install Feedflock

    Add Feedflock from the Shopify App Store. It reads your products, variants, stock and images directly through the Shopify API: with Shopify Markets, your euro prices and Finnish translations.

  3. Pick the Hintaopas.fi template

    One <item> per variant with the six required fields mapped from the start: SKU as g:id, brand + product name as g:title, the price as “49.00 EUR”, a variant deep link, availability from the underscored enum and condition new.

  4. Map categories and check identifiers

    Match your product types to the Google product taxonomy. Hintaopas has no tree of its own, and the numeric Google id is the preferred form. Fill GTIN and MPN; together with the title they are what indexes your offer onto the right product page.

  5. Paste the feed URL

    Copy the hosted URL into Business Center. Hintaopas reads it periodically (the frequency depends on your agreement), and Feedflock regenerates the file every hour on the same address, so each read sees current prices and stock.

    https://feedflock.appfleece.com/f/demo-hintaopas/hintaopas.xml

The feed

What the channel receives

hintaopas.xml
<item>
  <g:id>SKU-2048</g:id>
  <g:item_group_id>8236409175213</g:item_group_id>
  <g:title><![CDATA[Nordlin Pellavapaita Sand]]></g:title>
  <g:description><![CDATA[Hengittävä pellavapaita rentoon menoon, pehmeää kudottua pellavaa, lyhyt kaulus ja rintatasku.]]></g:description>
  <g:link><![CDATA[https://kauppa.example/products/pellavapaita-sand?variant=44718293450817]]></g:link>
  <g:image_link><![CDATA[https://cdn.kauppa.example/img/pellavapaita-sand.jpg]]></g:image_link>
  <g:price>49.00 EUR</g:price>
  <g:availability>in_stock</g:availability>
  <g:condition>new</g:condition>
  <g:brand>Nordlin</g:brand>
  <g:gtin>8594000123453</g:gtin>
  <g:mpn>SKU-2048</g:mpn>
  <g:google_product_category><![CDATA[Apparel & Accessories > Clothing > Shirts & Tops]]></g:google_product_category>
  <g:size>M</g:size>
  <g:size_system>eu</g:size_system>
  <g:shipping_weight>0.30 kg</g:shipping_weight>
</item>
Live preview
Linen shirt Sand

Nordlin

Linen shirt Sand

49 €

Feed fields

g:id

SKU-2048

g:item_group_id

8236409175213

g:title

Nordlin Pellavapaita Sand

g:description

Hengittävä pellavapaita rentoon menoon, pehmeää kudottua pellavaa, lyhyt kaulus ja rintatasku.

g:link

https://kauppa.example/products/pellavapaita-sand?variant=44718293450817

g:price

49.00 EUR

g:availability

in_stock

g:condition

new

g:brand

Nordlin

g:gtin

8594000123453

g:mpn

SKU-2048

g:google_product_category

Apparel & Accessories > Clothing > Shirts & Tops

g:size

M

g:size_system

eu

g:shipping_weight

0.30 kg

The channel

One network, thirteen local sites

Hintaopas.fi is the Finnish site of the Prisjakt / PriceSpy network, the same product that runs prisjakt.nu and pricespy.co.uk. One feed specification covers all of them; what changes is the currency, the language and the market.

Indexing runs on the title

Hintaopas indexes your offer by its title, helped by GTIN, MPN and brand, and a pj:prisjakt_id from a metafield overrides everything when you already know the product match. Get these right and your offer lands on the product page your competitors share.

Paid per click, nothing else

The network's pricing is cost per click: you pay for the clicks your offers generate, with rates that vary by product category, with no startup fee and no monthly subscription.

The feed

  • A template written against the developer portal's own field pages: the g: vocabulary for shared fields, the pj: namespace for prisjakt_id and member_price, CDATA on free text and the version 3.0 root
  • The six required fields mapped from the start: SKU as a permanent g:id, brand + product name as g:title, the price as “49.00 EUR”, a variant deep link, the underscored availability enum and condition new
  • The title defaults to the spec's own indexing form, manufacturer + product name, with title + variant a one-click switch where sizes and colours need separate offers
  • Sale offers carry the compare-at price in g:price and the current price in g:sale_price, derived from Shopify, so the pair can never invert and the sale price never exceeds the regular one
  • The price format, the five availability values, the GTIN lengths and the size_system rule are checked live while you edit mappings, before Hintaopas's validation report ever sees the file
  • Every variant its own <item> grouped by g:item_group_id, the variant weight as g:shipping_weight, and an hourly regeneration on a stable URL that Hintaopas polls

Deep dive

01

How Hintaopas reads your feed

  • One UTF-8 XML file on one URL. Hintaopas reads it periodically, on a schedule that depends on your agreement
  • No item cap published; a single file is recommended up to 250,000 offers, a delta setup above that
  • A feed that stays unreachable or empty gets auto-disabled until a human re-enables it
  • Dropping more than the safeguard share of offers (30% by default) aborts the whole import instead of shrinking the listing
Technical details

Delivery is a plain pull: you register the feed URL in Business Center as an offer feed, and Hintaopas reads it periodically; the frequency depends on the feed type and your agreement, with changes propagating within hours. Encodings are a closed list with UTF-8 recommended, and gzip or brotli is welcomed.

Two protections are worth knowing. A feed that stays unreachable or empty over an extended period is automatically disabled, and someone has to re-enable it after the fix. And a safeguard aborts any import that would remove more than 30% of your offers by default: a filter change that drops a third of the catalog shrinks nothing; it stops the whole run. Feedflock hosts the file on a stable URL and regenerates it every hour, so every read sees data at most an hour old.

02

Six required fields, silent omission for the rest

  • Required: g:id, g:title, g:price, g:link, g:availability, g:condition. Any missing one omits the whole offer
  • Everything else is optional, image_link, description and brand included
  • An invalid optional value is silently omitted and only shows up in the Business Center validation report
  • Nothing is ever truncated: an over-long or malformed value drops the field
Technical details

The required set is exactly six fields: id, title, price, link, availability and condition. If any of them is missing, the whole offer is omitted. Everything else (even the image, the description and the brand) is optional, with the same sentence on every field page: omitting it may leave out functionality.

What makes this channel unforgiving is the failure mode. An invalid optional value is not rejected or corrected; it is omitted, the offer goes live without it, and the only place you ever see it is the validation report in Business Center. Nothing is truncated, so an over-long title or a malformed price loses the field entirely. Feedflock checks the declared formats live while you edit mappings, so the report has nothing to surprise you with.

03

Indexing: the title, the identifiers, the taxonomy

  • The title is the single most important attribute: manufacturer + product name or model, plus colour, size or gender where the category has them
  • GTIN is 8, 12, 13 or 14 digits with a correct check digit; MPN is the fallback identifier
  • Hintaopas matches on the Google product taxonomy: numeric id or full English path, the id preferred
  • pj:prisjakt_id from a metafield overrides everything when you know the exact product match
Technical details

Hintaopas indexes your offer onto an existing product page, and the title does most of the work: the spec asks for the manufacturer name alongside the product name or model, with colour, size or gender added where the category has them. The template's default title builds exactly that from your Shopify vendor and title. GTIN, MPN and brand are the helping signals, and a correct GTIN alone indexes offers noticeably faster.

There is no Hintaopas category tree: matching runs on the Google product taxonomy, as a numeric id or the full English path, with the id preferred and the deepest node wanted. When you already know the exact Hintaopas product, a pj:prisjakt_id from a metafield pins the match and overrides every other signal, but a wrong one indexes the offer onto the wrong product, so it stays empty until you are sure.

04

Shipping lives in Business Center

  • The template sends no <g:shipping> block: feed entries and Business Center services are never merged
  • One valid feed entry would ignore your entire Business Center shipping configuration
  • Free-above-an-order-value rules live in Business Center and are evaluated against the offer's current selling price
  • g:shipping_weight is sent: a service with a weight condition can only match an offer whose weight is known
Technical details

Shipping can come from two sources (the feed and Business Center), and the two are never combined: a single valid feed entry switches off your whole Business Center shipping configuration for that offer. The template therefore sends no <g:shipping> at all, and your shipping is built from the services you configure in Business Center, where free-delivery-above-X rules live and are recalculated against the offer's current selling price, so a sale can move an offer into free delivery automatically.

The one logistics field the template does send is g:shipping_weight, from the Shopify variant weight. It is not decoration: a Business Center service with a weight condition can only ever match an offer whose weight is known. If every service has one, an offer without a weight is published with no shipping information at all.

The takeaway

One URL, an hourly refresh and an XML offer that follows the Prisjakt field pages element for element: the required six always present, the optional ones checked before Business Center's validation report ever sees them. Your Shopify catalog stays the single source of truth for your Finnish listing.

Claude · ChatGPT

Or set up your Hintaopas.fi feed in chat

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

feedflock · mcp

Create a Hintaopas.fi 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

Periodically, from the URL you register in Business Center. The frequency depends on the feed type and your agreement, and changes propagate within hours. Feedflock regenerates the file every hour on the same address, so whatever the schedule, each read picks up current prices and stock.
Indexing runs on the title, helped by GTIN, MPN and brand. The usual causes are a title without the manufacturer name, a missing or malformed GTIN (exactly 8, 12, 13 or 14 digits, correct check digit), or no Google category. When you know the exact Hintaopas product, a pj:prisjakt_id metafield pins the match directly.
A number, a space and an uppercase ISO 4217 code: “49.00 EUR”. At most two decimals with a dot separator, VAT included, no thousands separator, and zero is rejected. Shipping is never folded into the price. Feedflock's priceTemplate writes exactly this from your Shopify prices.
They stay in the feed, marked out_of_stock, one of the five underscored availability values. What you may not do is use out_of_stock to hide a product or to retire a discontinued one; that is what feed filters are for. Hintaopas treats availability as a stock state, not a delete switch.
No, and deliberately so. A single <g:shipping> entry would switch off your entire Business Center shipping configuration for that offer, as the two sources are never merged. Shipping is configured in Business Center, including free-above-an-order-value rules; the template sends only g:shipping_weight, because a service with a weight condition cannot match an offer whose weight is unknown.
The specification, the vocabulary and the required set are one for the whole network: prisjakt.nu, pricespy.co.uk, hintaopas.fi and the rest. What differs is the market data: currency, language and store URLs. France is the single exception, where shipping and is_bundle are required in the feed itself.

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