2011-12-28 15 views
13

Al implementar el marcado schema.org para uno de mis cusomters en línea tiendas, noté una pequeña dificultad. Creo que es una opción faltante en el marcado. Neighter offer ni aggregateOffer pueden manejar este caso correctamente, aunque creo que es bastante común.¿Cómo debo manejar el marcado schema.org para un producto con múltiples tamaños/precios?

  • Una página de un producto (digamos que es un cuerpo-loción)
  • La loción corporal viene en 3 tamaños, 100, 200 y 250 ml
  • Básicamente tiene un productId interna (BL100, BL200 y BL250) para cada tamaño, así como un EAN (http://en.wikipedia.org/wiki/International_Article_Number_(EAN)) para cada tamaño.
  • Cómo comprar: en la página del producto, eligió a su tamaño, los cambios en los precios a través de JavaScript, haga clic en Agregar para trazar

Q: ¿Cómo puedo margen de beneficio que un producto por tamaños múltiples y los precios correctos de varios ?

Problemas: http://schema.org/Product sugiere solo un ID de producto que es incorrecto para mí. Si agrego tres ofertas (http://schema.org/Offer), los motores de búsqueda podrían pensar, el precio es totalmente extraño porque el mismo producto tiene tres ofertas diferentes.

http://schema.org/AggregateOffer no me parece correcto.

Gracias por su ayuda.

+3

Otro ejemplo es material o acabado. Por ejemplo, entra el mismo grifo, cromo, níquel, bronce y placa de oro, cada uno con su propio precio. – linuxdan

Respuesta

8

Creo que la forma correcta de marcar este escenario particular es anidando varios Offers dentro de un solo Product. Para agregar información adicional a cada Oferta, use un IndividualProduct. No estoy 100% seguro, pero esto parece funcionar bien en la Herramienta de prueba de datos estructurados de Google.

Parece que schema.org aún se está actualizando con nuevas formas de marcar sus productos. El proyecto de schema.org obtuvo mucha estructura del vocabulario de producto de comercio electrónico Good Relations. Consulte E-commerce SEO Using Schema.org Just Got A Lot More Granular para obtener más información sobre los nuevos elementos de vocabulario.

Digamos que queremos que la información sobre los granos de café Sumatra para la venta en un sitio web. Queremos vender dos tamaños diferentes (12 onzas y 16 onzas) con precios diferentes para cada uno.Sin embargo, ambos tamaños de productos deben tener las mismas imágenes (es solo un grano de café) y su nombre. La estructura se verá algo como:

Product (name, description, and image) 
    aggregateRating 
    Offer (price and priceCurrency) 
    IndividualProduct (sku and weight) 
    Offer (price and priceCurrency) 
    IndividualProduct (sku and weight) 

Copiar y pegar el siguiente en Google de Structured Data Testing Tool para ver cómo Google va a interpretar el código HTML.

jsFiddle display

<article class="product" itemscope itemtype="http://schema.org/Product"> 
    <div class="images"> 
    <a href="images/product.jpg"> 
     <img alt="Sumatra Coffee Beans" itemprop="image" src="images/product.jpg"> 
    </a> 
    </div> 
    <div class="content"> 
    <header> 
     <h1 itemprop="name">Sumatra Coffee Beans</h1> 
    </header> 
    <div class="code"> 
     <span class="label">Item Number:</span> 
     <span itemprop="productID">sumatra-coffee</span> 
    </div> 
    <div itemprop="description"> 
     <p>Error 418</p> 
    </div> 
    <div class="reviews" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"> 
     <div class="details"> 
     Rated <span itemprop="ratingValue">4.5</span>/5 
     </div> 
     <div class="count"> 
     (<span itemprop="reviewCount">9</span> reviews) 
     </div> 
    </div> 
    <div class="offer" itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 
     <div itemprop="itemOffered" itemscope itemtype="http://schema.org/IndividualProduct"> 
     <span class="sku" itemprop="sku">scb-ov1</span> 
     – (<span itemprop="weight">12 oz.</span>) 
     </div> 
     <div class="price">$<span itemprop="price">14.99<span></div> 
     <meta content="USD" itemprop="priceCurrency"> 
    </div> 
    <div class="offer" itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 
     <div itemprop="itemOffered" itemscope itemtype="http://schema.org/IndividualProduct"> 
     <span class="sku" itemprop="sku">scb-ov2</span> 
     – (<span itemprop="weight">16 oz.</span>) 
     </div> 
     <div class="price">$<span itemprop="price">20.99</span></div> 
     <meta content="USD" itemprop="priceCurrency"> 
    </div> 
    </div> 
</article> 
+0

Esta es una respuesta excelente y realmente me ayudó gracias –

+0

Estoy viendo las especificaciones de schema.org para ['IndividualProduct'] (http://schema.org/IndividualProduct) y ya no estoy seguro de si es el mejor tipo para el artículo utilizado para enumerar el artículo SKU y los precios individuales ('IndividualProduct' está destinado a "Una instancia única e identificable del producto (por ejemplo, una computadora portátil con un número de serie particular)"). Otra opción sería ['ProductModel'] (http://schema.org/ProductModel), aunque no estoy seguro de si encaja mejor o no. – thirdender

+0

No es la mejor solución porque Yandex trata como incorrectos los microdatos del Producto con múltiples propiedades de 'ofertas'. – Finesse

2

Creo que tendría un Product que contiene múltiples Offer s, uno por tamaño. La limitación, por supuesto, es que no ofrece un medio formal para especificar múltiples ID de productos, pero quizás podría ponerlos informalmente en la propiedad Descripción o URL de Offer. No es exactamente lo que se necesita, pero tal vez esté lo suficientemente cerca.

Otra opción es unirse a la lista de correo electrónico de Public Vocabs (lists.w3.org/Archives/Public/public-vocabs), que afirma que es "el lugar para proponer extensiones, nuevos tipos o comentarios de la experiencia de implementación". con el vocabulario existente "(lists.w3.org/Archives/Public/public-vocabs/2011Oct/0162.html), y proponer una solución a su problema.

+0

Gracias. Lo implementé de la manera que lo describió, sin embargo estoy esperando una solución adecuada. –

+0

De nada. Cuando encuentre la solución adecuada, regrese y publíquela aquí para que todos podamos aprender. –

+0

Estoy de acuerdo con James en que no hay realmente una gran solución. He hecho la pregunta a la [lista de distribución] (http://lists.w3.org/Archives/Public/public-vocabs/2012Jan/0072.html), pero no ha recibido ninguna tracción. El problema es: no estoy del todo seguro de cuál sería la solución. – nathanziarek

0

Recomendaría una forma ligeramente diferente de pensar acerca de esta página web en particular. En lugar de pensar en esta página web específica como una página de "Producto", piénselo como un tipo de "Página web". Esta 'Página web' contiene tres 'Productos' diferentes, cada uno con su propia 'Oferta' y su propio 'ProductID'. Cuando dices que cada tamaño tiene su propio EAN, es un gran indicador para mí de que el precio/tamaño/id de cada tamaño debe estar contenido dentro si es su propio div 'Producto'.

+0

Bueno, esto me obligaría a usar un montón de div ocultos, lo que a Google no le gusta o las metaetiquetas, de acuerdo con schema.org, que no es w3-válido. –

+0

Desaconsejaría también el enfoque de la metaetiqueta. Solo usted puede hablar sobre el diseño de su sitio y si puede o no hacerse, pero si estos otros divs del producto se revelaran cuando el usuario selecciona los diferentes tamaños de un menú desplegable, entonces este es el comportamiento normal de revelación de div de JavaScript y no información de encubrimiento. –

-1

Esto es lo que Google dice que hacer: Uso itemOffered El artículo en venta. Normalmente, esto incluye un Producto anidado, pero también puede contener otros tipos de elementos o texto libre.

+1

¿Podría profundizar más en los detalles? – Fred

0

Todas las diferentes variaciones se deben representar como Product s por separado con Offer s por separado. Use Product's isSimilarTo y isRelatedTo propiedades para vincularlas entre sí.

referencia: http://schema.org/Product

Cuestiones relacionadas