"price: missing and required" although PriceSpecification is used

2.3k views Asked by At

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:

Google Structured Data Testing Tool: Product: 1 Error: 'price: missing and required'

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

There are 1 answers

2
unor On BEST ANSWER

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 priceSpecificationPriceSpecification 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.