Integration guide
Send us your prices
Three ways, from nothing to do to a feed of your own. Whichever you use, the rule is the same: the price and stock we show must be what a customer sees on your page.
1. A product feed (best)
A feed is one file at a fixed address that lists every product with its price and stock. We read it at least once a day. We accept:
- Google's product format, as XML (RSS 2.0), CSV or tab-separated. The same file you send Google Merchant Center works unchanged.
- Our JSON, with the same fields under the same names.
- A feed made for PriceRunner, idealo or PriceSpy: send it and we will map it.
The address must stay the same, be reachable over HTTPS, and may be behind a key or basic authentication that you give us. Gzip is welcome.
From your shop platform
Shopify
Install Google & YouTube (by Google). It builds the feed from your products; the feed address is in its settings, or ask us and we will find it with you.
WooCommerce
Google for WooCommerce, or any product-feed plugin that writes Google's format (Product Feed PRO, CTX Feed).
Magento / Adobe Commerce
Any Google Shopping feed extension.
Something else
If your platform can make a Google Shopping feed, that works. If not, send JSON as below, or let us read your website.
The fields
| Field | Required | What it is |
|---|---|---|
| id | Yes | Your own ID for the product. It must never change; it is how we know a price moved rather than a new product appeared. |
| title | Yes | The product's name as your page shows it, with the variant (size, colour, storage) and the condition if not new. |
| link | Yes | The product page. It must show the same price and stock as the feed. |
| price | Yes | The price in euro including VAT, as "12.99 EUR". The full price a customer pays, apart from delivery. |
| availability | Yes | in_stock, out_of_stock, preorder or backorder. |
| image_link | Yes | A photo at least 500 pixels on its shorter side. |
| gtin | Strongly | The barcode (EAN or UPC). It is how we put your offer beside the same product at other shops; without it we match by name and may miss. |
| brand | Strongly | The maker's name. |
| mpn | If no GTIN | The maker's model or part number. |
| sale_price | No | A reduced price, with sale_price_effective_date when it ends. |
| condition | No | new, refurbished or used. New if left out. |
| shipping | No | Delivery to Ireland: price and, if you can, days. Lets us show what an order really costs. |
| unit_pricing_measure | Groceries | The pack size, as "750 ml" or "1.5 kg", so a price can be compared per litre or per kilo. |
| item_group_id | No | Shared by the variants of one product (sizes, colours). |
| product_type | No | Your own category, as "Kitchen > Kettles". |
In Google's XML each field carries the g: prefix, as below. Its full specification is the reference for anything not listed here.
Example: Google XML
<?xml version="1.0"?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
<channel>
<title>Your Shop</title>
<link>https://www.yourshop.ie</link>
<item>
<g:id>KET-1702</g:id>
<g:title>Breville Edge 1.7L Kettle, Brushed Steel</g:title>
<g:link>https://www.yourshop.ie/p/breville-edge-kettle</g:link>
<g:image_link>https://www.yourshop.ie/img/ket-1702.jpg</g:image_link>
<g:price>49.99 EUR</g:price>
<g:sale_price>39.99 EUR</g:sale_price>
<g:availability>in_stock</g:availability>
<g:gtin>5011773061714</g:gtin>
<g:brand>Breville</g:brand>
<g:shipping>
<g:country>IE</g:country>
<g:price>4.95 EUR</g:price>
</g:shipping>
</item>
</channel>
</rss>Example: our JSON
{
"shop": "Your Shop",
"updated_at": "2026-10-28T06:00:00Z",
"products": [
{
"id": "KET-1702",
"title": "Breville Edge 1.7L Kettle, Brushed Steel",
"link": "https://www.yourshop.ie/p/breville-edge-kettle",
"image_link": "https://www.yourshop.ie/img/ket-1702.jpg",
"price": 49.99,
"sale_price": 39.99,
"availability": "in_stock",
"gtin": "5011773061714",
"brand": "Breville",
"shipping": { "price": 4.95, "days_min": 1, "days_max": 3 }
}
]
}2. Let us read your website
No feed, nothing to install: we read your product pages once a day, as we do for every shop we compare. For that to work:
- Price and stock are on each product page without needing JavaScript, or in its structured data (schema.org Product and Offer).
- A sitemap lists every product page.
- Our reader is not blocked.
Changes show up the next morning. A feed is faster.
3. Send changes as they happen
For large shops and platforms: an API you call when a price or stock level changes, so FairPrice is right within minutes rather than by the next read. It is being built; if you need it, say so when you apply and we will build it with you.
What we check
- Every feed is checked when it arrives. Products we cannot use (no price, a broken link) are left out and listed in the report we send you.
- We compare a sample of the feed with your product pages. If they disagree, the page wins and we tell you.
- A price that is wrong on FairPrice is handled as the terms describe.
Something wrong or out of date here? Report a problem with this page