I am trying to implement Schema.org on our product pages, but I am getting an error relating to Offer
when testing in Google's Testing Tool. The errors says price
is required but I figured since I used PriceSpecification
I didn't need to specify price
.
Here is the error:
Here is the format of the HTML+Microdata that I am using:
<div itemscope itemtype="http://schema.org/Product">
<img itemprop="image" src="https://kng.scene7.com/is/image/kng/1046-set?$prodpage$" />
<h1 itemprop="name">Waist Apron, 11 inch</h1>
Item# <span itemprop="mpn">1046</span>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<link itemprop="availability" href="http://schema.org/InStock">
<meta itemprop="itemCondition" itemtype="http://schema.org/OfferItemCondition" content="http://schema.org/NewCondition">
<table>
<tbody>
<tr itemprop="priceSpecification" itemscope itemtype="http://schema.org/PriceSpecification">
<td itemprop="eligibleQuantity" itemscope itemtype="http://schema.org/QuantitativeValue">
1 - 11
<meta itemprop="value" content="1">
<meta itemprop="unitCode" content="C62">
</td>
<td>Each</td>
<td>
<meta itemprop="priceCurrency" content="USD">
<meta itemprop="maxPrice" content="3.49">
$3.49
</td>
</tr>
<tr itemprop="priceSpecification" itemscope itemtype="http://schema.org/PriceSpecification">
<td itemprop="eligibleQuantity" itemscope itemtype="http://schema.org/QuantitativeValue">
12 - 29
<meta itemprop="value" content="12">
<meta itemprop="unitCode" content="C62">
</td>
<td>Each</td>
<td>
<meta itemprop="priceCurrency" content="USD">
<meta itemprop="price" content="2.96">
$2.96
</td>
</tr>
<tr itemprop="priceSpecification" itemscope itemtype="http://schema.org/PriceSpecification">
<td itemprop="eligibleQuantity" itemscope itemtype="http://schema.org/QuantitativeValue">
30 - 59
<meta itemprop="value" content="30">
<meta itemprop="unitCode" content="C62">
</td>
<td>Each</td>
<td>
<meta itemprop="priceCurrency" content="USD">
<meta itemprop="price" content="2.63">
$2.63
</td>
</tr>
<tr itemprop="priceSpecification" itemscope itemtype="http://schema.org/PriceSpecification">
<td itemprop="eligibleQuantity" itemscope itemtype="http://schema.org/QuantitativeValue">
60 +
<meta itemprop="value" content="60">
<meta itemprop="unitCode" content="C62">
</td>
<td>Each</td>
<td>
<meta itemprop="priceCurrency" content="USD">
<meta itemprop="minPrice" content="2.44">
$2.44
</td>
</tr>
</tbody>
</table>
</div>
</div>
The odd thing is that if I just paste the Offer
section into the Testing Tool it doesn't return the price
error.
What is the best way to fix this?
tl;dr: It’s appropriate use of Schema.org, but Google doesn’t seem to support it (yet).
Google’s documentation for their Products Rich Snippet lists
price
as a required property. They don’t even mention thepriceSpecification
property.So according to their documentation and their Testing Tool, it seems that Google does not (yet?) support specifying a
priceSpecification
→PriceSpecification
instead of aprice
.The reason that the Testing Tool does not give this error if you only check the
Offer
is that Google has no markup feature that only usesOffer
.The error you get is not an actual error with your Microdata or your use of Schema.org, it’s just about what Google likes to see for displaying a Rich Snippet.