PS PrestaShop Intermedio

Envío Parcial y Pedidos Pendientes Automáticos (dfavailsplit)

Instala, configura y comprende el módulo que envía el stock disponible y coloca automáticamente el resto en backorder.

Actualizado Versión del módulo 1.3.4

Presentación

Este módulo divide automáticamente cada pedido según el stock realmente disponible. Los artículos en stock salen de inmediato en un pedido listo para preparar, mientras que los artículos agotados se trasladan a un pedido pendiente (backorder) dedicado. Ambos pedidos comparten la misma referencia y la suma de sus totales es estrictamente igual al pedido original, impuestos incluidos.

Todo se activa en la validación del pedido, y una división manual línea a línea está disponible en cada ficha de pedido.

Instalación

  1. Suba la carpeta dfavailsplit a /modules/, o instale el archivo ZIP mediante Módulos > Gestor de módulos > Subir un módulo.
  2. Haga clic en Instalar.
  3. Abra la configuración mediante Configurar.

En la instalación, el módulo crea un estado de pedido dedicado «En espera de reabastecimiento (Backorder)» (color naranja). Este estado y el historial de divisiones se conservan al desinstalar para preservar sus datos.

Configuración

Vaya a Módulos > Gestor de módulos > dfavailsplit > Configurar.

Activar la división automática

Interruptor principal. Desactivado, ningún pedido se divide automáticamente; la división manual sigue disponible en la ficha del pedido.

Estado de pedido backorder

Estado aplicado al pedido que contiene los artículos agotados. Por defecto, el estado «En espera de reabastecimiento (Backorder)» creado en la instalación.

Sobrescritura del estado del pedido enviable

Opcional. Actívelo para forzar un estado concreto (por ejemplo «Preparación en curso») en el pedido enviable. Desactivado, el pedido conserva su estado actual.

Envío gratuito en el backorder

Activado por defecto. Los gastos de envío permanecen en el pedido enviable; el pedido pendiente se entrega sin gastos, porque el cliente ya pagó el envío una sola vez.

División de líneas parciales

Activado por defecto. Una línea parcialmente disponible (3 en stock de 5 pedidos) se divide en 3 enviados + 2 pendientes. Desactivado, la línea completa pasa al pedido pendiente.

E-mail backorder

Envía al cliente un e-mail en su idioma (FR/EN/ES/DE/IT/PL incluidos, respaldo en inglés) informándole de que su pedido se enviará en varias partes.

Regeneración de facturas tras la división

Desactivado por defecto. Déjelo desactivado para emitir las facturas en el momento del envío real de cada pedido. Activado, el módulo regenera las facturas de ambos pedidos tras la división si el estado actual lo exige.

Registro

Registra cada operación de división en los registros de PrestaShop para la trazabilidad.

Cómo funciona la división

La división automática se ejecuta justo después de la validación del pedido (hook actionValidateOrderAfter, con respaldo en actionOrderStatusPostUpdate para los flujos que no lo emiten). El módulo deduce la cantidad enviable de cada línea a partir de la escasez real del stock, agrupada por producto y combinación. Este modelo sigue siendo correcto incluso para una división manual lanzada días después, cuando el stock ha cambiado.

Se presentan tres casos:

  • Todo está disponible: sin división. El pedido sigue su curso (opción de forzado de estado posible).
  • Todo está agotado: sin división, el pedido completo pasa al estado backorder.
  • Pedido mixto: el pedido original conserva la parte enviable (envío, descuentos, embalaje, pago); se crea un nuevo pedido pendiente para el resto, con la misma referencia.

Los totales (productos, envío, descuentos, embalaje, peso) y el desglose de IVA se recalculan al céntimo, línea a línea. La suma de los dos pedidos es exactamente igual al pedido original, impuestos incluidos, también en las facturas regeneradas y los informes fiscales. El pago, agregado por referencia, se concilia de forma nativa.

La división es atómica: todas las mutaciones (creación del pedido pendiente, traslado de líneas, totales, transportista, facturas) están dentro de una transacción SQL. Un fallo a mitad de camino lo anula todo, nunca un pedido dividido a medias.

División manual desde la ficha del pedido

En cada ficha de pedido sin dividir, el panel «División por disponibilidad» muestra una tabla línea a línea: producto, cantidad pedida, stock actual y cantidad a dejar pendiente. Los campos vienen prellenados con la sugerencia del análisis de stock; ajústelos libremente, con 0 la línea permanece en el pedido original, y haga clic en «Dividir este pedido ahora».

  • Disponible incluso con la división automática desactivada.
  • Un pedido ya dividido nunca puede dividirse una segunda vez.
  • La selección se rechaza si vaciaría por completo uno de los dos pedidos.
  • Las líneas personalizadas y el ajuste «división de líneas parciales» se respetan.

En la ficha del pedido (back office)

Una vez hecha la división, el panel enlaza ambos pedidos: desde el pedido enviable remite al pedido pendiente asociado, y viceversa. La referencia compartida se recuerda en ambos sentidos.

Página de confirmación y e-mail al cliente

En la página de confirmación del pedido, un bloque lista los artículos que se enviarán por separado, con el recordatorio de la referencia común y del envío pagado una sola vez. El bloque funciona con todos los temas: se apoya en las tres anclas de confirmación (displayOrderConfirmation, displayOrderConfirmation1, displayOrderConfirmation2) y resuelve el pedido desde la URL de confirmación con verificación de la clave de seguridad, sin mostrarse nunca dos veces.

Si la opción de e-mail está activa, el cliente recibe además un e-mail en su idioma informándole del envío parcial y de la entrega sin gastos del pedido pendiente. Las plantillas FR, EN, ES, DE, IT y PL se incluyen en la carpeta mails/ del módulo, con respaldo en inglés para cualquier otro idioma.

El e-mail de confirmación inicial (pedido completo) lo envía PrestaShop antes de la división. El e-mail backorder del módulo informa después al cliente del envío en varias partes.

Casos particulares y límites

  • Los productos virtuales nunca pasan al pedido pendiente.
  • Los productos con gestión avanzada de stock (ASM) quedan excluidos de la división y permanecen en el pedido enviable.
  • Una línea personalizada no se divide: se enruta completa hacia uno de los dos pedidos.
  • Si la gestión de stock está desactivada en PrestaShop, no se realiza ninguna división.

Solución de problemas

Ningún pedido se divide

Compruebe que la división está activada, que la gestión de stock de PrestaShop está activa y que los productos afectados no son virtuales ni están en gestión avanzada de stock. Una división automática solo ocurre en un pedido mixto (con disponible y agotado a la vez). Para cualquier otro caso, use la división manual en la ficha del pedido.

El pedido pendiente muestra gastos de envío

Active la opción «Envío gratuito en el backorder». Los gastos permanecen entonces únicamente en el pedido enviable.

El bloque no aparece en la página de confirmación

Desde la versión 1.3.4, el bloque se muestra con todos los temas mediante tres anclas de confirmación. Si usa una versión anterior, actualice el módulo.

Compatibilidad

PrestaShop 8.x y 9.x, multitienda, sin overrides ni Composer.

¿Te ha resultado útil esta página?

¿Sigues atascado? Contacta con soporte