PS PrestaShop Principiante

Pago con anticipo: anticipo al comprar y saldo en la entrega

Instalación, reglas y porcentajes de anticipo, Stripe y transferencia, solicitud del saldo, facturas de anticipo, gestión en el back office y solución de problemas.

Actualizado Versión del módulo 1.2.1

Instalación

Instale el módulo desde Módulos > Gestor de módulos > Subir un módulo enviando el archivo ZIP, o copie la carpeta dfdeposit en el directorio /modules/ de su tienda y haga clic en Instalar.

Al instalarse, el módulo:

  • crea sus tablas (anticipos, transacciones de Stripe, reglas de porcentaje);
  • crea cinco estados de pedido: En espera del anticipo, Anticipo recibido, saldo pendiente, Saldo solicitado, Listo para recoger, saldo pendiente y Enviado, saldo pendiente;
  • añade el menú Pedidos > Anticipos y la pantalla Porcentajes de anticipo, accesible desde ese menú y desde la configuración;
  • registra sus hooks: métodos de pago, ficha de producto, carrito, confirmación de pedido, cuenta del cliente, página del pedido en el back office y factura PDF.

Al desinstalar, las tablas se conservan a propósito: la numeración de las facturas de anticipo y de las rectificativas debe seguir siendo correlativa si vuelve a instalar el módulo.

Comprobación de la configuración

La página de configuración empieza con una lista de comprobaciones en verde, naranja o rojo: método de pago listo, clave de Stripe aceptada por Stripe, modo de prueba todavía activo, secreto del webhook indicado y fecha del último evento recibido, última ejecución de la tarea cron, estados que solicitan el saldo, estado marcado como pagado entre ellos y datos legales de las facturas. Corrija cualquier línea roja antes de abrir las ventas.

El botón Probar la clave de Stripe consulta a Stripe con la clave del modo seleccionado. La prueba también se lanza al guardar cuando la clave cambia. Las URL del webhook y del cron se copian con el botón Copiar.

Reglas de anticipo

Porcentaje e importe mínimo

Porcentaje de anticipo: parte de los productos elegibles que se paga al comprar, entre 1 y 99 %. Importe mínimo del pedido (IVA incluido): por debajo, la opción de anticipo se oculta. 0 significa sin mínimo.

Categorías elegibles y otros productos

Deje la lista vacía para ofrecer el anticipo en todo el catálogo, o seleccione las categorías afectadas. El ajuste Otros productos del carrito decide qué pasa con los productos no elegibles en un carrito mixto: Se pagan íntegramente con el anticipo (se suman al 100 % al importe del anticipo) u Ocultar la opción de anticipo.

Gastos de envío y redondeo

Los gastos de envío pueden pagarse con el saldo (por defecto), pagarse con el anticipo o repartirse según el porcentaje de anticipo. El redondeo se hace al céntimo o a la unidad superior, para importes como 748 € en lugar de 747,35 €.

Grupos de clientes y visualización

Grupos de clientes: solo los grupos seleccionados ven la opción, por ejemplo los profesionales para equipamiento profesional. Vacío = todos los clientes. Mostrar en las fichas de producto añade bajo el botón de compra una línea como «Compre con un anticipo del 30 %: 747,00 € ahora, 1.743,00 € en el envío o la recogida». Mostrar en el carrito añade el reparto anticipo / saldo al resumen.

Porcentajes por producto, categoría o marca

Abra Porcentajes de anticipo desde la lista de anticipos o la configuración y pulse Añadir un porcentaje. Cada regla apunta a un único destino: un producto (búsqueda por nombre, referencia o ID), una categoría o una marca, con un porcentaje entre 0 y 99 %.

Orden de prioridad: la regla del producto, luego la de la categoría más profunda entre las del producto, luego la de la marca y, por último, el porcentaje por defecto de la configuración. Un porcentaje de 0 % excluye el destino: el producto se paga íntegramente con el anticipo. Una regla se aplica aunque la categoría del producto no esté entre las categorías elegibles.

Si un carrito contiene productos con porcentajes distintos, el anticipo se calcula línea a línea. El porcentaje que ven el cliente y la factura es entonces el porcentaje efectivo, por ejemplo 48,39 %.

Saldo

Estados que solicitan el saldo

Cuando un pedido con el anticipo pagado pasa a uno de estos estados, el cliente recibe el email de solicitud de saldo con el enlace de pago. Por defecto: Saldo solicitado, Listo para recoger, saldo pendiente y Enviado, saldo pendiente.

No use el estado nativo Enviado para un pedido con el saldo sin pagar: está marcado como pagado en PrestaShop, que registra entonces automáticamente el resto como pagado. Use Enviado, saldo pendiente. La comprobación de la configuración avisa si un estado que solicita el saldo está marcado como pagado.

Estado una vez totalmente pagado

Estado aplicado cuando el saldo llega a cero (Pago aceptado por defecto) y otro para los pedidos ya enviados (Enviado por defecto). En ese momento PrestaShop genera la factura final.

Recordatorios y avisos

Recordatorio cada X días y Número máximo de recordatorios controlan los emails de recordatorio que envía la tarea cron. Notificaciones al equipo: direcciones, separadas por comas, avisadas cuando un cliente paga un anticipo o un saldo en línea, cuando llega un anticipo con un importe inesperado y cuando se realiza un pedido por transferencia.

Otras formas de pagar el saldo

Texto libre por idioma que se muestra en la página del saldo y en los emails, por ejemplo «El saldo también puede pagarse con tarjeta o en efectivo al recoger el pedido en el taller».

Pago con tarjeta (Stripe)

  1. Active Activar el pago con tarjeta y elija el modo Prueba o Producción.
  2. Pegue la clave secreta del modo elegido (sk_test_, sk_live_ o una clave restringida rk_). Las claves guardadas se muestran enmascaradas.
  3. En el panel de Stripe, Desarrolladores > Webhooks, cree un endpoint con la URL que aparece en la configuración y los eventos checkout.session.completed y checkout.session.async_payment_succeeded.
  4. Copie el secreto de firma whsec_ en el campo Secreto de firma del webhook.

El cliente se redirige a una página de Stripe Checkout. A la vuelta, el pedido se crea al instante. Si el cliente cierra la pestaña antes de volver, el webhook crea el pedido. Cada sesión se procesa una sola vez.

Tras su primer pago de prueba, la línea «Último evento de Stripe recibido» de la comprobación debe pasar a verde. Si sigue en naranja, revise la URL y los eventos del endpoint.

Transferencia bancaria

Active Ofrecer el anticipo por transferencia e indique el titular, el IBAN, el BIC y el nombre del banco. El pedido se crea en En espera del anticipo; el cliente ve sus datos bancarios en la página de confirmación y los recibe por email, con la referencia del pedido como concepto.

Mostrar los datos bancarios para el saldo añade la transferencia como forma de pagar el saldo. Cancelar los pedidos por transferencia impagados tras X días: la tarea cron cancela los pedidos que siguen esperando el anticipo sin ningún pago, y el stock vuelve a estar a la venta. 0 desactiva esta cancelación.

Factura de anticipo

Prefijo de numeración (AC por defecto) y Prefijo de las facturas rectificativas (AVAC por defecto) deben ser distintos. Número siguiente (mínimo) permite continuar una numeración existente: la siguiente factura toma este valor si es superior al último número emitido. Datos legales: texto por idioma impreso al pie de cada factura de anticipo (razón social, capital, NIF, condiciones de pago).

Tarea cron

Programe una vez al día la URL cron que aparece en la configuración, por ejemplo a las 6:00. Envía los recordatorios de saldo y cancela los pedidos por transferencia caducados, para todas las tiendas. La comprobación de la configuración indica su última ejecución.

El recorrido del cliente

  1. Al comprar, el cliente elige «Pagar un anticipo de X € con tarjeta» o «por transferencia». El detalle muestra el total, el anticipo, el saldo y una barra de reparto.
  2. Tras el pago con tarjeta, el pedido pasa a Anticipo recibido, saldo pendiente y la factura de anticipo se emite y se adjunta al email. Con transferencia, el pedido espera a que usted lo confirme.
  3. Cuando el pedido alcanza un estado que solicita el saldo, el cliente recibe el enlace a la página del saldo: pago con tarjeta, datos bancarios y sus indicaciones.
  4. Una vez pagado el saldo, el pedido pasa al estado final y el cliente recibe un email de confirmación.

Un seguimiento en tres pasos (Anticipo pagado, Pedido listo y saldo solicitado, Totalmente pagado) aparece en la confirmación, en el detalle del pedido de la cuenta del cliente y en la página del saldo. El cliente puede pagar el saldo desde su cuenta antes de que se le solicite.

Gestionar los anticipos en el back office

Pedidos > Anticipos

Cuatro indicadores arriba: saldos pendientes, saldos solicitados, transferencias por confirmar y anticipos cobrados este mes. Para cada pedido, la lista muestra el porcentaje, el total, el anticipo, el importe pagado, el saldo pendiente, el estado y la factura de anticipo. Marque varios pedidos y pulse Solicitar el saldo para enviar los enlaces de una vez, por ejemplo el día que un lote está listo para recoger.

Bloque «Anticipo y saldo» de la ficha del pedido

  • Confirmar el anticipo: para una transferencia recibida, indique el importe, el método y la referencia. Se registra el pago y se emite y envía la factura de anticipo.
  • Solicitar el saldo ahora o Reenviar el enlace de pago, y copia del enlace del saldo.
  • Registrar un pago del saldo: transferencia, cheque, efectivo, tarjeta en tienda o en la entrega. Cuando el saldo llega a cero, el pedido pasa al estado final y se avisa al cliente.
  • Anular la factura de anticipo (factura rectificativa): para un pedido cancelado, emite una factura rectificativa numerada. El reembolso se hace en Stripe o por transferencia.

Facturación

La factura de anticipo recoge la dirección de facturación, la referencia del pedido, el porcentaje, una línea por tipo de IVA con base imponible, IVA y total, el método de pago y el saldo restante. El desglose de IVA se calcula a prorrata de los tipos del pedido, gastos de envío y envoltorio incluidos, y se fija al emitirla. El cliente la descarga desde su cuenta, el administrador desde la lista o la ficha del pedido.

La factura final de PrestaShop se genera al pagar el saldo, con un recuadro que recuerda la factura de anticipo. La factura rectificativa recoge los importes de la factura de anticipo en negativo y la referencia de la factura anulada.

Solución de problemas

La opción de anticipo no aparece al comprar

Revise por orden: un método de pago listo (clave de Stripe o IBAN), el grupo del cliente, el importe mínimo, las categorías elegibles y las reglas al 0 %, y el ajuste «Ocultar la opción de anticipo» si el carrito contiene un producto no elegible.

Un pago con tarjeta no ha creado ningún pedido

Probablemente falta el secreto del webhook o es incorrecto, o el endpoint no escucha los eventos adecuados. El pago sigue visible en Stripe. Una vez corregido el webhook, reenvíe el evento desde el panel de Stripe: el pedido se crea.

El pedido está en «Error de pago»

El importe pagado con tarjeta no coincide con el anticipo previsto, normalmente porque el carrito cambió durante el pago. Revise los pagos del pedido y después confirme el anticipo desde el bloque de la ficha del pedido o reembolse al cliente.

No se envían los recordatorios

La tarea cron no se ejecuta o el plazo de recordatorio está a 0. La comprobación de la configuración indica la fecha de su última ejecución.

El saldo figura como pagado aunque el cliente no ha pagado nada

Se aplicó al pedido un estado marcado como pagado (Pago aceptado, Enviado): PrestaShop registra entonces el resto como pagado. Revise los pagos del pedido y use los estados del módulo en los siguientes pedidos.

Compatibilidad

  • PrestaShop 8.0 a 9.x, el mismo ZIP cubre ambas ramas.
  • Multitienda, multidivisa (divisas sin decimales gestionadas para Stripe) y multiidioma.
  • Arquitectura ModuleAdminController, API de Stripe llamada directamente, sin dependencias de Composer.
  • Interfaz, emails y PDF 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