Correzione modulo Prestashop COD with fee
Qualche tempo fa ho acquistato sul sito PrestaWorks l’ottimo modulo COD with fee per Prestashop, che permette di aggiungere una tassa in percentuale, con un minimo fisso, per l’acquisto di prodotti pagati con metodo in contrassegno. Spesso infatti i corrieri applicano una tariffa extra per questo tipo di pagamento. Bartolini, per esempio, applica un 2% sul totale dell’ordine, con un minimo dovuto di 5 euro.
L’acquisto del modulo è stato un azzardo: la compatibilità era garantita con Prestashop 1.2, ma già da qualche mese era stato rilasciato Prestashop 1.3.1 che avevo già configurato e personalizzato.
Nonostante ciò, tutto sembrava funzionare perfettamente, ma all’ultimo step dell’ordine, l’errore era impietoso:
Order -> total_products_wt is empty
La ricerca online di una soluzione non è stata semplice nè rapida. La comunità spagnola di Prestashop ha risolto il problema.
E’ necessario modificare il file cashondeliverywithfee.php nella cartella modules/cashondeliverywithfee inserendo la riga
$order->total_products_wt = floatval(Tools::convertPrice(floatval(number_format($cart->getOrderTotal(true, 1),2, ‘.’, ‘’)), $currency));
dopo la riga
$order->total_products = floatval(Tools::convertPrice(floatval(number_format($cart->getOrderTotal(false, 1), 2, ‘.’, ‘’)), $currency));
E con questo il problema viene risolto e il modulo funziona correttamente.
Category: Prestashop, Soluzioni, php | Tags: cod with fee, modulo prestashop, pagamento contrassegno, Prestashop 3 comments »

novembre 1st, 2011 at 20:15
Ottimo modulo.
Confermo la compatibilità anche con la versione 1.4.5.1 ed la versione beta 1.5.
novembre 2nd, 2011 at 11:50
Grazie per la segnalazione!
novembre 14th, 2011 at 02:21
Well done, clear good luck