Skip to content
PriceRunner
Price comparison

PriceRunner feed for Shopify

PriceRunner compares prices across the UK, Sweden and Denmark, and one specification serves every market; only the currency and language differ. PriceRunner pulls your feed from a hosted URL one to four times a day and matches your offers by EAN; without identifiers it matches by hand and bills a fee per click. Feedflock builds the feed from your Shopify catalog using the exact element names from PriceRunner's own sample feed, and regenerates it as often as every hour.

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 · pricerunner.xmlUpdated just now
<Product>
<ProductId>SKU-2048-M</ProductId>
<ProductName><![CDATA[Linen shirt Sand M]]></ProductName>
<Price>49.00 EUR</Price>
<ShippingCost>3.95 EUR</ShippingCost>
<StockStatus>in stock</StockStatus>
<LeadTime>5 working days</LeadTime>
<Brand>Nordlin</Brand>
<Ean>8594000123453</Ean>
<Url>https://shop.example/products/linen-shirt-sand</Url>
<ImageUrl>https://cdn.shop.example/img/linen-shirt-sand.jpg</ImageUrl>
<Category><![CDATA[Clothing > Men > Shirts]]></Category>
<Description><![CDATA[A breathable linen shirt in a regular cut.]]></Description>
<Condition>New</Condition>
<GroupId>8236409175213</GroupId>
<Color>Sand</Color>
<Size>M</Size>
</Product>
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
ProductPrice (regular)SalePrice
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 SalePrice
Sale prices

A sale is two prices, and the sale price wins.

While a variant is on sale, Price carries the regular price and SalePrice the discounted one, and SalePrice overrides Price in PriceRunner's listing. Feedflock derives the pair from your Shopify compare-at price, so the original is always the higher one, and when nothing is discounted SalePrice is left out entirely, exactly as PriceRunner asks: keep it empty if the product is not on sale.

Feed health

Catch feed issues before PriceRunner 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 · pricerunner.xml
76 / 100
To review: 4
ShippingCost left emptyWithout shipping information PriceRunner places your price at the bottom of the comparison sorted by price including shipping.
Missing EAN on 14 productsWithout an EAN or ISBN, PriceRunner matches your prices by hand and charges an additional fee per click.
No delivery time setLeadTime is required and must correspond to the delivery time on your site. The template leaves it empty until you set the window you promise.
Description over 30 words on 8 productsPriceRunner asks for at most 30 words of keywords you want to be found for; its search and filters read this field.

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 PriceRunner

    Set up your store as a PriceRunner retailer and agree your cost per click. There is a per-category price list and a bidding tool in Merchant Zone.

  2. Install Feedflock

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

  3. Pick the PriceRunner template

    Element names from PriceRunner's own sample feed, one Product per variant. ProductId from the SKU, ProductName from the product and variant title, Brand, StockStatus and Condition are mapped from the start.

  4. Enter shipping cost and delivery time

    Both are required and deliberately left empty for you to fill: without a shipping cost PriceRunner sorts you last by price including shipping, and the delivery time must match what your shop actually promises.

  5. Hand over the feed URL

    Give PriceRunner the hosted URL. It is stable, because a changing URL makes your products disappear. PriceRunner imports it 1–4 times a day; brand-new products appear within about 24 hours.

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

The feed

What the channel receives

pricerunner.xml
<Product>
  <ProductId>SKU-2048-M</ProductId>
  <ProductName><![CDATA[Linen shirt Sand M]]></ProductName>
  <Price>49.00 EUR</Price>
  <ShippingCost>3.95 EUR</ShippingCost>
  <StockStatus>in stock</StockStatus>
  <LeadTime>1-3 days</LeadTime>
  <Brand>Nordlin</Brand>
  <Ean>8594000123453</Ean>
  <Url>https://shop.example/products/linen-shirt-sand</Url>
  <ImageUrl>https://cdn.shop.example/img/linen-shirt-sand.jpg</ImageUrl>
  <Category><![CDATA[Clothing > Men > Shirts]]></Category>
  <Description><![CDATA[A breathable linen shirt in a regular cut.]]></Description>
  <Condition>New</Condition>
  <GroupId>8236409175213</GroupId>
  <Color>Sand</Color>
  <Size>M</Size>
</Product>
Live preview
Linen shirt Sand

Nordlin

Linen shirt Sand

49 €

Feed fields

ProductId

SKU-2048-M

ProductName

Linen shirt Sand M

Price

49.00 EUR

ShippingCost

3.95 EUR

StockStatus

in stock

LeadTime

1-3 days

Brand

Nordlin

Ean

8594000123453

Url

https://shop.example/products/linen-shirt-sand

Category

Clothing › Men › Shirts

Description

A breathable linen shirt in a regular cut.

Condition

New

GroupId

8236409175213

Color

Sand

Size

M

The channel

One feed, several markets

A single specification serves every PriceRunner domain: the UK, Swedish and Danish pages are the same document, translated. Only the currency and language differ, and the feed inherits both from your shop.

Matching starts at the barcode

EAN and ISBN are PriceRunner's pairing keys, and they also make products searchable in the barcode scanner in its app. Send them and matching is automatic; skip them and PriceRunner matches by hand for an extra fee per click.

A CPC you steer per category

PriceRunner bills per click from a per-category price list, with a bidding tool in Merchant Zone. Verified reviews and Buyer Protection are account-level extras that change the per-click price.

The feed

  • Element names taken from PriceRunner's own XML sample (ProductId, ProductName, Price, StockStatus, Brand, Ean and the rest), with CDATA exactly where the sample wraps it
  • ProductId from the variant SKU with the variant id as fallback, kept stable: changing it recreates the product on PriceRunner and the accrued click history is lost
  • ProductName built from the product and variant title, unique per row as PriceRunner requires of a per-variant feed
  • The sale pair done right: Price carries the compare-at price while a sale runs, SalePrice the current one, and SalePrice overrides Price in the listing
  • StockStatus derived from Shopify availability, Condition as PriceRunner's closed New / Used / Refurbished enum, and GroupId tying a product's variant rows together
  • ShippingCost and LeadTime are required but never invented. You set both, and the readiness check shows the gap before PriceRunner's first import
  • A stable hosted URL with an hourly refresh and Last-Modified served, so PriceRunner's 1–4 daily imports always read the current state

Deep dive

01

One specification, every market

  • The UK, Swedish and Danish editions are the same document, translated, so one template serves them all
  • XML, CSV, TSV and JSON are accepted, in UTF-8, UTF-16, ISO-8859-1 or Windows-1252, optionally gzip/zipped. Excel is not
  • The feed is pulled from an HTTPS or FTP URL 1–4 times a day, honouring Last-Modified
  • The URL must be stable: a timestamped or changing address makes your products disappear
Technical details

PriceRunner publishes one product-feed specification and serves it on every market domain, translated. The Swedish and Danish pages link the same two sample files and differ only in the currency of the examples. Formats are TEXT/CSV, XML and JSON (not Excel), in four encodings, optionally compressed with gzip or zip. Feedflock renders the XML variant, with the element names taken from PriceRunner's own sample feed.

PriceRunner pulls the file from an HTTPS or FTP address 1–4 times a day, checks the Last-Modified header to fetch more often, and asks for one thing above all: a stable URL. Timestamps or cache-busting parts in the feed address make products disappear. Feedflock hosts the feed on a permanent public URL and regenerates it as often as every hour; new products appear on PriceRunner within about 24 hours of an import.

02

Every variant is its own row

  • A shoe in 7 sizes is 7 rows, each with its own size, SKU and EAN
  • GroupId ties a product's variant rows back together
  • ProductName must be unique per row and state the variant; shoppers see roughly the first 70 characters
  • Changing a ProductId recreates the product and loses its accrued click popularity
Technical details

PriceRunner's spec asks for per-variant rows outright: a shoe sold in seven sizes appears seven times, each row with its own size attribute, unique EAN and unique SKU. GroupId carries the shared product id that ties the siblings together. Feedflock's template works exactly this way: one Product per variant, with Color and Size read from the variant options.

Names follow: ProductName must be unique per row and state the variant clearly, because PriceRunner's search, filters and matching all read it. The template builds it from the product and variant title. And keep ProductId stable: PriceRunner warns that changing it recreates the product in its database and the accrued click popularity disappears. Feedflock uses the Shopify SKU, which you control, with the immutable variant id as fallback.

03

Matching starts at the barcode

  • EAN (and ISBN for books) is the primary pairing key. It also drives the barcode scanner in PriceRunner's app
  • Without identifiers PriceRunner falls back to name, description, image, stock and brand, and matches by hand
  • Manual matching is billed: an additional fee per click
  • Msku is the manufacturer's own article number, never a value you created
Technical details

Most prices on PriceRunner are added using the unique product ID, normally the EAN, or the ISBN for books. With those IDs PriceRunner matches your prices to the right product automatically; without them it falls back to the product name, description, image, stock status and manufacturer, and matches by hand for an additional fee per click. Feedflock fills Ean from the Shopify barcode field and Brand from the vendor, which is always populated.

Msku (the manufacturer SKU or MPN) helps matching too, but only when it genuinely is the manufacturer's number. PriceRunner is explicit: unless you are the manufacturer, do not send a value you created. The template therefore leaves Msku unmapped by default rather than passing your shop SKU off as one; map it from a metafield when you have the real thing.

04

Prices, sales and the shipping sort

  • Price is the single-unit price including VAT with the currency stated; bulk pricing is not accepted
  • SalePrice overrides Price, empty when the product is not on sale
  • ShippingCost must combine every surcharge the consumer pays; leaving it out sorts you last by price including shipping
  • Condition is New, Used or Refurbished; used and refurbished carry a higher cost per click
Technical details

Price is the gross, VAT-included price of a single unit, with the currency stated and a comma or period as the decimal marker; the sample writes 549.00 GBP. When a variant is on sale, the pair matters: Price carries the regular price and SalePrice the discounted one, and PriceRunner reads SalePrice as an override. Feedflock derives both from Shopify's compare-at price, so a real markdown shows as a struck-through original and a current price, and a full-price product never carries an invented one.

Two fields decide your position more than any other. ShippingCost must combine everything the consumer pays (freight, handling, packaging), because PriceRunner sorts by price including shipping, and offers without shipping information go to the bottom of that list. LeadTime is the promised delivery time in days and must match your site. Both are required, and the template deliberately ships them empty for you to fill rather than inventing a figure. Condition rounds out the offer: New, Used or Refurbished, with used and refurbished goods carrying a higher cost per click.

The takeaway

One URL, PriceRunner's own vocabulary, and prices, stock and delivery promises that stay current through every import. Your Shopify catalog stays the single source of truth, and PriceRunner reads its state one to four times a day.

Claude · ChatGPT

Or set up your PriceRunner feed in chat

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

feedflock · mcp

Create a PriceRunner 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

TEXT/CSV, XML or JSON (not Excel) in UTF-8, UTF-16, ISO-8859-1 or Windows-1252, optionally gzip/zipped. Feedflock renders the XML variant with the element names from PriceRunner's own sample feed and hosts it on a stable URL PriceRunner can pull.
One to four times a day, depending on how much resource the collection takes, and it honours the Last-Modified header. Existing products update on the next import; brand-new products can take up to 24 hours. Feedflock regenerates the file every hour, so each import reads current prices and stock.
PriceRunner bills per click from a per-category price list, and you steer bids in Merchant Zone. Two extras change the arithmetic: used and refurbished products carry a higher cost per click, and offers without an EAN or ISBN are matched by hand for an additional fee per click.
PriceRunner sorts the comparison by price including shipping, and offers without shipping information are placed at the bottom of that list. The ShippingCost figure must combine every surcharge the consumer pays: freight, handling, packaging. The template leaves it empty on purpose: you enter the rate your shop actually charges.
Missing identifiers are not a rejection, but they are a line item. With the EAN (or ISBN for books) PriceRunner matches your prices automatically; without it, it matches by hand and charges an extra fee per click. Feedflock reads the EAN from the Shopify barcode field.
Each variant is its own row with its own size or colour, unique SKU and unique EAN, tied to its siblings by GroupId. Keep the ProductId stable afterwards: changing it recreates the product on PriceRunner and the accrued click history disappears.

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