Motivation

RSS (Really Simple Syndication) revolutionalized web browsing by specifying a standard syndication format and we are able to read the content of numerous blogs/websites in one feed reader application. Today, there are numerous shopping sites out there. Some of them generate feeds but the basic RSS terms (such as title, link, description) are not sufficient to present all the aspects of the product being sold. Buy.com had already attempted to extend RSS for product attributes by defining a product module for RSS 2.0. But the industry needs to build upon this attempt to come up with a generic and complete specification that is acceptable to many shopping websites. Once it is adopted by many merchants, special feed readers could be developed to aggregate these product feeds and provide advanced search capabilities based on price range, brand name or a combination of product attributes. This could be one step forward towards next generation shopping experience and the "web of data" (as envisioned by the Semantic web).

Draft Specification

Elements of RSS 2.0 such as title, link, description, pubDate etc will be re-used for the same purposes for products also. In addition, I propose the following elements for the Product namespace.

<product:brand>

 This element is a sub-element of <item> (as are the rest of the elements below). It is used to specify the brand or manufacturer of the product. It is advised that the brand name is expanded fully instead of using acronyms.

<product:family>

 This element specifies the product family name if any. For example, Pavilion is a family of HP laptops.

<product:model>

 This element specifies the model name or part number.

<product:category>

<product:subcategory>

These elements specify the category and subcategory of the product. Currently, every shopping site has it's own categorization which makes it difficult to group products across sites. It is desired to come up with a set of categories and subcategories that are widely accepted.

<product:price currency="three letter currency code">

This is used to specify the final offer price (after rebates etc). It has one attribute to specify the currency code. The text of this element should not contain currency sign such as $, # etc. The amount specified should be in dollars and not cents. If the merchant has many offers for the product (such as Amazon which lists offers by other merchants also), they could specify the lowest available price.

<product:listprice currency="three letter currency code">

This element is used to specify the list price of the product whenever it is different from the offer price.

<product:condition>

Used to specify the condition of the product. The only allowed values are New, Used and Refurbished.

<product:upc>

Used for providing the UPC code.

<product:weight unit="lb/oz/kg/g">

Used to specify the weight of the product. It takes one attribute to specify the unit.

<product:length unit="in/ft/m/cm">

<product:width unit="in/ft/m/cm">

<product:height unit="in/ft/m/cm"

The three elements above are used to specify the dimensions of the product. The attribute 'unit' can be inches, foot, meter or centimeter.

<product:isbn>

Used to specify the ISBN in case it is a book.

<product:color>

Used to specify the color of the product.

What next?

I will contact shopping sites such as Amazon, Buy.com, Shop.com and RSS specialists such as Dave Winer, Danny Ayers etc and ask for their feedback.