Je suis de retour avec une autre incohérence de Schema.org/Google.
Notre magasin vend de nombreux produits qui ont différentes variantes, chacune avec son propre prix. Par exemple, un appareil de chauffage peut être vendu dans n'importe quel niveau de 8 BTU, un appareil de chauffage plus élevé coûtant plus cher. Nous présentons toutes les variantes sur la même page de produit et affichons une fourchette de prix jusqu'à ce que l'utilisateur sélectionne leur variante spécifique.
La question est comment puis-je dire à Google que le produit a une fourchette de prix? ou si je peux énumérer les variantes en tant que sous-produits individuels avec leurs propres prix cela peut suffire.
Ce que nous avons essayé:
Nous avons commencé par utiliser la propriété Offer
de priceSpecification
. Nous avons essayé cela à la fois avec un type d’élément de PriceSpecification
et de UnitPriceSpecification
. Celles-ci nous ont laissé l'erreur: Microdonnées incomplètes avec schema.org. dans l'outil de test de données structurées de Google et, encore plus important, d'erreur . Missing: price dans l'onglet Données structurées de notre outil pour les webmasters (qui contient notre extrait de code riche). Cela est censé être dû au fait que Google s'attend à tort à ce que la propriété Offer
→ price
soit toujours définie même si priceSpecification
est en cours d'utilisation (voir: This SO publication sur priceSpecification
). Exemple:
<div itemtype="http://schema.org/Offer" itemscope itemprop="offers">
<div itemtype="http://schema.org/UnitPriceSpecification" itemscope itemprop="priceSpecification" class="price-box">
<span id="product-price-6048" class="price">$571.20 - $894.75</span>
<meta content="571.2" itemprop="minPrice">
<meta content="894.75" itemprop="maxPrice">
<meta content="USD" itemprop="priceCurrency">
</div>
</div>
Nous avons également essayé de passer simplement la chaîne lisible par l'homme "$ 571.20 - $ 897.75" en tant que propriété Offer
→ price
. Cela n'a évidemment pas fonctionné car Google ne savait pas comment l'analyser.
Selon le point 8 de cet article SEOMoz , vous pouvez utiliser AggregateOffer
comme solution de contournement pour répertorier une gamme de prix pour un produit/un ensemble de produits. Cependant, Schema.org indique clairement AggregateOffer
est pour
Lorsqu'un seul produit est associé à plusieurs offres (par exemple, la même paire de chaussures est proposée par différents marchands)
Bien que cela fonctionne probablement pour l'instant, utiliser AggregateOffer
dans notre cas semble être un kludge susceptible de se briser.
Encore une fois, comment puis-je informer Google qu'un prix de produit se situe dans une plage en fonction des choix de l'utilisateur? Quelqu'un a-t-il déjà utilisé avec succès PriceSpecification
pour un produit, en particulier pour répertorier une fourchette de prix? Ou y a-t-il un autre moyen d'obtenir le même résultat?
Après un mois de tests sur différentes permutations de la solution SEOMoz AggregateOffer, j'en suis venu à la conclusion que cela ne fonctionnait pas. Tant que Google ne prend pas en charge la propriété PriceSpecification de l'offre et cesse d'exiger un prix fixe unique, il n'est pas possible d'inscrire un groupe de produits/variantes sous un même parapluie de fourchette de prix.
Si quelqu'un trouve une meilleure solution, postez-le ici.
J'ai eu le même problème dans un contexte différent. Ma solution a été de définir le prix de l'offre au prix le plus bas, puis de spécifier une instance de PriceSpecification dans laquelle je déclare le prix minimum égal à la valeur EQUAL, à la valeur du prix, puis au prix maximum. Cela signifie effectivement qu'il existe un produit de prix X ET que le prix X correspond au prix minimum.
Ce n'est pas parfait, mais au moins toutes les données sont là. C'est ce que j'ai fait dans JSON-LD, comme le recommande Google. Voir l'exemple ci-dessus pour spécifier plusieurs offres pour le même produit, puis pour chaque offre, spécifiez un prix et un prix minimal. Vous pouvez également spécifier le prix maximum. De cette façon, il est clair que l'offre est une gamme:
{
"@context": "http://schema.org",
"@type": "Product",
"description": "This Fancy Product is all you will ever need.",
"name": "My Fancy Product",
"model" :"https://www.freebase.com/m/02116f",
"offers": [
{
"@type": "Offer",
"category": "base",
"availability": "http://schema.org/InStock",
"priceSpecification":{
"minPrice": "10.00",
"priceCurrency": "EUR"
},
"price": "10.00"
},
{
"@type": "Offer",
"category": "high-end",
"availability": "http://schema.org/InStock",
"priceSpecification":{
"minPrice": "50.00",
"priceCurrency": "EUR"
},
"price": "50.00"
}
]
}