Jump to content

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


Recommended Posts

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 (see edit history)
  • Like 2
Link to comment
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

Link to comment
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.

Link to comment
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.

Link to comment
Share on other sites

  • 2 weeks later...

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.

 

Link to comment
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

Link to comment
Share on other sites

  • 1 month later...

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

Link to comment
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

 

Link to comment
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 

 

Link to comment
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}-->

 

Link to comment
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 2
Link to comment
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 :)

Link to comment
Share on other sites

  • 3 months later...
On 4/3/2019 at 9:45 PM, gusman126 said:

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

 

On 5/31/2019 at 6: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}

 

El slash final (/) No es Herencia html 4 , es xhtml.

Link to comment
Share on other sites

  • 5 months later...

Hola Gusman126, aprovecho que el post está abierto todavía.

He revisado el post al que haces referencia y me queda el código así, aunque no me funciona...

   {block name='product_price'}
    <meta itemprop="brand" content="{$product.brand}">
    <meta itemprop="MPN" content="{$product.ean13}">
      <div
        class="product-price h5 {if $product.has_discount}has-discount{/if}"
        itemprop="offers"
        itemscope
        itemtype="https://schema.org/Offer">
        <link itemprop="availability" href="https://schema.org/InStock"/>
        <meta itemprop="priceCurrency" content="{$currency.iso_code}">
        <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}


Me sigue dando advertencias para "aggregateRating", "review" , "GTIN, un MPN o un ISBN", "priceValidUntil" 

¿Puede ser porque haya más archivos que lleven el codigo de “offers” y haya que incluirlo en ellos también?

Añado el enlace de mi tienda por si hiciera falta...

https://articulosdepoker.com/es/

Edited by Pedro Armiñanzas
actualización (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...
hace 20 horas, felipvens dijo:

Hola, he quitado las advertencias de url y product price, pero no consigo quitar las de brand y GTIN con el código del post anterior. Alguien ha conseguido solucionarlo. Utilizo Prestashop 1.7.6.3

Gracias.

La marca la debes añadir al producto.

El Gtin, siempre he supuesto que era el ean13, aunque nunca lo he añadido al codigo

Link to comment
Share on other sites

hace 52 minutos, frankio dijo:

Buenas a todos,

esto de los errores me trae de cabeza. No creo que sea bueno para el SEO dejarlo como advertencias, no?

Alguien conoce algún módulo que solucione estos errores??

De todos NO, debes cambiar codigo y añadir opiniones de los productos

Obviamente si el producto no tiene marca, añadir una marca generica o la propia tienda

Link to comment
Share on other sites

y como se hace? Mis productos no tienen marca pero tampoco quiero que salga en la información del producto marca=mi tienda . Ya que es información que no creo sea necesaria en mi tienda

Me gustaría marcar como marca pero que no se vea en la tienda. seria posible?

Link to comment
Share on other sites

11 hours ago, gusman126 said:

La marca la debes añadir al producto.

El Gtin, siempre he supuesto que era el ean13, aunque nunca lo he añadido al codigo

La marca y el EAN13 lo tengo añadido a cada producto, pero con está código no me lo cogen los microdatos.

Link to comment
Share on other sites

  • 6 months later...
On 4/4/2019 at 12:52 PM, gusman126 said:

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

Hola.

A día de hoy sigo con este problema. Alguna idea para que en lugar de dos productos, aparezca solo uno con los microdatos correctos?

Veo que se me duplica el producto en cuestión, uno de ellos con sus microdatos correctos y el otro no...

Gracias de antemano.

Un saludo.

  • Like 1
Link to comment
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
×
×
  • Create New...