El módulo de pago contra reembolso de Prestashop le da problemas a muchísimos usuarios tal y como vemos en foros y blogs especializados. Esta entrada en el blog es para contaros el último cambio que hemos tenido que hacer porque, en la factura, el módulo cashondelivery no especifica la comisión con IVA o sin IVA dando lugar a errores.
La solución es editar el fichero en modules/cashondelivery/cashondelivery.php hacia la línea 239 donde da valor a las variables del pedido que identifican el precio del envío.
$order->total_shipping_tax_excl = (float)$this->context->cart->getPackageShippingCost((int)$id_carrier, false, null, $order->product_list)+$fee;
$order->total_shipping_tax_incl = (float)$this->context->cart->getPackageShippingCost((int)$id_carrier, true, null, $order->product_list)+$fee;
$order->total_shipping = $order->total_shipping_tax_incl;
Si te fijas, el error está en que le a a la variable con IVA y a la variable sin IVA el mismo valor. Si modificamos la primera línea para que divida según el IVA aplicable a la comisión del reembolso ($fee) ya tenemos solución:
$order->total_shipping_tax_excl = (float)$this->context->cart->getPackageShippingCost((int)$id_carrier, false, null, $order->product_list)+$fee/1.21;
Esperamos que te haya sido de utilidad, puedes dejarnos en los comentarios tus dudas o contactar con nosotros directamente si necesitas ayuda.
2 comentarios
Hola Carlos, sí que debería funcionar pero bueno, estas líneas de código son un ejemplo con un módulo concreto, habría que ver si tenéis la misma versión. Lo más aconsejable es entender qué es lo que indicamos que hay que cambiar y aplicarlo a tu código.
Cuando te salga error 500 en Prestashop, activa el debug para ver cuál es el error. Seguramente hay alguna variable mal escrita o algún fallo de sintaxis en PHP.
Me alegro de que te sirviera el post a pesar de ser ya algo antiguo, saludos!
Vaya!! Creíamos haber encontrado la solución al problema… pero nos da error 500 al hacer este cambio. Debería funcionar?
Gracias por el post ayudando!!