PS PrestaShop Principiante

Gestión de Caducidad y Lotes: documentación

Lotes con caducidad y consumo preferente, cajas de proveedor, costes, FEFO, tramos de descuento, importación CSV y control de stock.

Actualizado Versión del módulo 1.2.0

Instalación y actualización

El módulo se instala como cualquier módulo de PrestaShop, sin dependencias ni Composer.

  1. Abra Módulos → Gestor de módulos.
  2. Haga clic en Subir un módulo y suelte el archivo ZIP.
  3. Después haga clic en Configurar.

El módulo crea tres tablas (lotes, movimientos, embalajes de proveedor) y dos pestañas en el menú Catálogo: Lotes DLC/DLUO y Embalajes de proveedor.

Desde una versión anterior, basta con subir el nuevo ZIP. Sus lotes y su historial se conservan. Si usaba el descuento único de la versión 1.0.0, se convierte en el primer tramo de descuento.

Si las pestañas no aparecen enseguida, vacíe la caché en Parámetros avanzados → Rendimiento y vuelva a iniciar sesión.

Caducidad y consumo preferente: qué hace el módulo

La fecha de caducidad (DLC, consumir antes de) afecta a los alimentos perecederos: superada, el producto no debe venderse. La fecha de consumo preferente (DLUO / DDM) indica una pérdida de calidad: el producto sigue siendo vendible si el cliente está informado.

  • Un lote caducado nunca se asigna a un pedido, aunque el cron todavía no se haya ejecutado ese día.
  • Las acciones automáticas al vencer (retirada del stock, desactivación del producto) solo afectan a la caducidad.
  • Un lote de consumo preferente vencido solo se desactiva; mientras esté activo puede asignarse a pedidos.

Elija con cuidado el tipo de fecha al crear el lote: es el que activa o no las acciones automáticas.

Configurar el módulo

La página de configuración muestra la URL del cron, un estado rápido de los lotes y cuatro bloques de ajustes.

Visualización en la ficha de producto

  • Mostrar la fecha en la ficha de producto: fecha del lote en stock más próximo para la combinación elegida por el cliente.
  • Umbral del distintivo de fecha próxima: por debajo de este número de días aparece el distintivo «Fecha próxima». Por defecto: 10 días.

Descuentos automáticos por fecha próxima

  • Activar los descuentos automáticos: al desactivarlo se eliminan todos los descuentos creados por el módulo.
  • Tramos de descuento: hasta 10 filas «cuando el lote vence en X días» / «descuento Y %». Vea la sección Tramos de descuento.

Stock y costes

  • Cuando caduca un lote con fecha de caducidad: desactivar solo el lote, desactivarlo y retirar su cantidad restante del stock (recomendado), o retirar el stock y desactivar el producto si no queda ningún lote válido.
  • Añadir la cantidad recibida al stock de PrestaShop por defecto: valor propuesto al crear un lote. Déjelo en No mientras registre lotes de stock ya contabilizado en PrestaShop.
  • Registrar el coste del lote en cada línea de pedido: vea Coste de compra y márgenes.
  • Devolver las unidades a sus lotes al cancelar un pedido: vea Cancelación y reactivación.
  • Imprimir los números de lote en los albaranes (activado por defecto) y en las facturas (desactivado por defecto).

Alertas por correo

  • Umbral de alerta antes del vencimiento: ventana vigilada por el correo resumen. Por defecto: 30 días.
  • Correo del destinatario: déjelo vacío para usar la dirección de la tienda.

Embalajes de proveedor

Si compra por cajas y vende por unidades, declare el embalaje una vez en Catálogo → Embalajes de proveedor:

  • producto y, si hace falta, combinación;
  • nombre (por ejemplo «Caja de 12»);
  • referencia de proveedor y EAN de la caja;
  • unidades por caja y coste habitual de la caja (sin IVA);
  • referencia y EAN de la unidad vendida. Si se dejan vacíos, se toman del producto o de la combinación.

El coste unitario resultante se muestra al instante. Un producto puede tener varios embalajes.

Crear y recibir un lote

En Catálogo → Lotes DLC/DLUO, haga clic en Añadir un lote, o use el mismo botón del panel de lotes de la ficha de producto.

Recepción por unidades

  1. Busque el producto (2 caracteres como mínimo) y elija la combinación, o deje «Todas las combinaciones».
  2. Deje Recibido por unidades.
  3. Indique número de lote, tipo de fecha, fecha límite, cantidad recibida y coste de compra por unidad sin IVA.
  4. Elija Añadir esta cantidad al stock de PrestaShop: Sí para una nueva entrega, No para stock ya contabilizado.

Recepción en cajas

  1. Tras el producto, elija Recibido en cajas de proveedor.
  2. Seleccione el embalaje, indique las cajas recibidas y el coste por caja (sin IVA), rellenado con el coste habitual.
  3. La cantidad y el coste unitario se calculan y quedan bloqueados: 3 cajas de 12 a 30 € dan 36 unidades a 2,50 €.

La referencia de proveedor del lote se rellena con la de la caja. Puede sustituirla por el número de albarán del proveedor.

Modificar, desactivar, eliminar

  • El producto de un lote no puede cambiarse tras su creación.
  • Cambiar la cantidad registra un movimiento de ajuste sin tocar el stock de PrestaShop.
  • Un número de lote solo puede existir una vez por producto.
  • Un lote ya vendido no puede eliminarse: desactívelo.

Importar lotes en CSV

Botón Importar lotes (CSV) en la lista de lotes. En esa página puede descargar un archivo de ejemplo.

  • Separador punto y coma, coma o tabulación; primera fila = nombres de columnas; 5.000 filas y 5 MB como máximo.
  • El producto se busca por reference, ean13 o id_product. Una referencia de combinación también sirve en reference.
  • combination_reference o combination_ean13 asocia el lote a una combinación.
  • Obligatorios: lot_number y expiry_date (AAAA-MM-DD o DD/MM/AAAA).
  • date_type: dlc o dluo (dlc por defecto).
  • quantity y unit_cost para una recepción por unidades.
  • boxes, box_reference y box_cost para una recepción en cajas: cantidad y coste unitario se calculan a partir del embalaje.
  • supplier_ref y note son opcionales.
reference;lot_number;date_type;expiry_date;quantity;unit_cost
CROQ-2KG;L2026-118;dluo;2027-03-31;24;6.40
PATE-12;L2026-204;dlc;15/01/2027;;

Un número de lote que ya existe para el producto se omite. El informe enumera cada fila con error y su motivo; las demás filas se importan.

Panel de indicadores y vistas filtradas

En la parte superior de la lista, las tarjetas son clicables y filtran la lista: lotes caducados todavía activos, lotes próximos a vencer, lotes con descuento activo, valor de compra en riesgo y valor de compra del stock en lotes. El filtro se mantiene al paginar; Mostrar todos los lotes lo quita.

El descuento de stock FEFO

Al validar un pedido, para cada producto:

  1. primero los lotes de la combinación pedida, después los del producto;
  2. los lotes se consumen de la fecha más próxima a la más lejana;
  3. los lotes caducados quedan excluidos.

Un pedido de 10 unidades frente a un lote de 4 y otro de 8 toma las 4 primeras y luego 6 del siguiente lote. Cada salida queda registrada con el pedido.

Coste de compra y márgenes

Con Registrar el coste del lote en cada línea de pedido activado, el módulo calcula el coste medio ponderado de los lotes consumidos y lo guarda como precio de compra de la línea de pedido. Las estadísticas de margen de PrestaShop usan entonces el coste real. Los lotes sin coste no entran en ese cálculo.

Tramos de descuento

Ejemplo: 10 % a 90 días, 20 % a 60 días, 30 % a 30 días.

  • Se aplica el porcentaje más alto entre los tramos alcanzados: el descuento nunca baja a medida que se acerca la fecha.
  • Solo afecta al lote que saldrá primero, por producto o por combinación.
  • Es una regla de precio de catálogo estándar de PrestaShop que termina en la fecha límite.
  • Cuando el lote se agota, el descuento pasa al siguiente lote o desaparece.
  • Los descuentos se recalculan al guardar los ajustes o un lote, y después cada día con el cron.

Estas reglas siguen las prioridades habituales de PrestaShop. Si ya aplica descuentos de catálogo amplios, revise las prioridades antes de activar los tramos.

Preparación: pedido y albarán

En el pedido del back office, el bloque Lotes enviados (FEFO) indica para cada producto el lote, la fecha, la cantidad y el coste. Los mismos lotes se imprimen en el albarán, y en la factura si la opción está activada.

Cancelación y reactivación

Cuando un pedido pasa a Cancelado, sus unidades vuelven a sus lotes de origen. Si después vuelve a un estado válido, sus unidades se toman de nuevo en orden FEFO. El ciclo puede repetirse sin contar dos veces.

Las devoluciones parciales con reposición de stock no se asignan automáticamente a un lote. Aparecen en el control de stock, donde puede crear el lote correspondiente.

Control de stock

El botón Control de stock compara las unidades en lotes con el stock de PrestaShop:

  • una diferencia positiva significa que hay unidades sin lote: Crear un lote para las unidades que faltan abre el formulario rellenado;
  • una diferencia negativa significa que los lotes contienen más que el stock: corrija los lotes o el stock.

Los productos con lotes a nivel de producto se comparan sobre su stock total; los que tienen todos sus lotes asociados a combinaciones se comparan combinación por combinación.

Panel de lotes en la ficha de producto

La ficha de producto del back office muestra los lotes del producto con su estado, coste y descuento, y compara el total con el stock de PrestaShop. Su botón Añadir un lote preselecciona el producto. En PrestaShop 8.1 y 9, el panel está en la pestaña Módulos de la ficha.

Tarea cron

El descuento de stock, la trazabilidad y la importación funcionan sin cron. Los tramos de descuento, los lotes caducados y la alerta por correo necesitan una llamada diaria a la URL que aparece en la configuración:

https://su-tienda.com/index.php?fc=module&module=dfdlc&controller=cron&token=SU_TOKEN

La respuesta JSON detalla los lotes desactivados, las unidades retiradas, los productos desactivados, los descuentos creados, actualizados o eliminados y las alertas enviadas.

Alertas por correo

En cada ejecución del cron, un correo resumen enumera los lotes cuya fecha entra en la ventana de alerta: número, producto, tipo, fecha y cantidad. Cada lote se señala una sola vez. Las plantillas se incluyen en 8 idiomas en la carpeta mails/.

Visualización en la ficha de producto

Mediante el hook displayProductAdditionalInfo, la ficha muestra «Consumir antes de» o «Consumir preferentemente antes de» con la fecha del lote más próximo para la combinación elegida. Por debajo del umbral aparece el distintivo «Fecha próxima» con el descuento. Un descuento de tramo fuera de ese umbral se indica como «oferta por fecha próxima». La plantilla views/templates/hook/product-expiry.tpl puede sobrescribirse en su tema.

Trazabilidad y retirada de lotes

El formulario de un lote muestra su historial: recepción, pedidos, cancelaciones, ajustes y retirada por caducidad, con enlace a cada pedido. Exportar CSV descarga el historial del lote; Exportar movimientos en la lista descarga el historial completo. Estos datos son la base de un procedimiento de retirada.

Preguntas frecuentes

¿El módulo sustituye al stock de PrestaShop?

No. El stock de PrestaShop sigue siendo la referencia para vender; el módulo lo reparte en lotes con fecha y señala las diferencias.

¿Qué ocurre si mis lotes no cubren todo el stock?

El pedido se realiza con normalidad: el módulo toma lo disponible en los lotes. El control de stock muestra las unidades sin lote.

¿Es compatible con multitienda?

Sí. Cada lote pertenece a la tienda donde se creó.

¿Qué ocurre al desinstalar?

Se eliminan las tres tablas con su contenido. Haga una copia de seguridad si prevé reinstalar.

¿Te ha resultado útil esta página?

¿Sigues atascado? Contacta con soporte