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
priceas a required property. They don’t even mention thepriceSpecificationproperty.So according to their documentation and their Testing Tool, it seems that Google does not (yet?) support specifying a
priceSpecification→PriceSpecificationinstead of aprice.The reason that the Testing Tool does not give this error if you only check the
Offeris 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.