
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.

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 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.
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.
Setup
Live in five steps
From a bare Shopify store to a listed offer: the whole setup fits into one coffee break.
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.
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.
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.
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.
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
<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>

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
How Hintaopas reads your feed
- One
UTF-8XMLfile on oneURL. 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.
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.
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
GTINis 8, 12, 13 or 14 digits with a correct check digit;MPNis 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.
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.
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
Get on every marketplace that matters this afternoon.
Install free, connect your first feed in minutes, and let Feedflock keep it fresh and validated.