Evitar el envío de un email en Prestashop

No estamos hablando de desactivar el envío de un determinado email en base a los estados de pedidos (Pedidos -> Estados)

Realmente es útil para aquellos emails que no podemos deshabilitar en el panel, pero que queremos deshabilitar. (Tampoco hablamos de desactivar el envío de emails en general)

Por ejemplo vamos a desactivar este email, que recibe el cliente nada más el realizar el pedido: (Este email usa la plantilla “order_conf“)

Email del pedido en Prestashop

Email del pedido en Prestashop

Lo que vamos hacer es un “override” de la clase Mail.php y vamos a indicar que si nos llega la plantilla “order_conf” el email no se envía. (Como los envíos de los emails usan la función Send de la clase Mail pues hacemos la comprobación directamente en la clase)

Creamos el fichero con el nombre “Mail.php” que vamos a guardar en el directorio “/overrides/classes/

<?php
class Mail extends MailCore
{
public static function Send($id_lang, $template, $subject, $template_vars, $to,
$to_name = null, $from = null, $from_name = null, $file_attachment = null, $mode_smtp = null,
$template_path = _PS_MAIL_DIR_, $die = false, $id_shop = null, $bcc = null, $reply_to = null)
{
// No envía el email de la plantilla que nosotros vayamos a igualar en el "if"
if ($template == 'order_conf') {
return true;
}
return parent::Send($id_lang, $template, $subject, $template_vars, $to, $to_name, $from, $from_name, $file_attachment, $mode_smtp, $template_path, $die, $id_shop, $bcc, $reply_to);
}
}

Si observáis el código, aquí:

if ($template == 'order_conf')

estamos haciendo la comprobación de la plantilla.

Esto tiene un problema, que, si la misma plantilla la usan otras partes de la tienda, pues tampoco se enviara ese “email” 🙂

Por cierto, en su momento hicimos una guía específica para evitar que el cliente reciba el email de confirmación en Prestashop. (Es una forma diferente, pero más “especifica”, en este ejemplo hablamos de “forma general” para cualquier email que use la plantilla que se usa el email que recibe el cliente al realizar un pedido con el resumen del pedido (hemos puesto un ejemplo, pero podría haber sido con otra plantilla)

Información obtenida en:

https://www.prestashop.com/forums/topic/315165-disable-mail-for-credit-slip/

Documento realizado bajo Prestashop 1.6.1.12

Print Friendly

Prestashop 1.6.1.13 disponible para descargar

Si recordamos, hace un mes aproximadamente, Prestashop, anuncio la versión 1.6.1.12 de Prestashop, hoy día 25 de Abril Prestashop ha sacado la versión 1.6.1.13, donde se han corregido más de 16 errores con respecto a sus antecesoras.

Algunos de los errores corregidos:

  • Panel de administración (BackOffice):
    • Error corregido en la importación de los temas cuando el directorio cache se vacía
    • Permitir transferencia de Stock entre almacenes bajo la multitienda
    •  Se repara la búsqueda en la gestión avanzada de stock.
    • Generación de facturas en el idioma del usuario
    • etc..
  • Front-Office
    • Precio en las combinaciones cuando existe un descuento por cantidad de la misma.
    • Reparación de los estilos del bloque de categorías del pie de página
    • etc..
  • Núcleo (Core)
    • Optimización de las reglas del carrito
    • etc..

Prestashop 1.6.1.13: Descargar

Log/Registro de cambios: Ver

 

Print Friendly

¿Todo configurado y no funcionan los emails en Prestashop?

Hoy toca hablar de otro clásico, lo primero es que no me estoy refiriendo al típico módulo de alertas por correo, que entre otra cosas si recordamos no servia para habilitar las notificaciones al administrador de la tienda de los nuevos pedidos.

Tampoco estamos hablando de la opción Parámetros Avanzados -> Correo Electrónico donde si recordamos nos permitía configurar entre otras opciones si para el envío de los emails, trabajamos con la función “mail()” o con una configuración especifica mediante SMTP.

Si estas teniendo problemas con “algún” email en especifico en la tienda, te recomiendo revisar la pestaña Parámetros Avanzados -> Registro/Logs, posiblemente te lleves una sorpresa y te diga que no encuentra determinadas plantillas de emails.

Print Friendly

¿Has subido un módulo y no aparece en el listado en Prestashop?

Pánico al subir un módulo en Prestashop

Pánico al subir un módulo en Prestashop

Toca hablar de un clásico, vas a la pestaña módulos -> módulos, subes un módulo, te dice que el módulo se ha subido correctamente, pero te pones a buscar en la pestaña módulos y no aparece, entonces te entra el pánico.

Una de las posibles causas es que el directorio del “módulo” no coincida con el nombre real.

Una forma de comprobarlo es descomprimir el propio módulo en tu ordenador:

Descomprimir Módulo

Una vez lo hayas descomprimido, accede a la carpeta:

Carpeta del módulo descomprimida

Accedemos a ver su contenido:

Contenido del módulo en Prestashop

Vemos que no aparece ningún fichero llamadoslidermolon.php“, lo que si vemos es el fichero “slider.php” que viene a ser en nuestro caso el nombre de la clase principal del módulo.

Clase del Módulo

Por lo tanto el nombre del directorio del módulo no se puede llamar “slidermolon“, se debe llamar “slider“.

Renombramos el directorio del módulo (atención, el directorio que tiene los ficheros del módulo en cuestión)

Cambiando nombre al directorio del módulo

Una vez renombrado, lo comprimimos 🙂

Comprimir directorio del módulo para poder subirlo en Prestashop

Ahora, nuestro fichero se llama “slider.zip”

Módulo preparado para subirlo a tienda

Evidentemente, si ya habías subido el módulo, entrar al directorio modules y ver por ejemplo estos tres casos. 

  • 1 – Que no tengas los ficheros del módulo en el directorio raíz de modules
  • 2 – Si existe una carpeta del módulo en el directorio modules que tenga el mismo nombre que la clase principal del módulo. (Como hemos visto en este ejemplo)
  • 3 – Si el nombre de la carpeta es correcto, revisar que dentro de la carpeta estén los ficheros y directorios del módulo y no la carpeta del módulo y después otra carpeta con el mismo nombre, y dentro de esa carpeta los directorios y fichero del módulo
Print Friendly

Documentación – Crear módulo básico en Prestashop 1.7

He elaborado un documento, que nos permitirá conocer aspectos básicos a la hora de crear un módulo para Prestashop 1.7.

Evidentemente, si no tienes conocimientos de programación orientada a Objetos, difícilmente vas a poder lograrlo, pero tampoco tengas miedo, que nadie nace aprendiendo.

El documento está a “medio hacer” pero os puede servir, contiene los aspectos más básicos, crear formulario en el panel de administración, gestionar datos que configuremos en el panel, e imprimir esos datos luego en la tienda 🙂

Para ver el documento que nos puede servir de ayuda a la hora de crear módulos en Prestashop 1.7, pinchar en la siguiente imagen:

¿Preparado para meterte en el mundo del desarrollo en Prestashop?

¿Cómo crear un módulo en Prestashop 1.7?

Print Friendly

No me aplica el impuesto en el panel en Prestashop

¿Qué está pasando con los impuestos en Prestashop?

Problema muy comentado en el pasado en la Comunidad que fue respondido muchas veces, no recuerdo ahora mismo de que versiones de Prestashop exactas hablábamos en aquella época, pero por ejemplo vamos hacer el miniTip bajo Prestashop 1.6

Estoy en la ficha del producto, en Catalogo -> Productos, editando el producto y cuando le digo que me aplique un tipo de impuesto, me añade el mismo precio con el Impuesto que sin el impuesto aplicado.

Mismo precio con/sin impuestos en Prestashop

Observamos en la imagen que aparece el mismo precio tanto en el precio con y sin impuestos, y que curiosamente es la única regla de impuestos que falla, si selecciono el resto de funciona perfectamente.

Nos vamos a la pestaña Localización -> Impuestos (En Prestashop 1.7 la pestaña Internacional – Impuestos), vemos que el impuesto está bien creado, nos vamos a la pestaña Localización -> Reglas de Impuestos (En Prestashop 1.7 Internacional -> Impuestos (Reglas de Impuestos) y vemos que la regla de impuestos en cuestión está correctamente creada, y tiene asociado el impuesto y que además está configurada correctamente en los países.

¿Qué hacemos? ¿Entramos en panico? ¿Es el fin del mundo Prestashopero?

¿Cómo podemos arreglar este problema de los impuestos en Prestashop?

¿Cómo podemos arreglar este problema de los impuestos en Prestashop?

Vamos a realizar una miniChapuza express, vamos a la pestaña Localización -> Impuestos, creamos un nuevo impuesto

Creando impuesto en Prestashop

Ahora nos dirigimos a la pestaña Localización -> Reglas de Impuestos y creamos una regla nueva a la que le vamos aplicar el impuesto que hemos creado anteriormente.

Bloque 1 – Creación de la regla de impuestos

Bloque 2 de la creación de la regla de impuestos en Prestashop

Ahora, solo nos queda aplicar a los productos la nueva regla de impuestos que hemos creado.

¿Cómo podemos aplicar la nueva regla de impuestos que hemos creado a los productos en Prestashop? Sigue leyendo

Print Friendly

Actualizar masivamente precios en base a la referencia en Prestashop

Este aporte lo vamos hacer con el propio importador de productos de Prestashop, combinándolo con un aporte del usuario Inform-All de la Comunidad de Prestashop.

La idea es hacer la importación, teniendo solo como datos la referencia del producto y los precios (Precios sin impuestos añadidos). (Ningún dato más)

Vamos a cambiar los precios que vemos en la siguiente imagen, que son pertenecientes a unos números de la colección Tiger and Wolf

Referencia y Precios de los productos en Prestashop

El primer paso es instalar el módulo que lo podemos hacer desde la pestaña módulos -> módulos. (al final del post, tenéis el enlace de descarga)

Módulo para agilizar la actualización de precios en los productos en Prestashop

El módulo (para los experimentados) lo que hace es instalar un override del controlador “AdminImportController.php” (/override/controllers/admin/)

¿Tiene alguna configuración el módulo para su funcionamiento?

No, no tiene ninguna configuración adicional, con instalarlo es suficiente.

¿Cómo procedemos a realizar la importación para actualizar los precios en base a las referencias de los productos?

Lo primero es elaborar u obtener el fichero que nos haya pasado el proveedor con los nuevos precios (recordar precio sin impuestos incluidos) y la referencia del producto.

Fichero CSV con precio y referencia en Prestashop

En el siguiente paso, nos vamos a la pestaña Parámetros Avanzados -> Importar CSV

Sección importación de productos en Prestashop

Una vez, hemos accedido a la sección de importación de datos, nos vamos al bloque “Importar” -> Opción “¿Qué tipo de entidad desea importar?” y vemos que ahora tenemos una nueva opción denominada: “NewPriceListImport” que antes no existía, señalamos esa opción.

Opciones de importación en Prestashop

No se nos olvide subir el fichero CSV, que vamos a importar, en la misma sección donde dice “Elige un archivo CSV para importar”.

Subir fichero CSV en la importación

Seleccionamos el fichero a importar que contiene los datos con los precios y referencias de los productos.

Seleccionar Fichero CSV a Importar

Pulsamos “Próximo Paso / Siguiente” para proseguir con el proceso de importación de productos en Prestashop.

Próximo paso en la importación

Verificamos que los datos a importar para actualizar los precios (recuerda importamos precios sin impuestos incluidos) son los correctos y pulsamos en “Importar datos CSV” Sigue leyendo

Print Friendly

Fatal error: Class ‘NombreClase’ not found in Ruta/Fichero on line en Prestashop

Hoy hablaremos de un clásico entre los clásicos…, mas o menos como las películas de Indiana Jones o de Richard Gere

Error en Prestashop (Clase no encontrada)

Oh dios mío, me ha salido este error en Prestashop:

Fatal error: Class ‘NombreClase’ not found in Ruta/Fichero on line en Prestashop

Suponiendo que “NombreClase” sea por ejemplo en vuestro caso “Address“, revisar en el directorio (de vuestro Prestashop):

/classes/

Si está el fichero: “Address.php” en dicho directorio (revisar si se encuentra o no), en caso de que este, revisar si no está vacío.

Si ocurre, que el fichero no está o está vacío, bajar vuestra versión de Prestashop de aquí:
https://www.prestashop.com/es/versiones-para-programadores

En la parte inferior del enlace que os he pasado, (si se sigue manteniendo a lo largo de los años), tenéis disponible todas las versiones de Prestashop, en vuestro caso bajáis vuestra versión y simplemente copiar el fichero del que hemos hablado en vuestra tienda. Sigue leyendo

Print Friendly

Actualizar de Prestashop 1.6 a 1.7.1.0

Hace unos días, como comenté en el Blog, Prestashop saco la versión 1.7.1.0, y entre las mejoras, nos prometía una proceso de actualización para poder actualizar desde Prestashop 1.6 a Prestashop 1.7

Nos recomienda en su artículo:

http://build.prestashop.com/news/updated-1-click-upgrade-module/

Usar el módulo 1Click (versión beta), que están preparando para poder actualizar de una vez por todas a la versión 1.7 como hacíamos entre versiones anteriores y sin grandes inconvenientes.

El módulo, nos dicen que lo bajemos de aquí: http://www.prestashop.com/download/private/autoupgrade.zip (El paquete ahora mismo recomiendo descomprimirlo en vuestro equipo y volverlo a descomprimir si lo bajáis del enlace)

Recordar que el “oficial” esta aquíhttps://addons.prestashop.com/es/migracion-copias-de-seguridad/5496-.html, pero a día de hoy no permite actualizar de la versión 1.6 a la 1.7. (Posiblemente cuando veáis este  tema, el post estará antiguado y todo lo que he comentado no servirá  y podréis actualizar  directamente desde el oficial)

Una vez descargado el zip (Descargar Módulo de actualización Beta) (Este Zip ya viene preparado), lo instalamos/subimos desde la pestaña módulos -> módulos. (Recomiendo desinstalar y eliminar antes el que tengáis instalado)

Una vez instalado, en la misma configuración del módulo en la sección “Más opciones (Modo Experto)

Modo experto en modo actualización en Prestashop

SeñalamosCanal -> Lanzamiento mayor (Major Release)

Major release / Lanzamiento Mayor Prestasho

Major release / Lanzamiento Mayor Prestashop

Y nos aparecerá que la versión 1.7.1.0 es la versión más alta ahora.

Pulsamos en “Guardar

Proceso de actualización de Prestashop 1.6 a 1.7.1.0

Proceso de actualización de Prestashop 1.6 a 1.7.1.0

Ahora pulsamos en “Siguiente

Y vemos que nos aparecerá la siguiente pantalla de los requerimientos mínimos para poder actualizar de Prestashop 1.6 a Prestashop 1.7.1.0 (En nuestro caso todos con la V de correctos/verificados)

Requerimientos mínimos para actualizar de Prestashop 1.6 a Prestashop 1.7.1

Si seguimos bajando la pantalla, vemos que tiene marcada las siguientes opciones:

Desactivado Módulos Nativos -> SI
Actualizar el tema predeterminado -> SI
Cambiar el tema predeterminado -> SI
Actualizar los valores de los correos electrónicos -> SI
Modos paso a paso -> No
Mostrar errores -> No

Sigue leyendo

Print Friendly

Eliminar nombre de la tienda de los asuntos de los emails en Prestashop

Lo comente en el foro de Prestashop hace bastantes años, pero se ha conservado más o menos durante el paso de las versiones de Prestashop, y como tampoco hace daños lo dejo también en el blog.

El nombre de la tienda que definimos en Prestashop 1.6 en la pestaña Preferencias -> Contactos de la tienda, aparece en diversas localizaciones, entre ellas el asunto de los emails

En este TIP vamos a tocar directamente la clase, pero recordar que lo que se tiene que hacer es un override.

Editamos el fichero:

/classes/Mail.php

Y buscamos la siguiente línea:

$subject = '['.Configuration::get('PS_SHOP_NAME', null, null, $id_shop).'] '.$subject;

Vemos que estamos almacenando el valor del nombre de la tienda + el asunto propio del email.

El nombre de la tienda en dicha variable (variable que se usa para el asunto de los emails), vemos que lo obtenemos aquí:

Configuration::get('PS_SHOP_NAME', null, null, $id_shop)

Recordar que lo ideal para realizar la modificación que vayamos a realizar, es hacer un override de la Clase en:

/override/classes/

Print Friendly