Recibir una alerta de sonido al recibir un pedido en Prestashop

En esta ocasión, hablamos de un módulo que mostrara una notificación por sonido en el panel de administración cuando un cliente realice una compra en la tienda.

No confundir con las alertas de los pedidos por email en Prestashop

El módulo esta desarrollado por el usuario jgullstr de la comunidad de Prestashop

La instalación y subida del módulo, como suele ser habitual, desde la pestaña módulos -> módulos.

Instalando módulo que servirá para recibir una alerta por audio en el panel de administración de que un cliente ha realizado un pedido

El módulo no lleva ninguna opción de configuración adicional,

Si entráis en la configuración propia del módulo, veréis que simplemente se escucha la alarma a modo de demostración, pero que no permite ninguna opción de configuración adicional.

Configuración del módulo

Simplemente cuando el cliente haga un pedido en tu tienda, y tu estés en tu panel de administración se escuchará un audio de aviso.

Por otro lado, el audio de sonido que se escucha, esta guardado en el directorio: “/modules/neworderalarm/media/

Si nos podemos a estudiar el código del módulo, vemos que en la clase del módulo “neworderalarm.php” que el módulo queda registrado en los dos siguientes hooks:

  • displayBackOfficeFooter -> Hook situado en el pie de página del panel de administración.
  • actionValidateOrder -> Hook que se ejecuta cuando se realiza el pedido.

¿Dónde puedo descargar el módulo para que en mi panel se escuche una alerta de audio cuando el cliente haga un pedido en la tienda?

Review realizado bajo Prestashop 1.6.1.14 y la versión “1.0.1” del módulo.

Evitar que el cliente reciba el email de confirmación en Prestashop

Cuando el cliente compra en Prestashop, automáticamente recibe un email con la confirmación del pedido con el resumen de su pedido.

Email del pedido en Prestashop

¿Cómo podemos desactivar que el cliente no reciba ese correo?

En este caso, vamos hacer el TIP bajo Prestashop 1.6.

Vamos a tocar la clase original, pero recordar que lo ideal es hacer un override la clase en “/override/classes/

Editamos el fichero:

/classes/PaymentModule.php

Y buscamos el siguiente código:

if (Validate::isEmail($this->context->customer->email)) {
Mail::Send(
(int)$order->id_lang,
'order_conf',
Mail::l('Order confirmation', (int)$order->id_lang),
$data,
$this->context->customer->email,
$this->context->customer->firstname.' '.$this->context->customer->lastname,
null,
null,
$file_attachement,
null, _PS_MAIL_DIR_, false, (int)$order->id_shop
);
}
Código envío email de configuración en Prestashop

Y en este “mini-ejemplo” comentamos el código: Continúa leyendo Evitar que el cliente reciba el email de confirmación en Prestashop

Mostrar número de pedidos por cliente en Prestashop

Traducción del idioma de Shakespeare al idioma de Cervantes de un aporte del usuario vekia de la Comunidad de Prestashop.

Aporte en el idioma de Shakespeare: 

https://mypresta.eu/en/art/developer/number-of-customers-orders.html

Aporte en el idioma de Cervantes:

Con este TIP cuando vayamos a la pestaña Clientes -> Clientes del panel de administración veremos en los listados de los clientes una columna llamada “Pedidos” con el número de pedidos de cada cliente.

Listado Clientes

Aunque vamos a editar los controladores directamente, recordar que lo más optimo y recomendable es hacer un override.

  • Fichero: /controllers/admin/AdminCustomersController.php

Buscamos la siguiente consulta SQL:

Consulta SQL

Y justo después de -> as connect añadimos:

(SELECT COUNT(*) FROM '._DB_PREFIX_.'orders o where o.valid =1 AND (o.id_customer = a.id_customer)) AS nb_of_orders

Quedando del siguiente modo:

Consulta modificada

De esta forma en la consulta vamos a poder obtener el número de pedidos por cliente.

El siguiente paso consiste en el mismo fichero:

Buscamos el siguiente código:

$this->fields_list = array(
'id_customer' => array(
'title' => $this->l('ID'),
'align' => 'text-center',
'class' => 'fixed-width-xs'
),

Correspondiente a la columna de ID cliente en el listado clientes y debajo añadimos:

'nb_of_orders' => array(
'title' => $this->l('Num Pedidos')
),

Quedando del siguiente modo:

Columna número de pedidos

Al acceder al listado de Clientes desde la pestaña Clientes -> Clientes veremos la columna de los pedidos.

Columna pedidos

Documento basado en Prestashop 1.6