Prestashop 1.7 está cambiando mucho. Poco tienen que ver el 1.7 que salió (a todas luces casi una beta) con el 1.7.6 de ahora. Aún así, y por todos los cambios, nosotros estamos configurando en los clientes la plantilla Classic que viene con Prestashop (y es la que están renovando).
En esta plantilla, en estos momentos, no se puede poner fácilmente un cartel de “No Disponible” en los productos que están fuera de stock (en la descripción si, pero no en la imagen). Parece que están haciendo avances en personalizar las “banderas” (flags) que podemos poner al listado de productos, pero todavía no se puede. Así que toca personalizar código y os enseñamos cómo (nosotros siempre creamos tema hijo, así que estas modificaciones son más fáciles).
Cómo poner la etiqueta de No Disponible en los productos de Prestashop.
Tenemos dos sitios en los que poner la personalización. Uno para que aparezca en el producto individual (al abrirlo) y otro en los listados (en las miniaturas de portada, categorías etc).
Etiqueta de No Disponible dentro del producto individual.
Para que salga la etiqueta “No Disponible” en la imagen del producto al abrir el producto, tenemos que editar el fichero product.tpl en la ruta /httpdocs/themes/nombredetutema/templates/catalog/product.tpl
Si tienes un tema hijo, crea esos directorios y copia el fichero del padre aquí. Así puedes editar sin problemas.
Tenemos que añadir lo siguiente: {if $product->quantity == 0 AND $quantity == 0}
<li class="product-flag rojo">
{l s="NOT AVAILABLE" d="Shop.Theme.Catalog"}
{/if}
Justo después de class=”product-flags” y antes de {foreach from=$product.flags item=flag}
Con esto, comprobará la cantidad antes de poner el resto de “carteles” y, si es cero, pondrá la de sin stock.
Etiqueta de No Disponible dentro de los listados de productos.
Para que aparezca el cartel de No Disponible en la foto miniatura de los listados de productos como en la portada o en las categorías, tenemos que hacer la misma modificación en otro fichero.
En este caso la ruta es : /httpdocs/themes/tutema/templates/catalog/_partials/miniatures/product.tpl
La modificación de código es la misma que en el caso anterior y la posición la misma (antes que empiece a cargar el resto de carteles).
Con esto ya tendréis el cartel que necesitabais en todas las vistas de productos (si falta alguna lo añadiremos aquí).
Os recomendamos los siguientes productos relacionados con la informática:
me pone el cartel pero todos los productos salen not available o fuera de stock aun teniendo stock…decir que tengo un importador de articulos pero me importa el stock
Mira el código, sólo mira si el stock es cero. Con eso puedes ver que te pasa. Te recomiendo activar el truco de mirar el valor de las variables en un tpl: https://www.smythsys.es/10558/prestashop-mostrar-las-variables-y-valores-que-llegan-a-un-tpl-en-smarty-con-debug/
Se sale de mis conocimientos, ¿me podeis pasar un presupuesto para que me lo arregleis vosotros? gracias.
Necesitaríamos verlo para ver que pasa. Envía un correo a soporte@smythsys.es y hablamos. Pero no debería ser complicado.
Hola.
Pues yo no encuentro la cadena:
class=”product-flags”
en mi fichero product.tpl
Buenas a mi el problema que me da, es que el no lo pone en rojo lo tiene en el mismo tono que la etiqueta Nuevo, y parece bastante feo. Se podria modificar ese color de la bandera para que se quedará igual que la vuestra?, gracias.
Si, eso es una modificación de css del color de fondo. Lo puedes poner fácilmente en tu plantilla si tiene editor de CSS o con un módulo gratuito de CSS.
gracias por el truco pero tube 3 problemas con eso:
1. El color del flag.
Como ya comentaron, hay que recurrir al editor de CSS
2. Me sale en inglés.
El idioma inglés en mi isntalación esta inhabilitado, pero mismo así el texto sale en ese idioma
3. Tengo el modulo del boton de compartir en redes sociales sin flags. Solo me aparecen los botones en la pagina y esta posicionado en el header.
Cuando pongo el codigo sugerido, eso me hace que aparezca todos los textos de ese otro modulo, haciendo que mi logo, el campo de busqueda, etc… que estan también en el header quede TODO desconfigurado…
Buenos días
1) Claro…porque es CSS. En ningún momento ponemos que se va a cambiar el color.El aspecto es siempre CSS.
2) Claro, porque la plantilla se habrá diseñado en inglés y no tiene la traducción.
3) Eso es que es módulo está mal configurado porque el código está en la plantilla de producto. No debería afectar a nada mas que los productos.
¿Como se pude cambiar el idioma de forma manual “NOT AVAILABLE”? ya que al ingresar la linea de codigo, me sale textual así. Muchas gracias por su aporte
Lo de {l s=”NOT AVAILABLE” d=”Shop.Theme.Catalog”} significa que lo mete en la traducción de Prestashop. En tu tema en Catalog. Busca y tradúcelo.
Gracias, Funciona perfecto
Como dato, después de cambiar los .tpl
Hay que cambiar el texto en la parte Internacional/Traducciones de la plantilla activa
Saludos
Hola, me pueden comentar en qué css se debe modificar para que el color de fondo sea rojo?, de ser posible un ejemplo con un pedazo de código.
Otro tema es que no se me muestra en translation el not avalilable, hay que hacer algo para que aparezca
Agradecido de antemano quedo.
Seguro que algún desarrollador web te lo puede hacer Wiliam.
Excelente aporte, muchas gracias.
Solo tengo una consulta, esperando me puedas apoyar.
Utilizo combinaciones en cada producto y la etiqueta solo aparece en la imagen de la combinación predeterminada ¿hay forma de que la etiqueta aplique en todas las combinaciones? ya que algunas de las combinaciones sí tienen stock.