schema.org - 我可以同时使用 Offer 和 AggregateOffer 吗?
问题描述
我有一个产品页面,可以从不同的卖家那里购买产品。
我看到谷歌在and之间分开,好像我应该选择那个标签或另一个。AggregateOffer
Offer
我尝试像这样使用两者,并且在使用 Google 工具进行测试时返回了一个标记错误,因为我使用offers
了两次:
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "MyName",
"image": [
"https://www.example.com/image1.jpg",
"https://www.example.com/image2.jpg"
],
"offers": {
"@type": "AggregateOffer",
"lowPrice": "100",
"highPrice": "150",
"priceCurrency": "USD",
"offerCount": "3"
}
"offers": {
"@type": "Offer",
"url": "https://www.example.com/page/",
"priceCurrency": "USD",
"price": "100",
"itemCondition": "https://schema.org/NewCondition",
"availability": "https://schema.org/InStock",
"itemOffered": "Thing"
}
}
我想提供尽可能多的信息,根据谷歌的说法,诸如availability
适用于Offer
而不是AggregateOffer
.
所以我有两个选择:
要么只使用上述Offer
标记之一,要么使用AggregateOffer
并在其中添加字段availability
,即使我在任何地方都没有将此作为示例。
做什么会更好?
解决方案
一个AggregateOffer
可以引用它的所有Offer
项目:
{
"@context": "https://schema.org/",
"@type": "Product",
"offers": {
"@type": "AggregateOffer",
"offerCount": 3,
"offers": [
{
"@type": "Offer"
},
{
"@type": "Offer"
},
{
"@type": "Offer"
}
]
}
}
根据谷歌关于 的文档AggregateOffer
,谷歌的丰富产品搜索结果并没有使用包含的单个Offer
项目AggregateOffer
。
另请注意,AggregateOffer
can have 所有属性Offer
都可以拥有(如availability
),因为Offer
是父类型,但这些属性随后适用于聚合商品本身,而不适用于它所包含的单个商品,因此这些属性中的大多数没有意义在这种情况下。
推荐阅读
- c# - 如何从另一个脚本 Unity C# 2D 访问任何创建的游戏对象的属性
- c - 在C中查找未知数组的大小
- php - 为什么 DOMDocument::saveHTML() 的行为在将 UTF-8 编码为样式和脚本元素中的实体时会有所不同?
- powershell - PowerShell Invoke-RestMethod 截断最后一个周期
- fortran - 使用 Minpack 求解 S 曲线
- ruby - 为什么我们使用 html_safe?
- react-native - React Native 在 App.js 渲染中调用另一个 .js
- google-cloud-dataflow - 使用内部 IP 的云数据流作业?
- r - 表格不会在 Shiny 中呈现
- javascript - 使用 webpack splitChunks 防止重复