2012-12-10 5 views
13

Sto usando spree 1-2-stable, e sto usando il ramo spree-paypap-express 1-2-stable (provato anche con il maestro ma fallito di nuovo). Quando provo a effettuare il checkout di un ordine e selezioni PayPal express come metodo di pagamento fallisce con un errore: "Errore gateway: mancante traduzione: en.the_totals_of_the_cart_item_amounts_do_not_match_order_amounts". Per qualche motivo, il totale dell'ordine non corrisponde agli importi degli articoli del carrello. Ho passato tutto il weekend su questo e ancora non ho idea del perché questo sta accadendo.spree-paypal-express fallisce con "Errore gateway: mancante traduzione: en.the_totals_of_the_cart_item_amounts_do_not_match_order_amounts"

Il problema si verifica solo se includo la spedizione con il prezzo> 0 (funziona se si imposta il prezzo di spedizione su 0). Non appena cambio il prezzo di spedizione come valore> 0 o qualche% si rompe. Ho provato sia con "Spedizione IVA inclusa" vera e falsa, stessa cosa.

Qualche idea? È un bug in ppx o mi manca qualcosa?


UPDATE: 12/12/12

Questi sono i valori che sto usando per riprodurre il problema: Sto usando l'IVA (icnluded nel prezzo - 25%), il prezzo dell'articolo che sto cercando di acquistare è 265 EUR (il currecy non ha importanza), la quantità dell'articolo è 1 e la spedizione è 15EUR (di nuovo l'IVA è inclusa nel prezzo di spedizione) si tratta di un'imposta su ordine piatto.

Viene visualizzato l'errore che il totale dell'ordine non corrisponde alla quantità di articoli sommati. Dopo un po 'di debug ho scoperto che in effetti quelli sono diversi prima di inviare a PayPal.

Perché il mio totale è calcolato errato? Sto usando il ramo stellare 1-2-stabile. mio Gemfile:

 

gem 'spree', :git => 'git://github.com/spree/spree.git', :branch => '1-2-stable' 
#gem 'spree_usa_epay' 
#gem 'spree_skrill' 
gem 'spree_auth_devise', :github => 'spree/spree_auth_devise', :branch => '1-2-stable' 
gem 'spree_paypal_express', :github => 'spree/spree_paypal_express', :branch => '1-2-stable' 

La mia vera domanda è come faccio a ricalcolare il trasporto e le tasse solo prima della fase di pagamento (dopo la fase di consegna) e anche come faccio a ignorare le calcolatrici in modo che essi calcolano correttamente?

+0

Si dovrebbe anche indicare quale sistema si sta utilizzando (linux, mac, windows), versione di ruby ​​e versione di rails. Se sei su Windows, ho avuto problemi con l'analisi del file di traduzione su quella piattaforma. –

+0

Sto usando un mac. –

+0

la mia versione rubino è 1.9.3, rotaie 3.2.9 –

risposta

12

Dopo un sacco di debug ho trovato alcuni bug con la gemma spree_paypal_express.

  1. se l'imposta è negativo (IVA è inclusa nel prezzo ed è rimborsato per gli ordini non UE), allora PayPal rifiuta l'ordine a causa della tassa valida
  2. si è scoperto che il metodo di spedizione in spree_paypal_express è difficile -coded. Prende sempre il primo inserito nel DB invece di quello selezionato dal cliente (questo errore appare se hai più opzioni di spedizione)

tali problemi combinati stavano causando problemi di checkout.

Per il primo problema ho impostato opts[:tax] = 0 quando l'imposta è negativa e per la seconda logica implementata che ottiene il metodo di spedizione selezionato (con il prezzo corrispondente) anziché quello codificato.