Jump to content
gusman126

Añadir los datos estructurados de "priceValidUntil" y "url" del producto

Recommended Posts

Posted (edited)

Bueno parece que desde hace un tiempo el search console esta pidiendo tener algunos datos estructurados que necesitamos añadir a nuestros ficheros tpl

Voy a ir al grano, en mi pagina esta mas detallado.

Estos cambios solo son para mostrar los datos estructurados en la ficha del producto, para modulos, accesorios, novedades, mas vendidos etc.. toca modificar los ficheros de cada apartado y modulo

Prestashop 1.6

Fichero product.tpl

Añadir debajo de

{if $product->quantity > 0}<link itemprop="availability" href="http://schema.org/InStock"/>{/if}

Esto

<meta itemprop="url" content="{$link->getProductLink($product)|escape:'html':'UTF-8'}" />
{assign var="dateprice" value="+1 year"|date_format:"%Y-%m-%d"}
{if $product->specificPrice && $product->specificPrice->reduction && $productPriceWithoutReduction > $productPrice && $product->specificPrice->to && $product->specificPrice->to!= '0000-00-00 00:00:00'}<meta itemprop="priceValidUntil" content="{$product->specificPrice.to|date_format:'%Y-%m-%d'}">{else}<meta itemprop="priceValidUntil" content="{$dateprice}">{/if}

 

Prestashop 1.7

En el fichero product-prices.tpl

Añadir debajo de

<link itemprop="availability" href="https://schema.org/InStock"/>

Esto

<meta itemprop="url" content="{$product.url}" />
{assign var="dateprice" value="+1 year"|date_format:"%Y-%m-%d"}
{if $product.specificPrice && $product.specificPrice.reduction && $productPriceWithoutReduction > $productPrice && $product.specificPrice.to && $product.specificPrice.to!= '0000-00-00 00:00:00'}<meta itemprop="priceValidUntil" content="{$product.specificPrice.to|date_format:'%Y-%m-%d'}">{else}<meta itemprop="priceValidUntil" content="{$dateprice}">{/if}

 

Fijaros que en version 1.6 usa "->" en version 1.7 usa el "." para indicar el valor del producto.

 

Recordad hacer copias de seguridad, borrar cache y probar que la web se ve ok 

No me hago responsable de posibles fallos y errores

Edited by gusman126
  • Like 1

Share this post


Link to post
Share on other sites

<link itemprop="availability" href="https://schema.org/InStock"/>
<meta itemprop="url" content="{$product.url}"/>

😋

Share this post


Link to post
Share on other sites
hace 16 minutos, burrots dijo:

<link itemprop="availability" href="https://schema.org/InStock"/>
<meta itemprop="url" content="{$product.url}"/>

😋

Si yo tambien lo he visto raro lo del "/" al final, pero esta funcionando correctamente en varias web donde lo he añadido, lo he copiado de una plantilla que ha actualizado

Share this post


Link to post
Share on other sites
Posted (edited)

herencia de html 4 y anteriores

Edited by burrots
  • Like 1

Share this post


Link to post
Share on other sites

Gracias por el aporte. Lo he añadido en el product.tpl de mi prestashop 1.6 aunque aún hay bastantes advertencias que no logro corregir y siguen apareciendo:

 

Falta el campo "priceValidUntil"

Falta el campo "aggregateRating"

Falta el campo "review"

Falta el campo "url"

Falta el campo "brand"

Falta el ID de producto

Falta el campo "sku"
 
En la propiedad "price" hay un formato de precio no válido

Falta el campo "availability"

Falta el campo "description"

Alguna idea? Todas estas advertencias aparecen desde el pasado 14 de Febrero que supongo que ha sido cuando Google ha añadido estos cambios...

 

Gracias de antemano.

Share this post


Link to post
Share on other sites

En el producto esta bien añadido... pero...

En esa misma pagina esta detectando 2 productos, dos iguales

Uno con los datos estructurados bien el otro no.

image.png.066c21229a3babcf646541423229771b.png


image.thumb.png.82cb7c2b53959c4154c77dc09b6766a0.png

Share this post


Link to post
Share on other sites

Gracias por tu respuesta. Me da a mi que esos otros dos productos iguales que aparecen pueden hacer alusión a los dos apartados que aparecen en la pgina del producto principal con los textos: X PRODUCTOS MÁS EN LA MISMA CATEGORÍA y LOS CLIENTES QUE COMPRARON ESTE PRODUCTO TAMBIÉN HAN COMPRADO...

Creo que saca esos dos productos y busca la info de los microdatos para cuando este artículo aparezca en esos apartados.´Es lo que se me ocurre. Sería posible insertarlos también en estos apartados. Lo comento porque me saca 7100 advertencias de este tipo la search console de Google y si me los quito de encima mejor que mejor.

Share this post


Link to post
Share on other sites

Si search console te avisa de 7000 errores, debes cambiar los tpl de los modulos donde indiquen que es un producto y tiene datos estructurados. es un buen trabajo, me ha tocado hacerlo en varias web.

Share this post


Link to post
Share on other sites

He probado añadiendo el código que indicas en el productlist.tpl que es el archivo que creo que puede solucionar estos errores y si que desaparece la advertencia para url y price valid until con la herramienta de google, aunque al validar estos errores en la search console, aún queda alguna url en la que siguen apareciendo errores, por lo que no se muy bien como proceder o qué código agregar para solucionarlos.

 

Share this post


Link to post
Share on other sites
hace 2 horas, juanman dijo:

He probado añadiendo el código que indicas en el productlist.tpl que es el archivo que creo que puede solucionar estos errores y si que desaparece la advertencia para url y price valid until con la herramienta de google, aunque al validar estos errores en la search console, aún queda alguna url en la que siguen apareciendo errores, por lo que no se muy bien como proceder o qué código agregar para solucionarlos.

 

El search console tarda en validar los datos.

Debes buscar todos los modulos y ficheros donde estan mostrando el codigo de dato estructurado de product y offers

Share this post


Link to post
Share on other sites

Gracias por las respuestas. En principio parece que en mi caso solo afecta al productlist.tpl. En este caso, que debería añadir al archivo para corregir los errores?

Share this post


Link to post
Share on other sites

Genial!! Gracias por la aportación.

He solucionado las advertencias de url y priceValidUntil pero no consigo solucionar la de brand

Os pongo un trozo de código para ver si me podéis indicar si está mal puesto:

 

                </p>
                <div class="box-info-product">
                    <div class="content_prices clearfix">
                        {if $product->show_price && !isset($restricted_country_mode) && !$PS_CATALOG_MODE}
                            <!-- prices -->
                            <meta itemprop="brand" content="{$product->brand}">
                            <meta itemprop="MPN" content="{$product->ean13}">
                            <div class="price">
                                <p class="our_price_display" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
                                    {if $product->quantity > 0}<link itemprop="availability" href="http://schema.org/InStock"/>{/if}
                                    <meta itemprop="url" content="{$link->getProductLink($product)|escape:'html':'UTF-8'}" />
                                    {assign var="dateprice" value="+1 year"|date_format:"%Y-%m-%d"}
                                    {if $product->specificPrice && $product->specificPrice->reduction && $productPriceWithoutReduction > $productPrice && $product->specificPrice->to && $product->specificPrice->to!= '0000-00-00 00:00:00'}<meta itemprop="priceValidUntil" content="{$product->specificPrice.to|date_format:'%Y-%m-%d'}">{else}<meta itemprop="priceValidUntil" content="{$dateprice}">{/if}
                                    {if $priceDisplay >= 0 && $priceDisplay <= 2}
                                        <span id="our_price_display" itemprop="price">{convertPrice price=$productPrice}</span>
                                        <!--{if $tax_enabled  && ((isset($display_tax_label) && $display_tax_label == 1) || !isset($display_tax_label))}

 

Gracias por toda la ayuda

Share this post


Link to post
Share on other sites
Posted (edited)

En mi web no uso marcas, no tengo fabricantes

¿como puedo hacer para que no salga el error?

Edited by frankio

Share this post


Link to post
Share on other sites
hace 19 minutos, frankio dijo:

En mi web no uso marcas, no tengo fabricantes

¿como puedo hacer para que no salga el error?

Si.

Añade una marca tu propia marca y asocia los productos a esa, aunque sea tu nombre

Share this post


Link to post
Share on other sites
19 hours ago, gusman126 said:

Si.

Añade una marca tu propia marca y asocia los productos a esa, aunque sea tu nombre

Lo he hecho pero me sigue saliendo el error en google. Lo he probado con varios productos y nada

 

Por cierto, alguna idea o donde viene la solución a los problemas que también me salen de sku, Id, review, availability y aggregateRating??

 

Gracias por todo

 

Share this post


Link to post
Share on other sites

Yo sigo igual, con los mismo errores para los productos que se muestran en listados.

Share this post


Link to post
Share on other sites

 

14 minutes ago, juanman said:

Yo sigo igual, con los mismo errores para los productos que se muestran en listados.

y has buscado en los módulos que utilizas?

Share this post


Link to post
Share on other sites

sku = referencia 

Id = se debe comprobar si tienes google shooping y usar el mismo

availability = información de stock

review = Siempre sale el error cuando no existe una opinión

aggregateRating = lo mismo que review, si no hay opiniones, siempre sale error.

El problema suele tenerlo la plantilla.

Si se usa un modulo, suelen ser de opiniones y revisiones de productos , no de datos estructurados.

Modulos de datos estructurados hay algunos, si se elige alguno, que tenga la opcion de Json, mas compatible 

 

Share this post


Link to post
Share on other sites

Ok, me lo apunto.

Muchas gracias

¿sabes porqué no me funciona el brand? Hice lo que me dijiste y nada

 

Tengo así el código:

                </p>
                <div class="box-info-product">
                    <div class="content_prices clearfix">
                        {if $product->show_price && !isset($restricted_country_mode) && !$PS_CATALOG_MODE}
                            <!-- prices -->
                            <meta itemprop="brand" content="{$product->brand}">
                            <meta itemprop="MPN" content="{$product->ean13}">
                            <div class="price">
                                <p class="our_price_display" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
                                    {if $product->quantity > 0}<link itemprop="availability" href="http://schema.org/InStock"/>{/if}
                                    <meta itemprop="url" content="{$link->getProductLink($product)|escape:'html':'UTF-8'}" />
                                    {assign var="dateprice" value="+1 year"|date_format:"%Y-%m-%d"}
                                    {if $product->specificPrice && $product->specificPrice->reduction && $productPriceWithoutReduction > $productPrice && $product->specificPrice->to && $product->specificPrice->to!= '0000-00-00 00:00:00'}<meta itemprop="priceValidUntil" content="{$product->specificPrice.to|date_format:'%Y-%m-%d'}">{else}<meta itemprop="priceValidUntil" content="{$dateprice}">{/if}
                                    {if $priceDisplay >= 0 && $priceDisplay <= 2}
                                        <span id="our_price_display" itemprop="price" content=”{$productPrice}”>{convertPrice price=$productPrice}</span>
                                        <!--{if $tax_enabled  && ((isset($display_tax_label) && $display_tax_label == 1) || !isset($display_tax_label))}
                                            {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}
                                        {/if}-->

 

Share this post


Link to post
Share on other sites

En referencia a lo mío, buscando solo he visto que pueden faltar los datos en el product-list.tpl (prestashop 1.6.1.20) con plantilla por defecto.

No se muy bien como añadirlos la verdad...

Share this post


Link to post
Share on other sites

Debes asociar la marca, deberia salir ok, ademas que no es un codigo añadido extra, deberia tenerlo todas las plantillas.

Ni idea porque no sale

Share this post


Link to post
Share on other sites

Hola genio! Antes que nada gracias por abrir el hilo.

Ahora bien, yo tengo el error de que "falta el campo 'description'" y tengo PS 1.6.0.10

Cómo debería solucionar ese error?

Share this post


Link to post
Share on other sites
hace 2 horas, johnred3 dijo:

Hola genio! Antes que nada gracias por abrir el hilo.

Ahora bien, yo tengo el error de que "falta el campo 'description'" y tengo PS 1.6.0.10

Cómo debería solucionar ese error?

Eso ya es un problema de la plantilla, es una versión que no conozco,  en las plantillas que uso tiene esto, usan la descripción corta

{if $product->description_short}
<div id="short_description_content" class="rte align_justify" {if $enable_google_rich_snippets}itemprop="description"{/if}>{$product->description_short}</div>
{/if}

 

  • Like 1

Share this post


Link to post
Share on other sites
On 5/31/2019 at 1:32 PM, gusman126 said:

Eso ya es un problema de la plantilla, es una versión que no conozco,  en las plantillas que uso tiene esto, usan la descripción corta


{if $product->description_short}
<div id="short_description_content" class="rte align_justify" {if $enable_google_rich_snippets}itemprop="description"{/if}>{$product->description_short}</div>
{/if}

 

Tal cual. El problema se soluciona añadiendo contenido en la descripción corta. Gracias bro :)

Share this post


Link to post
Share on other sites

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

×

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More