GoodRelations for Price Comparison Engines

GoodRelations for Price Comparison Engines

Overview

Price-comparison engines, like

use many different, XML- or CSV-based mechanisms for accepting item information from Web shops. Unfortunately,

  • there are many competing feed formats, forcing a shop to implement many different export interfaces, and
  • the feed formats often lack details that are mandatory for implementing a price comparison site that is compliant with national laws.

For instance, German price comparison sites are required to delist items if the price has changed or if the item is no longer available. A shop, however, cannot control the delisting in the price comparison site.

GoodRelations provides fine-grained mechanisms for specifying the validity period of offers and prices independently, and to model shipping and payment charges with all necessary details.

Thus, GoodRelations can be used easily as a cross-site price comparison feed format.

Basic Principle

a) Shop

  • Publish a GoodRelations data dump of relevant shop item information in RDF/XML sytax.
  • Indicate the validity of prices and offers using gr:validThrough
  • Submit the URI of that dump, e.g. http://www.myshop.com/goodrelations.xml to all respective price comparison sites.

b) Price Comparison Site

  • Accept GoodRelations feeds in RDF/XML syntax
  • Write a simple parser that fetches the RDF/XML feed, extracts all necessary information based on an RDF library (e.g. rdflib for Python), and write the fact that you need to your database.

That's all!

As a nice side-effect, you also provide rich feed for many upcoming Web 3.0 applications, like sindice.com.