
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.

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 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.
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.
Setup
Live in five steps
From a bare Shopify store to a listed offer: the whole setup fits into one coffee break.
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.
Install Feedflock
Add Feedflock from the Shopify App Store. It reads your products, variants, prices and images directly through the Shopify API.
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.
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.
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
<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>

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
One specification, every market
- The UK, Swedish and Danish editions are the same document, translated, so one template serves them all
XML,CSV,TSVandJSONare accepted, inUTF-8,UTF-16,ISO-8859-1 or Windows-1252, optionally gzip/zipped. Excel is not- The feed is pulled from an
HTTPSorFTPURL1–4 times a day, honouring Last-Modified - The
URLmust 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.
Every variant is its own row
- A shoe in 7 sizes is 7 rows, each with its own size,
SKUandEAN - 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.
Matching starts at the barcode
EAN(andISBNfor 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.
Prices, sales and the shipping sort
- Price is the single-unit price including
VATwith 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.
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
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.