Jump to content

MODULI DI PAGAMENTO : Errore sistema (Order -> total_products =


lizards

Recommended Posts

Ciao a tutti,
mi sono infilata in due-tre threads pensando di avere lo stesso problema di altri (quello dei permessi) e pensavo anche di averlo risolto come gli altri...invece NO!

Ho pensato quindi che la cosa migliore sia rispiegare il problema dall'inizio.

Ho la cartella MODULES e tutte le sottocartelle e i files impostati a 755.

Le email di registrazione mi arrivano perfettamente e se faccio un ordine che NON PREVEDE un pagamento (articoli a zero e zero costi di spedizione) l'ordine viene correttamente registrato e mi spedisce l'email dell'ordine senza problemi.

Ho un problema utilizzando il sistema di pagamento BONIFICO BANCARIO e CONTRASSEGNO (ho lo stesso problema sia con CONTRASSEGNO STANDARD DI PRESTASHOP che con il modulo CASH ON DELIVERY AURAL).

IL PROBLEMA E' IL SEGUENTE:
========================
qualunque prodotto io abbia che deve essere pagato, scegliendo la modalità di pagamento CONTRASSEGNO o BONIFICO ottengo il seguente messaggio di errore:

Errore sistema (Order -> total_products = 21.6700000000000017053025658242404460906982421875)

(allego anche lo screenshot per maggiore precisione)

questo numero lunghissimo ho notato che corrisponde alla cifra del totale dell'ordine al NETTO DELL'IVA infatti il numero cambia al cambiare dei prodotti. Ottengo questo messaggio per TUTTI i prodotti tranne quelli che hanno un numero con al massimo due digit dopo la virgola.

CIOE' se compro il prodotto XXX che costa 25.00 euro senza IVA e con IVA 30.00 euro l'ordine va a buon fine.
SE COMPRO il prodotto YYY che costa 9.17 euro senza IVA e con IVA 11.00400 l'ordine chiama un numero lunghissimo con un sacco di decimali e mi genera l'errore.

===================================

DOVREI TROVARE IL MODO PER "BLOCCARE" IL NUMERO DI DIGIT DOPO LA VIRGOLA: esiste? Qualcuno lo ha già fatto? A qualcun altro è già capitato?

Ringrazio in anticipo chi potrà aiutarmi! Vale

23541_x8tBlISOnLIaCkRqjzZp_t

Link to comment
Share on other sites

Allora, è un tentativo un po a occhi chiusi ma vale la pena provare.

File validation.php del modulo cashondelivery (quello normale)
Riga: 14 (se non è quella cerca un po, tanto è un file piccolo)

   $total = $cart->getOrderTotal(true, 3);


fallo diventare

   $total = round($cart->getOrderTotal(true, 3),2);


Cosi, il totale lo mandi in modo arrotondato a 2 cifre dopo la virgola mobile.
Fai una prova, se non funziona rimetti a posto com'era.

Link to comment
Share on other sites

CIAO! Grazie per il suggerimento ma non ho risolto e forse ho anche capito perchè...

Il problema non è nel VALIDATION (o forse NON SOLO nel validation).

Provo a spiegare cosa altro ho notato:

- ho effettuato un ordine con 3 prodotti: uno che costa 13euro, un altro che costa 13euro, un altro che costa 22euro
(vedi lo screenshot che si chama prezzi 3 prodotti)

- il totale del carrello che mi aspetto è di 48euro PRECISE

- invece il mio carrello riporta 47,99euro perchè considera i decimali
(vedi lo screenshot che si chiama carrello)

QUINDI IL WORKAROUND SUGGERITO SECONDO ME va applicato al calcolo del prezzo, non ai vari validation...ma DOVE? COME?

Grazie per quanto potrete fare per aiutarmi! Vale

23546_6B4Ouw5RURhMpf4dS2OO_t

23547_uIkdG1PBzBENnL9hYhBo_t

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...