EasyVerifactu garantiza que los importes que aparecen en tus facturas coincidan exactamente con lo que PrestaShop registró y mostró a tus clientes. Esta página explica cómo gestionamos los redondeos de PrestaShop para asegurar precisión total.Documentation Index
Fetch the complete documentation index at: https://www.easyverifactu.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
El problema del redondeo
PrestaShop utiliza reglas de redondeo específicas al calcular totales de pedidos. Estas reglas varían según:- Configuración de la tienda (parámetros
round_modeyround_type) - Métodos de cálculo de impuestos
- Configuración de precisión de divisas
- Interacciones entre múltiples artículos
Ejemplo práctico
Un producto que cuesta €16.819 (con IVA incluido) con cantidad de 9:- Multiplicación simple: 16.819 × 9 = €151.371
- Total que PrestaShop calculó: €151.370
Cómo se calculan los importes con precisión
En lugar de recalcular los totales, utilizamos exactamente los valores que PrestaShop ya calculó y almacenó. Nuestro sistema trabaja con tres categorías de datos:Líneas de producto (order_details)
Cada producto del pedido se lee directamente de la tablaorder_details de PrestaShop:
- Leemos
total_price_tax_inclytotal_price_tax_exclde cada línea de pedido. - NUNCA recalculamos multiplicando
unit_price × quantity. - Los precios unitarios que mostramos en la factura se calculan dividiendo el total entre la cantidad, pero solo para visualización.
- Los importes de impuestos se derivan de la diferencia:
total_price_tax_incl - total_price_tax_excl.
Componentes a nivel de pedido
Estos elementos NO son líneas de producto, sino totales que se añaden como líneas separadas en la factura:- Envío: Usa
total_shipping_tax_incldel objeto order. - Descuentos/Cupones: Usa
total_discounts_tax_incldel objeto order. - Wrapping/Gift wrap: Usa
total_wrapping_tax_incldel objeto order.
Notas de crédito (order_slips)
Cuando se emite un reembolso en PrestaShop, el pedido original nunca se modifica. En su lugar:- PrestaShop crea un
order_slip(nota de crédito) como entidad separada. - Los detalles del reembolso se almacenan en
order_slip_details. - Cada entrada en
order_slip_detailsreferencia una línea específica deorder_detailsmedianteid_order_detail. - Nuestro sistema resta estos importes de reembolso de los totales originales para calcular el importe neto.
total_paid = 150€, pero el sistema agrega todos los order_slips asociados para determinar el importe neto real.
Gestión de notas de crédito (order_slips)
La arquitectura de reembolsos en PrestaShop es fundamental para entender cómo se mantiene la precisión en las facturas.Cómo funciona PrestaShop con reembolsos
Cuando se procesa un reembolso (parcial o total) en PrestaShop:- El pedido original permanece intacto: Los campos
total_paid,total_paid_tax_incl, ytotal_paid_tax_exclnunca cambian. - Se crea un order_slip independiente: Este documento representa el reembolso.
- Los detalles se vinculan: La tabla
order_slip_detailscontiene las líneas reembolsadas, cada una referenciando elid_order_detailcorrespondiente.
Múltiples reembolsos parciales
Un pedido puede tener variosorder_slips asociados. Por ejemplo:
- Agrega todos los order_slips asociados al pedido.
- Calcula el neto restando los reembolsos del total original.
- Emite factura rectificativa del importe original completo.
- Emite nueva factura por el importe neto actualizado.
Vinculación técnica
La relación entre tablas es:- Reembolsos parciales de líneas específicas.
- Múltiples reembolsos del mismo producto.
- Preservación del historial completo de transacciones.
Por qué este enfoque es robusto
Fuente única de verdad Utilizamos exactamente los valores que PrestaShop muestra a tus clientes. Las facturas siempre coinciden perfectamente con los pedidos. Respeta la configuración de tu tienda Tus parámetros específicos de redondeo (round_mode, round_type) se honran automáticamente porque PrestaShop ya los aplicó. No necesitas configurar nada en EasyVerifactu: simplemente heredamos la configuración de tu tienda.
Evita errores de punto flotante
Al no recalcular, eliminamos el riesgo de acumular errores de aritmética de punto flotante a lo largo de múltiples artículos.
Crítico para cumplimiento Verifactu
El sistema Verifactu de la Agencia Tributaria requiere precisión absoluta hasta el céntimo. Cualquier discrepancia entre:
- Los totales que PrestaShop muestra al cliente
- Los importes en la factura generada
- Los datos enviados a la Agencia Tributaria
- Descuentos por volumen
- Precios con impuestos incluidos y descuentos porcentuales
- Múltiples tipos de impuestos en un único pedido
- Conversiones de divisas
- Tienes múltiples reembolsos parciales (varios
order_slipspor pedido). - Necesitas demostrar el historial completo de transacciones.
- Tu asesor fiscal requiere conciliación entre PrestaShop y facturas emitidas.
Implementación técnica
Nuestro sistema procesa los datos de PrestaShop en tres categorías distintas:1. Líneas de producto (order_details)
Para cada línea de producto en el pedido:- Lee
total_price_tax_inclytotal_price_tax_exclde la tablaps_order_detail. - Calcula precios unitarios dividiendo el total entre la cantidad (solo para visualización en la factura).
- Obtiene importes de impuestos:
total_price_tax_incl - total_price_tax_excl. - NO recalcula usando
unit_price × quantitypara evitar discrepancias de redondeo.
2. Componentes a nivel de pedido (order)
Para elementos que afectan al total del pedido:- Lee
total_shipping_tax_inclytotal_shipping_tax_excldel objeto order para los gastos de envío. - Lee
total_discounts_tax_inclytotal_discounts_tax_exclpara descuentos y cupones. - Lee
total_wrapping_tax_inclytotal_wrapping_tax_exclpara envoltorio de regalo.
3. Ajustes de notas de crédito (order_slips)
Para reembolsos y devoluciones:- Consulta la tabla
ps_order_slippara encontrar todas las notas de crédito asociadas al pedido. - Para cada
order_slip, leeps_order_slip_detailpara obtener los importes reembolsados por línea. - Vincula cada
order_slip_detailcon suorder_detailoriginal medianteid_order_detail. - Resta los importes reembolsados de los totales originales para calcular el importe neto.
- Agrega múltiples
order_slipssi existen varios reembolsos parciales.
Flujo de cálculo completo
Con esta arquitectura, puedes confiar en que tus facturas son precisas hasta el último céntimo, independientemente de cómo PrestaShop esté configurado o cuán complejos sean tus productos y descuentos. Si tienes preguntas sobre cálculos específicos o necesitas entender cómo se aplica esto a tu configuración particular, consulta las Preguntas frecuentes sobre PrestaShop.