问题
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?
回答1:
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 the priceSpecification
property.
So according to their documentation and their Testing Tool, it seems that Google does not (yet?) support specifying a priceSpecification→PriceSpecification instead of a price.
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 uses Offer
.
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.
来源:https://stackoverflow.com/questions/31061901/price-missing-and-required-although-pricespecification-is-used