ShopStyle Product Feed Spec 0.9e

ShopStyle External Product Feed

Specification

Date: 2 Sep 2011
Version: 0.9e
Authors: Justin Middleton <jmiddleton@sugarinc.com>
Copyright: 2011 Sugar Publishing Inc.

Abstract

The ShopStyle Retailer Feed is an XML feed format that retailers can use to represent products, along with color and size variations, for import into the ShopStyle site.

Note

XSD and related DTDs are provided for validating feeds. These are:

The currently-supported version of the catalog for new development is v0.9.

Contents

1   Product Feed Overview

1.1   Introduction

The core object of the ShopStyle Retailer Feed is the product, which has the following characteristics:

  • Each product has a unique and unchanging identifier, productid. This is the SKU that the retailer uses to refer to the product. Products with different IDs are considered distinct products. Each product also has a name, brand, description, and other characteristics described below.
  • Each product represents a retailer product along with all size and color variations. This means that if a product is available in two sizes and three colors, the feed will contain one product entity, and each color and size will be contained within the product.
  • Each color contains a name, and optionally a color-specific full-sized image of the product, and a swatch.
  • Each product entry contains information on whether a color/size combination is in stock (see instock).
  • While not currently noted in the feed, it is expected that the feed cover products targeted for a single locale, which is the locale of the site to which users will be directed upon clicking on a product's producturl.

2   Feed Transmission

Product feeds can be communicated to ShopStyle in a number of ways:

2.1   HTTP Pull

A retailer may chose to host their product feed at an HTTP URL. In this case, a URL (optionally with an HTTP basic auth username and password) is provided to ShopStyle, and ShopStyle fetches the URL every day prior to importing the retailer's products.

When providing ShopStyle with a HTTP URL to use, please include all info required for a successful feed fetch, including:

  1. Full URL including protocol (http or https), hostname, and URI.
  2. Username and password to use, if any.

Also, please indicate if whitelisting of ShopStyle IP addresses is required, in which case these will be provided.

2.2   FTP Pull

A retailer may host their product feed on an FTP/SFTP server. As with the HTTP Pull method, ShopStyle will pull the product feed daily prior to importing products.

When providing ShopStyle with an FTP location from which to pull the product feed, please include the folllowing:

  1. The fully-qualified hostname for the FTP server (e.g. "ftp.myshop.com").
  2. The path to the feed file to pull.
  3. Username and password ShopStyle should use.
  4. The protocol being used (FTP / SFTP)

Also, please indicate if whitelisting of ShopStyle IP addresses is required, in which case these will be provided.

2.3   FTP Upload

Finally a retailer may chose to upload their product feed to ShopStyle's FTP server (ftp.shopstyle.com). In this case, ShopStyle will provide the retailer with account credentials and a filename to use when uploading the feed. To request access, please contact your ShopStyle marketing manager.

Note

ShopStyle refreshes product information for each retailer at least once per day, and it's expected that a retailer product feed is refreshed at least daily.

3   General Formatting Rules

  1. All feeds should be UTF-8 encoded and properly declared (see Encoding and Declaration below).
  2. All feeds must validate using the shopstyle-catalog-0.9.xsd schema and related DTDs.
  3. Element order within <product/> is significant. Elements shown in examples are in correct order; when in doubt, please refer to the shopstyle-catalog-0.9.xsd file.
  4. All element data (e.g. <elem>DATA</elem>) must be valid non-markup XML text. This means that proper escaping must be applied to special characters. XHTML-1.1 escape codes are allowed, so for example representing "®" as "&reg;" is legal. The sole exception to this is description as described below.
  5. (1) applies to URLs as well; notably, all "&" characters in imageurl and producturl entities must be escaped as "&amp;".
  6. For all numbers, the decimal separator must be a period. Thousands separators are not allowed.
  7. For all prices, currency symbols (escaped or unescaped) are allowed.
  8. For all prices, price ranges are allowed in the form "FLOOR - CEIL", where FLOOR is the lower bound of the range, and CEIL is the upper bound.

4   Encoding and Declaration

Product feeds most be properly encoded and contain proper namespace declarations in order to validate. Specifically, this requires:

  1. The XML encoding declaration on the first line of the file
  2. A DOCTYPE declaration which will import entity definitions
  3. Version-specific namespace declarations in the <catalog/> attributes.

Below is an example of the correct way to begin a product feed:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE catalog SYSTEM "shopstyle-catalog.dtd">

<catalog xmlns="http://www.shopstyle.com/schemas/shopstyle-catalog"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.shopstyle.com/schemas/shopstyle-catalog shopstyle-catalog-0.9.xsd"
         timestamp="2011-04-08T12:35:27Z">

5   Reference: Required Elements

5.1   catalog

Subelement Of This is the root element
Description Root element of the feed. All feed content must be contained by this element.
Required Subelements product
Optional Subelements none

Attributes

Name Status Description
timestamp Required The time at which the feed was generated, as an ISO 8601 timestamp (see http://www.w3.org/TR/xmlschema-2/#isoformats).
xmlns Required The XML namespace for the document. Should always be "http://www.shopstyle.com/schemas/shopstyle-catalog"
xmlns:xsi Required The XML Schema info namespace declaration
xsi:schemaLocation Required The location of the schema
timestamp Required The time at which the feed was generated, as an ISO 8601 timestamp (see http://www.w3.org/TR/xmlschema-2/#isoformats).

Example

<catalog xmlns="http://www.shopstyle.com/schemas/shopstyle-catalog"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.shopstyle.com/schemas/shopstyle-catalog shopstyle-catalog-0.9.xsd"
         timestamp="2011-04-08T12:35:27Z">
...

</catalog>

5.2   product

Subelement Of catalog
Description This is the central object of a ShopStyle retailer feed. Each product described by the feed is represented as a product element.
Required Subelements name, brand, description, productid, programname, lastmodifieddate, currency, price, producturl, imageurl, category
Optional Subelements saleprice, size, color, instock, lastmodifiedtime
Valid but Unused keywords, manufacturer
DEPRECATED  

Note

  1. As of v0.8 of the feed spec, subelement order is significant.
  2. See notes regarding use of saleprice, below.

Attributes

none

Example

<product>
    <programname>The Row</programname>
    <lastmodifieddate>2011-09-24</lastmodifieddate>
    <lastmodifiedtime>09:30:10+06:00</lastmodifiedtime>
    <productid>W656482</productid>
    <name>Schoolboy Jacket</name>
    <brand>The Row</brand>
    <description><![CDATA[Wool signature fitted jacket with notch lapel and bracelet sleeve.  100% Wool.]]></description>
    <manufacturer>The Row</manufacturer>
    <keywords>Schoolboy Chacket Notch Lapel</keywords>
    <currency>USD</currency>
    <price>1150.00</price>
    <saleprice>950.00</saleprice>
    <producturl>http://shop.therow.com/shop/#/jackets-coats/browse?style=W656482</producturl>
    <imageurl>http://shop.therow.com/phpThumb.php?src=mainimages/1370.png&amp;w=384</imageurl>
    <category>Womens Apparel</category>
    <category>Womens Jackets</category>
    <size>2</size>
    <size>4</size>
    <size>6</size>
    <size>8</size>
    <size>10</size>
    <color>
        <name>black</name>
        <imageurl>http://shop.therow.com/phpThumb.php?src=mainimages/1370.png&amp;w=384</imageurl>
        <swatchurl>http://path.to/black_thumbnail.png</swatchurl>
    </color>
    <color>
        <name>navy</name>
        <imageurl>http://shop.therow.com/phpThumb.php?src=mainimages/6666.png&amp;w=384</imageurl>
        <swatchurl>http://path.to/navy_thumbnail.png</swatchurl>
    </color>
    <instock>
        <size>2</size>
        <color>black</color>
    </instock>
    <instock>
        <size>4</size>
        <color>black</color>
    </instock>
    <instock>
        <size>10</size>
        <color>black</color>
    </instock>
</product>

5.3   programname

Subelement Of product
Description The name of the retailer/program. Must be consistent throughout the feed, and unique to the retailer.
Required Subelements none
Optional Subelements none

Attributes

none

Example

Assuming the retailer's name is "Hothaus"

<product>
    ...
    <programname>Hothaus</programname>
    ...
</product>

Note

programname identifies ownership of each individual product. However, changing this value will not affect the displayed retailer name, or ownership, in the ShopStyle site.

5.4   lastmodifieddate

Subelement Of product
Description This is the date of last modification of the product, expressed as an XML Date object, in the format "YYYY-MM-DD", with optional timezone offsets.
Required Subelements none
Optional Subelements none

Attributes

none

Example

<product>
    ...
    <lastmodifieddate>2011-09-24+6:00</lastmodifieddate> <!-- note "+6:00" is a timezone offset, not a time! -->
    ...
</product>

5.5   productid

Subelement Of product
Description The unique and constant ID for the product. This may be a style ID or a SKU, but must be unique to the feed and should never change.
Required Subelements none
Optional Subelements none

Attributes

none

Example

<product>
    ...
    <productid>ABO-111Q 9</productid>
    ...
</product>

5.6   name

Subelement Of product
Description The name of the product.
Required Subelements none
Optional Subelements none

Attributes

none

Example

<product>
    ...
    <name>Boyfriend&reg; Jean</name>
    ...
</product>

5.7   brand

Subelement Of product
Description The name of the product's brand.
Required Subelements none
Optional Subelements none

Attributes

none

Example

<product>
    ...
    <brand>Finlay&reg;</brand>
    ...
</product>

5.8   description

Subelement Of product
Description A textual description of the product. This is a CDATA block, and a limited subset of HTML markup is allowed (see note following example).
Required Subelements none
Optional Subelements none

Attributes

none

Example

<product>
    ...
    <description><![CDATA[Wool signature fitted jacket with notch lapel and bracelet sleeve. <br>100% Wool.]]></description>
    ...
</product>

Note

Description fields are unique in that they do allow (very) limited HTML markup. The list of legal markup for description fields includes:

Markup Description Example
b Bold Text <b>Some text</b>
i Italic Text <i>Some Text</i>
s Strikethrough <s>A great</s>The best shoes ever!
ul Unordered List <ul><li>a list item</li></ul>
ol Ordered List <ol><li>a list item</li></ol>
li List Item (see ordered/unordered list)
br Line Break <br>

5.9   currency

Subelement Of product
Description The currency denomination of prices. Acceptable values are USD, EUR, JPY, GBP, AUD, CAD and should match feed's locale (see Introduction). It is expected that currency is consistent throughout the feed.
Required Subelements none
Optional Subelements none

Attributes

none

Example

<product>
    ...
    <currency>USD</currency>
    ...
</product>

5.10   price

Subelement Of product
Description The regular price of the product.
Required Subelements none
Optional Subelements none

Attributes

none

Example 1 (US Dollar)

<product>
    ...
    <currency>USD</currency>
    <price>856.00</price>
    ...
</product>

Example 2 (Euro)

<product>
    ...
    <currency>EUR</currency>
    <price>856.00</price>
    ...
</product>

Warning

While prices can be expressed in multiple currencies (see currency), and the feed may contain product data for any locale (see Introduction), it is important to always use a period (.) decimal separator for prices. For example, a price for a product in the fr_FR locale would be represented with currency "EUR" and price "4.00" (not "4,00").

5.11   producturl

Subelement Of product
Description The direct URL for the purchase page of a product.
Required Subelements none
Optional Subelements none

Attributes

none

Example

<product>
    ...
    <producturl>http://shop.therow.com/shop/#/jackets-coats/browse?style=W656482&amp;t=111</producturl>
    ...
</product>

5.12   imageurl

Subelement Of product
Description The direct URL for the main, full-size product image.
Required Subelements none
Optional Subelements none

Attributes

none

Example

<product>
    ...
    <imageurl>http://shop.therow.com/phpThumb.php?src=mainimages/1370.png&amp;w=384</imageurl>
    ...
</product>

Note

The ShopStyle minimum image size is 700x900. Any imageurl provided in the feed should point to an image of that size or larger.

5.13   category

Subelement Of product
Description Category info for the product. Multiple category elements are allowed. Gender is required (see note below).
Required Subelements none
Optional Subelements none

Attributes

none

Example

<product>
    ...
    <category>Womens Apparel</category>
    <category>Womens Jackets</category>
   ...
</product>

Note

  • Gender must be included in at least one of the categories. Local-language gender references are fine. The exception for this requirement is the case where a retailer's entire line is for a single gender. However, it's highly recommended that gender always be provided.
  • All available product categories should be included, in multiple category items. Care should be taken to not include non-relevant categories, as this can result in miscategorized or uncategorized items on the ShopStyle site.

6   Reference: Optional and Conditionally Required Elements

The following elements are optional, however in many cases are highly recommended as user experience on the ShopStyle site can be significantly compromised in their absence. The effects of omission of each element are discussed below.

6.1   lastmodifiedtime

Subelement Of product
Description This is the date of last modification of the product, expressed as an XML Time object, in the format "HH:MM:SS", with optional timezone offsets.
Required Subelements none
Optional Subelements none

Attributes

none

Example

<product>
    ...
    <lastmodifieddate>08:45:10+06:00</lastmodifieddate> <!-- note "+06:00" is a timezone offset, not a time! -->
    ...
</product>

6.2   parentid

Warning

parentid is a "special-use" element, and use must be coordinated with ShopStyle ahead of time.

Subelement Of product
Description Token field to link related products (interpretation is retailer-specific)
Required Subelements none
Optional Subelements none

Attributes

none

Example

<product>
    ...
    <productid>12345678AB</productid>
    <parentid>12345</parentid>
   ...
</product>

<product>
    ...
    <productid>12345678FF</productid>
    <parentid>12345</parentid>
   ...
</product>

6.3   saleprice

Subelement Of product
Description The reduced price of a product which is on sale. Expressed in the same currency as price.
Required Subelements none
Optional Subelements none

Attributes

none

Example

<product>
    ...
    <price>50.00</price>
    <saleprice>25.00</saleprice>
   ...
</product>

Note

  • For products which are on sale, both price and saleprice should be provided. This will allow the ShopStyle system to indicate that an item is on sale, include the item in sale alerts, etc.
  • saleprice must always be lower than price; products for which saleprice is greater than price will be rejected.
  • saleprice has the same formatting requirements as price.
  • It is invalid to include a saleprice without a price in a product.
  • See warning regading decimal separators for price.

6.4   retailprice

Warning

retailprice is a "special-use" element, which can be mapped to the ShopStyle internal pricing structure on a case-by-case basis. By default, this price is not imported. Handling of this value must be agreed upon during integration work. Do not use retailprice to represent the price at which a product can be purchased on-site.

Subelement Of product
Description The "usual retail" price, or MSRP. Used for comparison purposes. Expressed in the same currency as price.
Required Subelements none
Optional Subelements none

Attributes

none

Example

<product>
    ...
    <price>50.00</price>
    <saleprice>25.00</saleprice>
    <retailprice>75.00</retailprice>
   ...
</product>

6.5   rentalprice

Warning

rentalprice is a "special-use" element, which can be mapped to the ShopStyle internal pricing structure on a case-by-case basis. By default, this price is not imported. Handling of this value must be agreed upon during integration work.

Subelement Of product
Description For products which are available for rent, the price of the rental. Expressed in the same currency as price.
Required Subelements none
Optional Subelements none

Attributes

none

Example

<product>
    ...
    <price>50.00</price>
    <saleprice>25.00</saleprice>
    <rentalprice>75.00</rentalprice>
   ...
</product>

Note

rentalprice is a "special-use" element, which can be mapped to the ShopStyle internal pricing structure on a case-by-case basis. By default, this price is not imported. Handling of this value must be agreed upon during integration work.

6.6   size

Subelement Of product
Description An available size for the product. Multiple sizes are allowed.
Required Subelements none
Optional Subelements none

Attributes

none

Example

The following product comes in two sizes, L and XL.

<product>
    ...
    <size>XL</size>
    <size>L</size>
   ...
</product>

Note

  • The contents of size are flexible, and most common size designations in supported locales are allowed. The value must conform to the same formatting restrictions as name, productid, programname, etc.
  • Omission of size will mean that sizes are not indicated on the ShopStyle site.

6.7   color

Subelement Of product
Description An available color for the product. Multiple colors are allowed.
Required Subelements name
Optional Subelements imageurl, swatchurl

Attributes

none

Example

The following product comes in color navy.

<product>
    ...
    <color>
        <name>navy</name>
        <imageurl>http://shop.therow.com/phpThumb.php?src=mainimages/6666.png&amp;w=384</imageurl>
        <swatchurl>http://path.to/navy_thumbnail.png</swatchurl>
    </color>
   ...
</product>

Note

  • Each color must at least contain a name.
  • The color name can be a hex RGB value, e.g. "D0D0D0"
  • The imageurl subelement is optional. If it is provided, then hovering over the color name or swatch will cause the product image to switch to the color-specific version for the duration of the hover. If it is not provided, the product image will not change as a user's pointer hovers over color.
  • The swatch subelement is optional. If it is provided, it will be displayed along with the list of colors available for a product. If it is not provided, an attempt will be made to generate a solid-color swatch based upon the color name.
  • At most one color may have an imageurl that matches the product's imageurl. No swatchurl may match a product's imageurl.

6.8   instock

Subelement Of product
Description A representation of a size/color combination of a product that is available for purchase.
Required Subelements Size, Color
Optional Subelements none

Attributes

none

Example

The following product comes in color navy.

<product>
    ...
    <size>XL</size>
    <size>L</size>
    <color>
        <name>navy</name>
        <imageurl>http://shop.therow.com/phpThumb.php?src=mainimages/6666.png&amp;w=384</imageurl>
        <swatchurl>http://path.to/navy_thumbnail.png</swatchurl>
    </color>
    <instock>
        <size>L</size>
        <color>navy</color>
    </instock>
    <instock>
        <size>XL</size>
        <color>navy</color>
    </instock>
    ...
</product>

Note

  • While product size and color are optional elements, the presence of either determines whether it is required in any instock elements. For example:
    1. If a product has both color and size information, then a valid instock element will contain both Color and Size subelements. Omission of either is invalid.
    2. If a product has only a color element, then only the Color subelement is valid within instock.
    3. If a product has only a size element, then only the Size subelement is valid within instock.
  • If a product has neither color nor size elements, then its presence in the feed deems it available, and no instock is required.
  • If a product has either color or size elements, or both, then an instock element is required for each in stock combination; omission of all instock information will be interpreted as all color/size combinations of the product being out of stock.

7   Reference: Valid/Unused Elements

manufacturer
Currently unused. The name of a product's manufacturer. If included, has the same formatting restrictions as name, brand, etc.
keywords
Currently unused. A list of keywords a retailer associates with the product. If included, has the same formatting restrictions as name, brand, etc. See category for the required/supported way to categorize products.

8   Additional Examples

8.1   Jacket with All Entities Populated

The following example feed describes a single product with the following characteristics:

  • The product is for the retailer The Row.

  • The product was last updated in the retailer's database on 07/15/2010.

  • The product's unique ID in the retailer's database is W656482.

  • The name of the product is Schoolboy Jacket.

  • The product's brand is Finley.

  • Keywords Schoolboy, Chacket, Notch, Lapel have been assigned to the product. note that currently keywords are not imported into the shopstyle datastore.

  • The product description has been enclosed in a CDATA block.

  • The product was manufactured by Finley. note that manufacturer is not currently imported into the shopstyle datastore.

  • The product is priced in US Dollars (USD). The product's base price is $1,150.00, and it is on sale for $950.00.

  • The URL to which the user should be sent to buy the product on the retailer's site is:

    http://shop.therow.com/shop/#/jackets-coats/browse?style=W656482
    
  • The url for the full-size product image is:

    http://shop.therow.com/phpThumb.php?src=mainimages/1370.png&amp;w=384
    
  • The product is assigned two categories by the retailer: Women's Apparel and Women's Jackets.

  • The product comes in five sizes: 2, 4, 6, 8, 10.

  • The product is available in two colors: black and navy.

  • Of the possible color and size variations, only black/2, black/4, and navy/10 are in stock.

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE catalog SYSTEM "shopstyle-catalog.dtd">

<catalog xmlns="http://www.shopstyle.com/schemas/shopstyle-catalog"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.shopstyle.com/schemas/shopstyle-catalog shopstyle-catalog-0.9.xsd"
         timestamp="2011-04-08T12:35:27Z">

    <product>
        <programname>The Row</programname>
        <lastmodifieddate>2010-07-15</lastmodifieddate>
        <lastmodifiedtime>10:14:15-08:00</lastmodifiedtime>
        <productid>W656482</productid>
        <name>Schoolboy Jacket</name>
        <brand>Finley</brand>
        <description><![CDATA[Wool signature fitted jacket with notch lapel and bracelet sleeve.  100% Wool.]]></description>
        <manufacturer>Finley</manufacturer>
        <keywords>Schoolboy Chacket Notch Lapel</keywords>
        <currency>USD</currency>
        <price>1150.00</price>
        <saleprice>950.00</saleprice>
        <producturl>http://shop.therow.com/shop/#/jackets-coats/browse?style=W656482</producturl>
        <imageurl>http://shop.therow.com/phpThumb.php?src=mainimages/1370.png&amp;w=384</imageurl>
        <category>Womens Apparel</category>
        <category>Womens Jackets</category>
        <size>2</size>
        <size>4</size>
        <size>6</size>
        <size>8</size>
        <size>10</size>
        <color>
            <name>black</name>
            <imageurl>http://shop.therow.com/phpThumb.php?src=mainimages/1370.png&amp;w=384</imageurl>
            <swatchurl>http://path.to/black_thumbnail.png</swatchurl>
        </color>
        <color>
            <name>navy</name>
            <imageurl>http://shop.therow.com/phpThumb.php?src=mainimages/6666.png&amp;w=384</imageurl>
            <swatchurl>http://path.to/navy_thumbnail.png</swatchurl>
        </color>
        <instock>
            <size>2</size>
            <color>black</color>
        </instock>
        <instock>
            <size>4</size>
            <color>black</color>
        </instock>
        <instock>
            <size>10</size>
            <color>black</color>
        </instock>
    </product>
</catalog>

9   Change Log

9.1   0.93 (7 May 2012): jmiddleton

  1. Added CAD currency.
  2. Removed Draft status.

9.2   0.9d (20 Oct 2011): jmiddleton

  1. "name" element of <color/> was mistakenly capitalized. Corrected.

9.3   0.9c Draft (2 Sep 2011): jmiddleton

  1. Fixed bug 3674; order of elements in Section 1.2 example did not match order of elements in Section 8 example.
  2. Updated the <catalog/> example in Section 5.1 to match other examples and included declarations.
  3. Updated to 0.9c.

9.4   0.9b Draft (19 May 2011): jmiddleton

  1. Removed references to lastupdated
  2. Corrected element order in reference to match element order in XSD
  3. Updated "pants" example to include catalog declaration and encoding.
  4. Made admonition of order-sensitivity of elements more prominent.

9.5   0.9a Draft (16 May 2011): jmiddleton

  1. keywords was shown out of order in the examples, inconsistent with the XSD.
  2. Not a problem with the spec, but in the XSD, catalog.timestamp was noted as xs:NMTOKEN. It's now xs:dateTime.

9.6   0.9 Draft (25 Apr 2011): jmiddleton

  1. First version with officially-supported XSD
  2. Added parentid field (token)
  3. Updated notes for retailprice and rentalprice to be more clear regarding use and caveats.
  4. Minor updates to Feed Transmission section.
  5. Added XML encoding and declaration details.

9.7   0.8 Draft (4 Apr 2011): jmiddleton

  1. Deprecated lastupdated, due to nonstandard format. Replaced with mandatory lastmodifieddate (Date) and lastmodifiedtime (Time) elements.
  2. Added XSD.
  3. Included admonitions that feeds must be in UTF-8 format, and that product element order is significant.
  4. s/(Swatch|Image)URL/$1url/g
  1. Clarficiation on price formatting language.

9.8   0.7 Draft (15 Mar 2011): jmiddleton

  1. Updated Feed Transmission section to clarify required information and feed fetch/refresh interval.
  2. Updated example for <s> tag, removed restriction on <br/> tag in description legal tag table.
  3. Updated warning in Example 2 (Euro) section for price
  4. Added an indication to category description that all available categories should be provided.
  5. Added note that saleprice should always be lower than price.
  6. Cleaned up the Change Log.

9.10   0.5 Draft (8 Mar 2011): jmiddleton

  • Add retailprice and rental price optional fields.

9.11   0.4 Draft (7 Mar 2011): jmiddleton

  • Rearrange examples, fix page breaks.

9.12   0.3 Draft (5 Mar 2011): jmiddleton

  • Some formatting tweaks; added an example product page and corresponding markup.

9.13   0.2 Draft (4 Mar 2011): jmiddleton

  • Revised as per gforget/enomura feedback, bumped version.