PS PrestaShop Principiante

DataFirefly Cart History & Restore Links: historial de carritos y enlaces de restauración

Instalación, enlaces de restauración en el back office, página Mis carritos guardados, ajustes, seguridad de los enlaces y resolución de problemas.

Actualizado Versión del módulo 1.0.0

Instalación

Instala el módulo desde Módulos > Gestor de módulos > Subir un módulo enviando el archivo ZIP, o copia la carpeta dfcartrestore en el directorio /modules/ de tu tienda y haz clic en Instalar.

La instalación crea una tabla de registro (dfcartrestore_log), genera la clave secreta que firma los enlaces y añade la página Mis carritos guardados a la cuenta del cliente. No se modifica ninguna tabla nativa: los carritos restaurados son carritos normales de PrestaShop.

Funcionamiento

Un enlace de restauración nunca transfiere un carrito. Cuando alguien lo abre, el módulo lee las líneas del carrito de origen y las añade una a una a su propio carrito, como si hiciera clic en «Añadir al carrito» para cada artículo.

  • El carrito de origen nunca se modifica, pertenezca a otro cliente o esté ligado a un pedido.
  • Nadie inicia sesión en la cuenta del propietario del carrito, a diferencia del enlace nativo de recuperación de carrito de PrestaShop.
  • Los precios, las promociones, el stock, las cantidades mínimas y la disponibilidad para pedido son los del momento de la restauración.
  • El mismo enlace puede usarse varias veces, por varias personas.

Enlaces de restauración en el back office

Lista de carritos

En Clientes > Carritos de compra, la columna Enlace de restauración muestra un botón Copiar enlace para cada carrito que contiene productos. El enlace se copia al portapapeles sin abrir el carrito. En la exportación CSV de la lista, esta columna contiene la URL en claro.

Detalle del carrito

En la parte superior de la página del carrito, un recuadro muestra el enlace completo con los botones Copiar enlace y Abrir, y el número de veces que se ha usado. Si hay un periodo de validez configurado, se indica la fecha de caducidad.

Ficha del cliente

El bloque Carritos y enlaces de restauración muestra los 10 últimos carritos no vacíos del cliente, con su fecha, número de artículos, total de productos, estado del pedido y botón de copia.

El enlace se genera en el idioma y para la tienda del carrito: un cliente italiano recibe un enlace a la versión italiana de la tienda.

Lo que ve quien abre el enlace

Con la página de vista previa activada (ajuste por defecto), el enlace abre una página con los artículos del carrito, sus miniaturas y cantidades. El visitante hace clic en Añadir estos artículos a mi carrito para lanzar la restauración y luego se le redirige al carrito o al proceso de compra según tu ajuste.

Un mensaje resume el resultado: productos añadidos, cupones aplicados, cantidades ajustadas al stock y artículos que no se pudieron añadir.

Para un presupuesto preparado por teléfono, crea el carrito desde Pedidos > Añadir nuevo pedido, copia su enlace desde la lista de carritos y envíaselo al cliente.

Página Mis carritos guardados

El enlace Mis carritos guardados aparece en la cuenta del cliente y en el bloque Mi cuenta del pie de página. La página muestra los carritos del cliente que contienen productos, del más reciente al más antiguo, cada uno con:

  • la fecha de última modificación, el número de artículos y el total de productos;
  • el estado Pedido con la referencia y un enlace al pedido, o No pedido;
  • las miniaturas de los productos y un detalle desplegable donde se señalan los artículos que ya no están disponibles;
  • el botón Restaurar este carrito y, si la opción está activa, el botón Copiar enlace para compartir.

El carrito actual del cliente no aparece en la lista. En modo reemplazo, una confirmación avisa al cliente de que su carrito actual será reemplazado y de que lo encontrará en esta misma página.

Ajustes

Cuenta del cliente

  • Mostrar el historial de carritos en la cuenta del cliente: activa la página Mis carritos guardados y sus enlaces de acceso.
  • Comportamiento de la restauración: Reemplazar el carrito actual crea un carrito nuevo y deja el anterior en el historial; Añadir al carrito actual combina los artículos con los que ya hay. Un visitante sin sesión siempre combina, porque no podría recuperar un carrito reemplazado.
  • Mostrar los carritos ya convertidos en pedido: permite volver a pedir los mismos artículos en un clic.
  • Carritos por página: de 1 a 50, 10 por defecto.
  • Periodo del historial (días): solo se muestran los carritos actualizados en ese periodo, 365 por defecto, 0 sin límite.
  • Permitir a los clientes copiar un enlace para compartir: útil en B2B, cuando un comprador prepara el carrito y un compañero hace el pedido.
  • Tras restaurar, redirigir al cliente a: página del carrito o proceso de compra. Si se ajustaron u omitieron artículos, el cliente pasa siempre por la página del carrito para verlos.

Enlaces de restauración

  • Validez de los enlaces (días): se aplica a los enlaces generados a partir de ahora, 0 para enlaces sin caducidad.
  • Mostrar una página de vista previa antes de restaurar: recomendado, ver la sección Seguridad.
  • Conservar los cupones: Nunca, Solo cuando el cliente restaura desde su cuenta (por defecto) o Siempre. Un cupón solo se aplica si sigue siendo válido para el nuevo carrito y su titular. Las reglas automáticas sin código las vuelve a aplicar PrestaShop.

Seguridad de los enlaces

Cada enlace lleva el identificador del carrito y una firma HMAC-SHA256 calculada con la clave secreta del módulo. Un identificador modificado a mano invalida el enlace.

El botón Invalidar todos los enlaces existentes regenera la clave secreta: todos los enlaces compartidos hasta ese momento dejan de funcionar y los nuevos enlaces del back office funcionan con normalidad.

Las pasarelas de correo (Outlook Safe Links, Proofpoint, Mimecast) y las vistas previas de enlaces de Slack, Teams o WhatsApp abren los enlaces automáticamente. Si desactivas la página de vista previa, cada apertura automática desde un navegador normal crearía un carrito. Los robots reconocidos siempre ven la página de vista previa, aunque esté desactivada.

Reglas aplicadas al restaurar

  • Producto desactivado, no disponible para pedido o ausente de la tienda: se omite.
  • Combinación eliminada: se omite.
  • Cantidad inferior a la mínima: se sube a la cantidad mínima.
  • Stock insuficiente sin pedidos fuera de stock: cantidad reducida al stock disponible si sigue respetando el mínimo; si no, el artículo se omite.
  • Producto personalizado: textos copiados y archivos subidos duplicados en el servidor, para que borrar la línea copiada nunca elimine el archivo de un pedido.
  • Ningún artículo añadido: el carrito creado para la ocasión se elimina y se recupera el carrito actual del visitante.

Registro de restauraciones

La página de configuración muestra las 30 últimas restauraciones de la tienda: fecha, origen (enlace o cuenta del cliente), carrito de origen, carrito nuevo, cliente o invitado, artículos añadidos y omitidos. Los números de carrito abren su ficha en el back office.

Para desarrolladores

  • actionDfcartrestoreAfterRestore: se lanza tras cada restauración correcta, con id_cart_source, id_cart y origin (link o account).
  • actionDfcartrestoreCustomizationCopy: se lanza tras copiar una personalización, con id_customization_source, id_customization, id_cart_source e id_cart. Un módulo que guarda sus propios datos por personalización (configurador, grabado) lo usa para duplicarlos.

Resolución de problemas

La columna o el recuadro no aparece para algunos empleados

PrestaShop ignora los hooks de un módulo cuando el perfil del empleado conectado no tiene el permiso Ver sobre ese módulo (Parámetros avanzados > Equipo > Permisos, sección Módulos). Concede este permiso a los perfiles afectados.

El enlace muestra «Este enlace no es válido.»

El programa de correo cortó el enlace, o se invalidaron todos los enlaces después de enviarlo. Copia un enlace nuevo desde el back office.

El enlace muestra «Este enlace ha caducado.»

Ha pasado el periodo de validez. Copia un enlace nuevo o amplía el periodo de validez para los próximos.

El enlace Mis carritos guardados no aparece en la cuenta

Comprueba que la opción de la cuenta del cliente está activa y vacía la caché de la tienda. Algunos temas no muestran el hook displayCustomerAccount; la página sigue disponible en index.php?fc=module&module=dfcartrestore&controller=carts.

Compatibilidad

  • PrestaShop 8.0 a 9.x, el mismo ZIP cubre ambas ramas.
  • Multitienda, multiidioma y multidivisa.
  • Sin dependencia de Composer.
  • Interfaz disponible en francés, inglés, español, alemán, italiano, neerlandés, polaco y portugués.
¿Te ha resultado útil esta página?

¿Sigues atascado? Contacta con soporte