Bueno parece ser que a partir del mes de Febrero del 2019, la herramienta search console se ha puesto las pilas y están mostrando errores donde antes no se mostraban o no daban error.
Un aviso importante es que estos cambios se recomiendan realizar únicamente si el desarrollador de vuestra plantilla no actualiza dicha plantilla, SIEMPRE ES MEJOR ACTUALIZAR LA PLANTILLA.
Importante hacer copias de todos los ficheros que vayas a modificar!.
En esta entrada voy a poner algunos campos y código que va a solucionar en parte los errores que se muestran, en particular los siguientes errores de datos estructurados
- Offers
- priceValidUntil
- url
- mpn o gtin
Lo primero que debemos hacer es saber que versión de PrestaShop tenemos 1.6 o 1.7, los ficheros y cambios son diferentes.
Luego debemos saber que estos cambios solo se deben poner en los ficheros donde se estén mostrando productos, sus precios y tengan el siguiente código dentro
itemprop="offers"
Este código esta informando a los “bots” y sobre todo al sistema de google, que dentro del “div” se va a encontrar los datos del producto relacionados con los precios.
una vez aclarado esto, vamos a ver como modificar el fichero principal donde se muestra el producto, con sus imágenes y textos, os recuerdo de nuevo, que estos cambios se deben hacer en todos los ficheros donde se muestre un precio, accesorios, relacionados,listado de productos, categorías, etc…
PRESTASHOP 1.6
Accedemos al servidor y a los ficheros de nuestra web, sea por FTP o administrador de archivos.
Accederemos a la carpeta de /themes/xxxxxxx/ y buscaremos el product.tpl ( debería tener este nombre y este lugar, puede que este en otro
donde xxxxx = nombre de plantilla
Editamos este fichero y buscamos el siguiente código
itemprop="offers"
De esta manera localizaremos el “div” donde estará localizado el código de precio del producto.
Se recomienda añadir antes de dicho div el siguiente código
Se recomienda añadir antes de dicho div el siguiente código, de esta manera añadiremos la marca y el Gtin o MPN
<meta itemprop="brand" content="{$product->brand}"> <meta itemprop="MPN" content="{$product->ean13}">
Si la plantilla esta bien desarrollada veremos el siguiente código debajo
{if $product->quantity > 0}<link itemprop="availability" href="http://schema.org/InStock"/>{/if}
Si no lo tenemos debemos añadirlo, después de esta linea añadiremos
<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}
De esta manera estamos añadiendo el dato estructurado de url del producto/oferta y el priceValidUntil
Por lo tanto el código que nos quedara sera el siguiente
<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}
Una vez añadido esto guardamos el fichero y comprobamos que el producto se muestre correctamente, recordad eliminar cache para ver los cambios
PRESTASHOP 1.7
Como ya debemos saber los ficheros de las plantillas para la versión 1.7 son totalmente diferentes y están en carpetas y lugares diferentes que la anterior versión.
En esta ocasión también vamos a modificar el fichero de productos y en especial el fichero y apartado donde muestra los precios product-prices.tpl
El fichero se encuentra /themes/xxxx/templates/catalog/_partials/product-prices.tpl
donde xxxxx = nombre de plantilla
Realizamos la búsqueda en el fichero del siguiente código
itemprop="offers"
De esta manera localizaremos el “div” donde estará localizado el código de precio del producto.
Se recomienda añadir antes de dicho div el siguiente código, de esta manera añadiremos la marca y el Gtin o MPN
<meta itemprop="brand" content="{$product.brand}"> <meta itemprop="MPN" content="{$product.ean13}">
Si la plantilla esta bien desarrollada veremos el siguiente código debajo
<link itemprop="availability" href="https://schema.org/InStock"/>
Si no lo tenemos debemos añadirlo, después de esta linea añadiremos
<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}
De esta manera estamos añadiendo el dato estructurado de url del producto/oferta y el priceValidUntil
Por lo tanto el código que nos quedara sera el siguiente
<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}
Nota final
De esta manera ya tenemos añadido los datos estructurados para mostrar la url de la oferta y el precio valido hasta X fecha en la ficha del producto.
Es importante saber que esto solo va a añadir los datos estructurados en la ficha del producto, como he dicho antes, es posible que modulos y otros ficheros de nuestra plantilla tengan el codigo de “offers” y por lo tanto tendremos que añadir el mismo codigo en estos ficheros
Tambien es importante indicar, que dependiendo la forma de añadir y desarrollar los ficheros es posible que tengamos que realizar el cambio de {$product.XXXXX} a {$product->XXXX} cambiando el caracter “->” por un “.” o al reves, como he dicho depende del fichero y por lo tanto deberemos fijarnos en el fichero que estamos editando que manera y uso se le esta dando
Importante hacer copias de todos los ficheros que vayas a modificar!, no me hago responsable de posibles errores o fallos al aplicar estos cambios