Errori relativi all'indirizzo di spedizione Paypal


12

Sto provando a testare il mio negozio con PayPal Sandbox . Ottengo 2 errori diversi in 2 diverse situazioni.
1. Tutto funziona bene fino al completamento dell'ordine in PayPal. Quindi ricevi il messaggio:

Siamo spiacenti, PayPal non consente ai residenti negli Stati Uniti di spedire gli acquisti (ovunque)

2. la seconda situazione è quando cambio l'indirizzo di spedizione dell'acquirente negli Stati Uniti. Ottengo il seguente errore, sulla prima pagina in paypal:

Impossibile elaborare il pagamento. Contatta il commerciante poiché l'indirizzo di spedizione fornito dal commerciante non è valido e il commerciante ha richiesto che il tuo ordine debba essere spedito a tale indirizzo.

Ho scoperto il modulo qui , che questo sembra essere un problema per molti. Da qui ho scoperto che c'è qualcosa a che fare con il metodo address_override e qui viene suggerito di disattivarlo.
C'è un modo per spegnerlo in Magento? È sicuro spegnerlo? Perché è lì in primo luogo? o quali altre soluzioni ci sono là fuori? :

Ho trovato il metodo address_override in magento a

\ app \ code \ core \ Mage \ Paypal \ Model \ Api \ Standard.php riga: 238 $ request ['address_override'] = 1;

Modificato in "0" e ora il sandbox paypal funziona. Nessun errore più. Ma come posso farlo senza cambiare i file core di magento? ed è sicuro?


1
Vorrei segnalare qualcosa in più agli altri là fuori che soffrono dei test Paypal. Ho funzionato dopo aver disattivato address_override, ma poi sono rimasto bloccato sullo stato "Pagamento" in paypal. Si scopre che devi avere la stessa valuta nelle impostazioni di Magento che hai nel conto sandbox di Paypal. Altrimenti paypal non emette mai IPN per completare l'ordine.
ruuter

Risposte:


7

È possibile effettuare le seguenti operazioni se non si desidera modificare i file core:

  1. Crea cartelle Mage/Paypal/Model/Apiin/app/code/local/
  2. Copia il file Standard.phpda/app/code/core/Mage/Paypal/Model/Api
  3. Incolla il file Standard.phpin/app/code/local/Mage/Paypal/Model/Api
  4. Cambia la linea 238 da
$ request ['address_override'] = 1;

per

$ request ['address_override'] = 0;

7

Il address_overrideparametro è lì per impostare l'indirizzo di spedizione che il tuo negozio Magento sta inviando a Paypal come indirizzo di spedizione anziché l'indirizzo di spedizione del cliente salvato a fianco di Paypal.

Se address_overrideimpostato su 1, come nel caso di Magento, Paypal convaliderà l'indirizzo di spedizione. Se il parametro è impostato su 0, presumibilmente non lo fa. Quindi assicurati di inviare un indirizzo valido e ben formattato a Paypal.

Ho riscontrato questo problema a causa di un valore "stato" mancante. Paypal accetta solo abbreviazioni di stato come "CA" per "California". Per altri paesi, gli stati potrebbero non essere disponibili nell'installazione di Magento per impostazione predefinita, ad esempio per il Messico.

Hai personalizzato i campi degli indirizzi di spedizione nel tuo checkout?


2

Dai un'occhiata a queste risposte Stack Overflow:
/programming/5978153
/programming/11281543

Fondamentalmente, un modo rapido e sporco è quello di copiare l'intero file nel tuo app/code/local/Magemondo, ma sarebbe ancora meglio per gli aggiornamenti se potessi sovraccaricare solo l'unica funzione.

Inoltre, se non già, utilizza Github per il controllo della versione. Mi ha salvato più di una volta! Puoi tenere traccia di tutte le modifiche facilmente, anche se stai male e stai modificando i file core.


Sono sorpreso che non ci sia modo migliore per farlo, per non parlare della stranezza di questo problema esistente in Magento in primo luogo. Dovrebbe esserci un'opzione nel back-end se tali errori sembrano essere comuni da qualche tempo. Immagino che userò l'approccio del file locale sporco, perché scrivere un nuovo modulo perché sembra un po 'troppo per ora :) Scaverò più a fondo ... grazie comunque!
ruuter

Non sono più sorpreso da nulla di ciò che fa Magento.
Chris K,

1
non sembra promettente: /
ruuter
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.