Сам жду ответ на этот вопрос
тут. Сейчас смотрю в сторону двух подходов, либо один Product -> много Offer, либо Product - > много ProductModels -> один Offer.
Ниже мой пример, который проходит валидацию.
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Product",
"name": "iPhone 6 - 16GB",
"brand": "Apple",
"image": "iphone-default.jpg",
"url": "iphont-6-16gb.html",
"description": "Отличный телефон он Apple.",
"model": [
{
"@type": "ProductModel",
"gtin13": "1234567890123",
"name": "iPhone 6 - 16GB - Серый",
"image": "iphone-gray.jpg",
"color": "Серый",
"offers" : {
"@type": "Offer",
"availability": "InStock",
"inventoryLevel": 7,
"price": 36740,
"priceCurrency": "RUB"
}
},
{
"@type": "ProductModel",
"gtin13": "123456789012311",
"name": "iPhone 6 - 16GB - Белый",
"image": "iphone-white.jpg",
"color": "Белый",
"offers" : {
"@type" : "Offer",
"availability": "InStock",
"inventoryLevel": 12,
"price": 35740,
"priceCurrency": "RUB"
}
}
]
}
</script>