Javascript 如何在产品中的报价中正确标记产品?

Javascript 如何在产品中的报价中正确标记产品?,javascript,schema.org,json-ld,google-rich-snippets,structured-data,Javascript,Schema.org,Json Ld,Google Rich Snippets,Structured Data,我维护的网站的产品页面上出现了谷歌搜索控制台错误,我不知道如何解决这些错误。我得到的错误是: 应提供一个报价或审查或聚合 这很简单,可以正常修复,但是我的困惑是,我已经在json ld的不同部分提供了提供的数据。我的产品json ld的结构是 Product{ Offers{ Product {} Product {} } } 其中嵌套产品是同一产品的不同变体。我在网站上没有可用的评论或评级,因此我只能使用提供的来解决错误。然而,谷歌搜索控制台表

我维护的网站的产品页面上出现了谷歌搜索控制台错误,我不知道如何解决这些错误。我得到的错误是:

应提供一个报价审查聚合

这很简单,可以正常修复,但是我的困惑是,我已经在json ld的不同部分提供了
提供的
数据。我的产品json ld的结构是

Product{
    Offers{
        Product {}
        Product {}
    }
}
其中嵌套产品是同一产品的不同变体。我在网站上没有可用的评论或评级,因此我只能使用
提供的
来解决错误。然而,谷歌搜索控制台表示,每个嵌套产品都应该有
报价
数据,尽管它们已经包含在报价结构中

这似乎会深入到一个无限循环中:我向产品变体添加报价,使用itemOffered类型的产品,然后需要另一个报价,等等

我如何组织我的结构化数据,既支持我的产品->变体层次结构,又能取悦谷歌搜索控制台并删除我看到的错误

这里是完整的JSON ld,您可以直接复制/粘贴到中,以查看我所描述的确切问题

{
   "@context":"http://schema.org/",
   "@type":"Product",
   "name":"Stripe Knit Sweater",
   "url":"http://foobar.gov/product",
   "image":[
      "http://foobar.gov/product/image1"
   ],
   "description":"this is a description",
   "brand":{
      "@type":"Thing",
      "name":"My Store"
   },
   "offers":[
      {
         "@type":"Offer",
         "availability":"http://schema.org/InStock",
         "price":"64.0",
         "priceCurrency":"USD",
         "url":"http://foobar.gov/product/url",
         "itemOffered":{
            "@type":"Product",
            /*ERROR IS HERE! : One of offers or review or aggregateRating should be provided.*/
            "image":"http://foobar.gov/product/url",
            "name":"Small / Blue/Black/Cream Stripe",
            "weight":{
               "@type":"QuantitativeValue",
               "unitCode":"lb",
               "value":"0.0 lb"
            },
            "url":"http://foobar.gov/product/url"
         }
      },
      {
         "@type":"Offer",
         "availability":"http://schema.org/InStock",
         "price":"64.0",
         "priceCurrency":"USD",
         "url":"http://foobar.gov/product/url",
         "itemOffered":{
            "@type":"Product",
            /*ERROR IS HERE! : One of offers or review or aggregateRating should be provided.*/
            "image":"http://foobar.gov/product/url",
            "name":"Medium / Blue/Black/Cream Stripe",
            "weight":{
               "@type":"QuantitativeValue",
               "unitCode":"lb",
               "value":"0.0 lb"
            },
            "url":"http://foobar.gov/product/url"
         }
      }
   ]
}

根据您的示例,似乎每个
产品都是
产品的变体。如果是这样,我不确定是否需要在变体内部嵌套
产品
。从您的示例中,我可以看出嵌套的
产品
中唯一唯一唯一的属性是
重量
,您可以使用
附加属性
将其应用于
报价

如果以这种方式发送到工具,所有内容都将验证:

{
  "@context": "http://schema.org/",
  "@type": "Product",
  "name":"Stripe Knit Sweater",
  "url":"http://foobar.gov/product",
  "image":[
      "http://foobar.gov/product/image1"
  ],
  "description":"this is a description",
  "brand":{
      "@type":"Thing",
      "name":"My Store"
  },
  "offers": [
      {
          "@type": "Offer",
          "availability":"http://schema.org/InStock",
          "price":"64.0",
          "image":"http://foobar.gov/product/url",
          "name":"Small / Blue/Black/Cream Stripe",
          "priceCurrency":"USD",
          "url":"http://foobar.gov/product/url",
          "additionalProperty": {
              "@type": "PropertyValue",
              "name": "Weight",
              "unitCode": "1b",
              "value": "0.0lb"
          }
    },
    {
        "@type": "Offer",
        "availability":"http://schema.org/InStock",
        "price":"64.0",
        "image":"http://foobar.gov/product/url",
        "name":"Medium / Blue/Black/Cream Stripe",
        "priceCurrency":"USD",
        "url":"http://foobar.gov/product/url",
        "additionalProperty": {
            "@type": "PropertyValue",
            "name": "Weight",
            "unitCode": "1b",
            "value": "0.0lb"
        }  
    }]
}
Offer
上,说明
itemOffered
是一个推荐字段,它是“典型的产品”,但不一定是。还值得注意的是,与文档相反,如果
Offer
中不存在
itemOffered
,该工具不会警告您

尽管提供了所提供的
itemsofered
作为一个选项,但遗憾的是,嵌套的
Product
s没有这样的例子

嵌套
产品
服务
在以下情况下是有意义的:

  • (产品)沙龙套餐
    • (优惠)指甲/按摩套餐
      • (提供项目)
        • (服务)指甲抛光和颈部按摩
或:

  • (产品)毛衣
    • (报价)蓝色毛衣
      • (提供项目)
        • (产品)蓝色毛衣
          • (优惠)亚马逊蓝色毛衣-49美元
          • (优惠)易趣上的蓝色毛衣-39美元
    • (报价)红色毛衣
不管怎样,我认为期望在这里是有意义的,在任何情况下,
产品
最终都会以
提供
结束。在您的情况下,我认为解决方法是不要使用嵌套的
产品
s来描述
产品

尝试用于2级产品。该
@Type
可能与属性
aggregating
不是强制关系,并将传达与您声明的含义相同的含义。