Jump to content

Problema Debe especificarse "offers", "review" o "aggregateRating"


cifu17

Recommended Posts

Hola, tengo el problema de que en la herramienta de google search console me marca error en la parte de productos.

Tengo prestashop 1.7.6.1 y una plantilla que se llama apparel. No se que modificar para solucionar el problema. He mirado en google y nadie encuntra una solucion exacta.

Con esta herramienta se puede examinar: https://search.google.com/structured-data/testing-tool/

Si introduzco mi url y fallan todos los productos.

Gracias.

captura.png

captura2.png

Link to comment
Share on other sites

Este es un problema bastante recurrente del que a Google le ha dado por informar ahora. La clave suele estar en la implementación de los datos estructurados en el archivo:

/theme/nombre-de-tu-tema/catalog/_partials/miniatures/product.tpl

Debes buscar donde se muestra el precio, y agregar el "offers",  los itemprop y los valores de este modo:

<div class="product-price-and-shipping" itemprop="offers" itemscope itemtype="https://schema.org/Offer"> // Añadir itemprop, itemscope e itemtype
	<link itemprop="availability" href="{$product.seo_availability}"/> // Añadir línea completa
  	<meta itemprop="priceCurrency" content="{$currency.iso_code}">	// Añadir línea completa
....
  	<span itemprop="price" class="price" content="{$product.price_amount}">{$product.price}</span>	// Añadir itemprop y content
</div>

Ojo, si no lo tienes debes añadir también la parte del "content" en el itemprop "price".

  • Thanks 1
Link to comment
Share on other sites

9 hours ago, Prestafan33 said:

Este es un problema bastante recurrente del que a Google le ha dado por informar ahora. La clave suele estar en la implementación de los datos estructurados en el archivo:

/theme/nombre-de-tu-tema/catalog/_partials/miniatures/product.tpl

Debes buscar donde se muestra el precio, y agregar el "offers",  los itemprop y los valores de este modo:


<div class="product-price-and-shipping" itemprop="offers" itemscope itemtype="https://schema.org/Offer"> // Añadir itemprop, itemscope e itemtype
	<link itemprop="availability" href="{$product.seo_availability}"/> // Añadir línea completa
  	<meta itemprop="priceCurrency" content="{$currency.iso_code}">	// Añadir línea completa
....
  	<span itemprop="price" class="price" content="{$product.price_amount}">{$product.price}</span>	// Añadir itemprop y content
</div>

Ojo, si no lo tienes debes añadir también la parte del "content" en el itemprop "price".

Gracias, ya lo he solucionado.

Link to comment
Share on other sites

  • 2 months later...
On 12/12/2019 at 9:22 AM, Prestafan33 said:

Este es un problema bastante recurrente del que a Google le ha dado por informar ahora. La clave suele estar en la implementación de los datos estructurados en el archivo:

/theme/nombre-de-tu-tema/catalog/_partials/miniatures/product.tpl

Debes buscar donde se muestra el precio, y agregar el "offers",  los itemprop y los valores de este modo:


<div class="product-price-and-shipping" itemprop="offers" itemscope itemtype="https://schema.org/Offer"> // Añadir itemprop, itemscope e itemtype
	<link itemprop="availability" href="{$product.seo_availability}"/> // Añadir línea completa
  	<meta itemprop="priceCurrency" content="{$currency.iso_code}">	// Añadir línea completa
....
  	<span itemprop="price" class="price" content="{$product.price_amount}">{$product.price}</span>	// Añadir itemprop y content
</div>

Ojo, si no lo tienes debes añadir también la parte del "content" en el itemprop "price".

Buenos días

¿ Haciéndolo ahí entiendo que se corrige toda la tienda automáticamente ?

Link to comment
Share on other sites

12 hours ago, sircivicmb9 said:

Buenos días

¿ Haciéndolo ahí entiendo que se corrige toda la tienda automáticamente ?

Sí, claro. Es una template (plantilla), por lo que se aplica a todos los productos, así que cambiándolo en la plantilla se aplica a toda la tienda.

De modo que, si el problema está en las miniaturas, cambiándolo ahí se soluciona. Aunque es posible que el problema se repita también en las fichas de producto, y si es así también tengas que modificar la plantilla de esa ficha, que en ese caso estaría en el archivo /theme/nombre-de-tu-tema/catalog/product.tpl

Edited by Prestafan33 (see edit history)
  • Like 1
Link to comment
Share on other sites

On 2/19/2020 at 6:12 PM, Prestafan33 said:

Sí, claro. Es una template (plantilla), por lo que se aplica a todos los productos, así que cambiándolo en la plantilla se aplica a toda la tienda.

De modo que, si el problema está en las miniaturas, cambiándolo ahí se soluciona. Aunque es posible que el problema se repita también en las fichas de producto, y si es así también tengas que modificar la plantilla de esa ficha, que en ese caso estaría en el archivo /theme/nombre-de-tu-tema/catalog/product.tpl

no funciona en la versión 1.7.6.2, hay alguna otra solución?

  • Sad 1
Link to comment
Share on other sites

1 hour ago, cuervo357 said:

no funciona en la versión 1.7.6.2, hay alguna otra solución?

¿No funciona? Te comparto cómo lo tengo yo, aunque la solución exacta va a depender de la plantilla que utilices.

En templates/catalog/_partials/miniatures:

<article class="product-miniature js-product-miniature" 
	data-id-product="{$product.id_product}" 
	data-id-product-attribute="{$product.id_product_attribute}" 
	data-add-to-cart-url="{$url[0]}"
    data-stock-combinations='{if isset($product.all_combinations)}{$product.all_combinations|@json_encode nofilter}{else}[]{/if}'
	itemscope itemtype="http://schema.org/Product">
  
  <meta itemprop="brand" content="{if $product.manufacturer_name}{$product.manufacturer_name[0]}{else}{$shop.name}{/if}">
  <meta itemprop="description" content="{$product.description_short|strip_tags:false}">
  {if $product.reference}
    <meta itemprop="sku" content="{$product.reference}">
  {/if}
  {if $product.isbn}
    <meta itemprop="isbn" content="{$product.isbn}">
  {/if}
  {if $product.ean13}
    <meta itemprop="gtin13" content="{$product.ean13}"/>
  {/if}
  
  [....]
  
  <img
	class= "main-cover {if $img_alt}main-cover-img{/if} cover-img-0 current-cover"
    src = "{$product.cover.bySize.home_default.url}"
    alt = "{if !empty($product.cover.legend)}{$product.cover.legend}{else}{$product.name|truncate:30:'...'}{/if}"
    data-full-size-image-url = "{$product.cover.large.url}"
    data-original-src = "{$product.cover.bySize.home_default.url}"
    data-cover-number = 0
    itemprop="image"
  >
  
  [...]
  
  <h2 class="h3 product-title" itemprop="name"><a href="{$product.url}">{$product.name|truncate:100:'...'}</a></h2>
  
  [...]
  
  <div class="product-price-and-shipping" itemprop="offers" itemscope itemtype="https://schema.org/Offer">
  	<link itemprop="availability" href="{$product.seo_availability}"/>
    <meta itemprop="priceCurrency" content="{$currency.iso_code}">

  [...]
    
    <span itemprop="price" class="price">{if $product.has_discount}<span class="special-price">{/if}{$product.price}</span>{if $product.has_discount}</span>{/if}
  

Recuerda que lo relevante son los "itemprop", y los atributos "content" (los que los tienen), el resto como te digo ya depende del template que uses y casi seguro que en tu caso no va a ser exactamente igual al que pongo.

Y, como digo, en la plantilla de la ficha de producto hay que hacer algo parecido, añadir los metas que te falten, aunque en este caso esa plantilla suele estar dividida en varios trozos (todos los que van en el directorio templates/catalog/_partials), por lo que tendrías que mirar dentro del archivo concreto que tenga el "itemprop" que te diga Google que te falta.

Link to comment
Share on other sites

me sale el mismo error pero mi web es catalogo, y eso va dentro de un IF de mostrar precio, concretamente: {if $product.show_price}

en mi caso los precios no se muestran nunca, elimino ese if para que lo aplique a todo siempre? le pongo un else después i pongo el codigo? alguna idea?

Editado:

lo he arreglado trasteando por google, en mas o menos la linia 26 donde pone:

”product-miniature js-product-miniature” data-id-product=”{$product.id_product}” data-id-product-attribute=”{$product.id_product_attribute}” itemscope itemtype=”http://schema.org/Product”>

he modificado por:

”product-miniature js-product-miniature” data-id-product=”{$product.id_product}” data-id-product-attribute=”{$product.id_product_attribute}” {* itemscope itemtype = “http://schema.org/Product” *} >

lo unico que hay que agregar es: {*  *} en la última parte

Edited by khaleesi69 (see edit history)
Link to comment
Share on other sites

hace 14 horas, khaleesi69 dijo:

me sale el mismo error pero mi web es catalogo, y eso va dentro de un IF de mostrar precio, concretamente: {if $product.show_price}

en mi caso los precios no se muestran nunca, elimino ese if para que lo aplique a todo siempre? le pongo un else después i pongo el codigo? alguna idea?

Editado:

lo he arreglado trasteando por google, en mas o menos la linia 26 donde pone:

”product-miniature js-product-miniature” data-id-product=”{$product.id_product}” data-id-product-attribute=”{$product.id_product_attribute}” itemscope itemtype=”http://schema.org/Product”>

he modificado por:

”product-miniature js-product-miniature” data-id-product=”{$product.id_product}” data-id-product-attribute=”{$product.id_product_attribute}” {* itemscope itemtype = “http://schema.org/Product” *} >

lo unico que hay que agregar es: {*  *} en la última parte

Si tienes la tienda en modo catalogo , lo mejor sera que haciendo una copia de seguridad antes, elimines todo lo de "itemprop" y que tenga offers, de todos los ficheros de la plantilla.

La copia de seguridad, por si en un futuro lo tienes abierto y quieras vender mostrando los precios.

Si solo lo tienes para un grupo de clientes , entonces te toca añadir muchos mas if para que muestre el itemprop o no

Link to comment
Share on other sites

voy a tener que ir por ese camino, lo que hice no funciona, creía que si, pero hoy me han vuelto los errores, y la verdad lo que dices no tengo idea ahora mismo de como hacerlo ni que quitar... vaya lio. Voy a ver si averiguo lo que te refieres.

me estoy planteando activar los precios y cambairles el color igual que el fondo... jajaja

Link to comment
Share on other sites

Buscando me han dicho:

“en modo catálogo no se podría rellenar el campo "offers". ya que al hacerlo estaría mostrando los precios de los productos.

Sobre los campos "review" y "aggregateRating", podrían existir en modo catálogo, ya que hacen referencia a valoraciones de usuarios. El módulo podría añadirlos, pero necesitaría tener valoraciones de producto en su página web.

De todas maneras, aprovechamos para indicarle que los 3 campos que nos indica, son campos opcionales y que Google no los requiere para poder indexar correctamente los metadatos de producto. Cierto es que Google quiere incentivar al máximo que se utilicen y por ello es tan agresivo indicando que faltan dichos datos.”

- así que, o lo dejo tal cual y paso de los errores de google o para mitigarlo cambio la fuente del precio lo mas pequeña posible y del mismo color que el fondo, y así no veo los errores, la duda es si perjudica en algo a la indexación o no. probaré lo de la fuente y color en algunos casos y a ver que tal se indexan para salir de dudas

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...
En 12/12/2019 a las 9:22 AM, Prestafan33 dijo:

Este es un problema bastante recurrente del que a Google le ha dado por informar ahora. La clave suele estar en la implementación de los datos estructurados en el archivo:

/theme/nombre-de-tu-tema/catalog/_partials/miniatures/product.tpl

Debes buscar donde se muestra el precio, y agregar el "offers",  los itemprop y los valores de este modo:


<div class="product-price-and-shipping" itemprop="offers" itemscope itemtype="https://schema.org/Offer"> // Añadir itemprop, itemscope e itemtype
	<link itemprop="availability" href="{$product.seo_availability}"/> // Añadir línea completa
  	<meta itemprop="priceCurrency" content="{$currency.iso_code}">	// Añadir línea completa
....
  	<span itemprop="price" class="price" content="{$product.price_amount}">{$product.price}</span>	// Añadir itemprop y content
</div>

Ojo, si no lo tienes debes añadir también la parte del "content" en el itemprop "price".

Perdona, estoy intentando de copiar tu texto para introducirlo. Lo copio entero tal cual? desde itemprop hasta /div?

Link to comment
Share on other sites

23 hours ago, Mireillelahoud said:

Perdona, estoy intentando de copiar tu texto para introducirlo. Lo copio entero tal cual? desde itemprop hasta /div?

No. Detrás de cada línea está especificado lo que debes añadir en tu código. Cada tema tiene un código diferente, no se pueden copiar y pegar líneas de las plantillas de un tema a otro...

Link to comment
Share on other sites

hace 13 minutos, Prestafan33 dijo:

No. Detrás de cada línea está especificado lo que debes añadir en tu código. Cada tema tiene un código diferente, no se pueden copiar y pegar líneas de las plantillas de un tema a otro...

ouff pues no tengo idea como hacerlo entonces ahahahaah, me he metido en un tema que no entiendo y no soy capaz de solucionarlo...

Gracias por responder

Link to comment
Share on other sites

  • 2 weeks later...
hace 22 horas, Insigpol dijo:

Al final para la prestashop 1.7.6.2. hay algo para solucionar el problema Debe especificarse "offers", "review" o "aggregateRating"????'

Estoy desesperado. Mi página web es https://insigniaspoliciales.com

 

Yo estoy igual, no he encontrado nada más que lo que mencionan al principio, pero soy nueva en eso y no me atrevo a tocar los textos esos raros

Link to comment
Share on other sites

hace 22 horas, Insigpol dijo:

Al final para la prestashop 1.7.6.2. hay algo para solucionar el problema Debe especificarse "offers", "review" o "aggregateRating"????'

Estoy desesperado. Mi página web es https://insigniaspoliciales.com

 

La unica manera es tener opiniones en los productos y en la tienda.

Es solo una advertencia, no un error, asi que intentad que los compradores escriban opiniones de los productos comprados

 

Link to comment
Share on other sites

  • 2 weeks later...
En 10/4/2020 a las 11:46 AM, gusman126 dijo:

La unica manera es tener opiniones en los productos y en la tienda.

Es solo una advertencia, no un error, asi que intentad que los compradores escriban opiniones de los productos comprados

 

A mi me ha salido ahora como error, antes era advertencia. Sabeís como solucionarlo?

Link to comment
Share on other sites

  • 1 month later...

Hola! Por favor ayudenme. Tengo este mismo problema y no se como solucionarlo.

Tengo la plantilla que viene por defecto. En mi prestashop no está la etiqueta de product-price-and-shiping en product.tpl pero está en un archivo aparte: "product-prices.tpl". Ya tenía las itemprop, itemscope e itemtype. Está completo....

También estoy usando un modulo para las reviews, Yotpo. Ya los productos tienen reviews pero aún así no me valida la corrección en G-Merchant. ¿Qué más podría ser?

Mi tienda está en https://sorpresasadomicilio.co/compra/

Gracias!

Link to comment
Share on other sites

  • 10 months later...
  • 1 year later...
  • 1 year later...

Hola, chicos después de mucho código he encontrado la solución para prestashop 8/7 y demás.

Tenéis que ir a /tutema/templates/catalog/_partials/miniatures/product.tpl

  <div class="product-price-and-shipping" itemprop="offers" itemscope itemtype="https://schema.org/Offer"> //Añadir las lineas que faltan
                <link itemprop="availability" href="{$product.seo_availability}"/> //Copiar esto
                <meta itemprop="priceCurrency" content="{$currency.iso_code}"> //Copiar esto
                <span itemprop="price" content="{$product.price_amount}">{$product.price}</span> //Copiar esto
    			<img itemprop="image" src="{$product.cover.bySize.home_default.url}" alt="{$product.cover.legend}"/> //Copiar esto
    ---
    <span itemprop="price" class="price" content="{$product.price_amount}">{$product.price|escape:'html':'UTF-8'}</span> //BUSCAR Y ELIMINAR ESTA LINEA
    ---
    
  //RECOMIENDO TAMBIÉN AGREGAR ESTAS LINEAS EN "/tutema/assets/css/custom.css"
    
 	.product-price-and-shipping img {
  		display: none;
	}

	.product-price-and-shipping {
     	color: "//ANADIR COLOR O NO DE FORMATO DE TEXTO EN FORMATO HTML O RGB";
  		font-weight: 700;
  		text-align: center;
	}
   

Esto sirve para el mencionado error y este que también puede salir: "Se debe especificar price o pricespecification.price" y si da algún problema con las imágenes.

 

Un saludo.

Edited by Sweyen (see edit history)
Link to comment
Share on other sites

  • 2 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...