提供(带有priceSpecification)嵌套在Product throws警告中

时间:2013-02-21 15:29:35

标签: microdata schema.org

在Google Rich Snippets测试工具中嵌套具有priceSpecification的商品会在产品中引发不完整微数据警告。

<div itemscope itemtype="http://schema.org/Product">
    <h1 itemprop="name">1984 Vintage Selection Cabernet Sauvignon</h1>
    <p itemprop="description">Cabernet Sauvignon.</p>
    <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
        <p itemprop="priceSpecification" itemscope itemtype="http://schema.org/priceSpecification">Prices start at 
        <meta itemprop="priceCurrency" content="GBP" />£<span itemprop="price">0.71</span> (per bottle)</p>
        <meta itemprop="validThrough" content="2013-09-01" />
    </div>
</div>

在google rich snippets测试工具中抛出以下警告: 警告:使用schema.org进行不完整的微数据。

如果我在产品外移动优惠:

<div itemscope itemtype="http://schema.org/Product">
    <h1 itemprop="name">1984 Vintage Selection Cabernet Sauvignon</h1>
    <p itemprop="description">Cabernet Sauvignon.</p>
</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
    <p itemprop="priceSpecification" itemscope itemtype="http://schema.org/priceSpecification">Prices start at 
    <meta itemprop="priceCurrency" content="GBP" />£<span itemprop="price">0.71</span> (per bottle)</p>
    <meta itemprop="validThrough" content="2013-09-01" />
</div>

然后警告不再被抛出,但这似乎没有意义,因为要约没有链接到它适用的产品。

schema.org上的所有示例都在Product中提供,但是,它们都没有使用priceSpecification。我只能找到一个博客文章,其中Offer没有嵌套在Product:http://seolobster.de/richsnippets-schema-org-products-update中。这并不能让我充满信心地在现场环境中使用。

哪个是对的?特别是如果你投入多个优惠?

3 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,我只是通过艰苦的试错来解决问题:问题在于,即使 price priceSpecification 架构的一部分,仍然需要在常规商品中的 priceSpecification 元素之外定义!

我需要 priceSpecification ,因为我们显示包含和不包括增值税的价格,现在我对如何实现这一点没有任何疑问!如果我必须在商品中定义价格,我该如何判断它是否带有增值税? valueAddedTaxIncluded 不是商品架构的一部分!一个空div只包括 valueAddedTaxIncluded = true ?那么,那么如何在没有增值税的情况下实施其他价格呢?这将在报价中定义两次价格,这是不可能的!

另外,为什么schema.org和getschema.org在样本代码以及如何正确实现任何给定的模式时如此无用呢?如果你想让人们采用一些奇特的新技术 - 告诉他们如何做到!!

答案 1 :(得分:1)

根据您的示例,我认为您不需要使用单独的priceSpecification属性。相反,您可以直接将price和priceCurrency属性添加到Offer中,如下例所示。

<div itemscope itemtype="http://schema.org/Product">
  <h1 itemprop="name">1984 Vintage Selection Cabernet Sauvignon</h1>
  <p itemprop="description">Cabernet Sauvignon.</p>
  <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
    Prices start at <meta itemprop="priceCurrency" content="GBP" />£
    <span itemprop="price">0.71</span> (per bottle)
  </div>    
</div>

答案 2 :(得分:0)

如前所述,优惠还需要价格标签。标签测试器允许的一个解决方案是将数据添加为元标记,如下所示:

<meta itemprop="price" content="79" />

我不确定谷歌是否会解析并显示此信息。