SmythSys IT Consulting

Etiqueta de “No Disponible” en la imagen de productos en Prestashop 1.7 plantilla Classic.

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í).

15 comentarios en «Etiqueta de “No Disponible” en la imagen de productos en Prestashop 1.7 plantilla Classic.»

  1. 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.

    Responder
    • 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.

      Responder
  2. 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…

    Responder
    • 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.

      Responder
    • 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.

      Responder
  3. 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.

    Responder
  4. 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.

    Responder

Deja un comentario

Resumen de nuestra Política de Privacidad

  • Responsable: SmythSys IT Consulting SLNE.
  • Finalidad: Gestionar y moderar los comentarios.
  • Legitimación: Necesitas dar tu consentimiento para publicar un comentario.
  • Destinatarios: Tus datos se alojan en los servidores de OVH.
  • Derechos: Tienes derecho a acceder, rectificar, limitar y suprimir los datos en la dirección del responsable (en nuestra política de privacidad).