[我试图描述一个Car对象,它具有与引擎或变速箱有关的多个选项,由aggregateOffer引用为itemOffered。
[我想指出的是,该汽车可以具有手动或自动变速箱,可以是新的或二手的,可以接受柴油或其他燃料等。我看到的以下两个选项是:
1)列出可能的变速箱和其他选项
"itemOffered" : {
"vehicleTransmission": ["Automatic","Manual"],
"fuelType": ["Diesel", "Essence"]
}
这将解释如下:汽车具有手动变速箱还是自动变速箱?我认为这背后的语义暗示这辆车兼具两者。
2)列出所有可能性的汽车
"itemOffered": [
{
"@type": "Car1",
"fuelType": "Essence",
"vehicleTransmission": "Automatic" },
{
"@type": "Car2",
"fuelType": "Essence",
"vehicleTransmission": "Manual" }
]
但是这可能会非常大,因为我有多种选择的汽车优惠,所以我最终会列出我的整个数据库。为了明确起见,此Car对象的要点将附加到页面上的aggregateOffer,该页面上仅显示aggregationOffer,而不是显示所有可用报价。
第二种解释是正确的。如果您有一个带有多个Car
值的fuelType
,则所有这些值都适用于此Car
;它们不代表替代方案。
无论如何,AggregateOffer
似乎不适合您的情况。此类型适用于同一产品的多个报价,而不适用于不同(尽管相似)产品的多个报价:
[当单个产品与多个要约相关联(例如,同一双鞋由不同商人提供)时,可以使用AggregateOffer。
如果您不想为每个AggregateOffer
列出/重复这么多属性,则可以使用Car
类型。您可以使用ProductModel
属性链接多个ProductModel
项目,并且该变体将继承基本产品模型中的功能,除非您在变体中“覆盖”它们。每个ProductModel
然后将使用isVariantOf
属性来引用其产品模型。但是,如果您有一个特定的结构化数据使用者,那么他们可能不支持这种更复杂的结构。