From Microformats Wiki
Revision as of 10:03, 14 June 2013 by Barnabywalters (talk | contribs) (Dumped with example, BC and property details including TODO about u-identifier markup)
Jump to navigation Jump to search

<entry-title>h-product</entry-title> Tantek Çelik (Editor)

h-product is a simple, open format for publishing products on the web. h-product is one of several open microformat draft standards suitable for embedding data in HTML/HTML5.

h-product is the microformats2 replacement for hProduct.


Here is a simple minimal product example:

<div class="h-product">
  <h1 class="p-name">Microformats For Dummies</h1>
  <img class="u-photo" src="http://example.org/mfd.png" alt="" />
  <div class="e-description">
    <p>Want to get started using microformats, but intimidated by hyphens and mediawiki? This book contains everything you need to know!</p>
  <p>Yours today for only <data class="p-price" value="20.00">$20.00</span>
     from <a class="p-brand h-card" href="http://example.com/acme">ACME Publishing inc.</a>

Get started

The class h-product is a root class name that indicates the presence of an h-product.

p-name, p-price, u-photo and the other property classnames listed below define elements as properties of the h-product.

See microformats2 parsing specification to learn more about property classnames.


  • p-name - name of the product
  • u-photo - photo of the product
  • p-brand - manufacturer, can also be a nested h-card
  • p-category - freeform categories or tags applied to the item by the reviewer
  • e-description
  • u-url - URL of the product
  • u-identifier - includes type (e.g. mpn, upc, isbn, issn, sn, vin, sku etc.) and value.
  • p-review - a review of the product, can also be a nested h-review
  • p-price - retail price of the product

For backward compatibility, you may wish to use classic hProduct classnames in addition to the more future-proof h-product properties, for example:

<div class="h-product hproduct">
  <h1 class="p-name fn">Product Name</h1>

Microformats parsers should detect classic properties and parse them as microformats 2 properties. If an "h-product" is found, don't look for an "hProduct" on the same element.

Compatibility root class name: hProduct

Properties: (parsed as p- plain text unless otherwise specified)

  • fn - parse as p-name
  • photo - parse as u-
  • brand
  • category
  • description
  • identifier - parse as u-
  • url - parse as u-
  • review - including compat root class hreview in the absence of h-review
  • price


h-product is a microformats.org draft specification. Public discussion on h-product takes place on h-product-feedback, the #microformats #microformats chat channel on irc.freenode.net, and microformats-new mailing list.

h-product is ready to use and implemented in the wild, but for backwards compatibility you should also mark h-products up with classic hProduct classnames.

Property Details

(stub, add any property explanations here)

TODO: u-identifier supposedly “includes type” — how so? URI scheme? Need examples of how to mark up the various different identifier types.

price was an experimental property which has real world adoption due to Google Search and Microsoft Bing Search Engine search support of hProduct. Due to this it has been included in the updated h-product spec.

Examples in the Wild

  • … add any h-product examples you find in the wild


h-product is based on the existing hProduct specification.

See Also