Correzione modulo Prestashop COD with fee

codwithfeeQualche 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: , , , 3 comments »

3 Responses to “Correzione modulo Prestashop COD with fee”

  1. marco

    Ottimo modulo.
    Confermo la compatibilità anche con la versione 1.4.5.1 ed la versione beta 1.5.

  2. admin

    Grazie per la segnalazione!

  3. kudufegu

    Well done, clear good luck


Leave a Reply