2011-11-28 15 views
5

Recentemente ho impostato alcuni script automatici per aiutarmi a gestire gli ordini in arrivo per un negozio Magento utilizzando osservatori e eventi Magento. Il mio problema riguarda la domanda quando un ordine viene inserito e salvato nel sistema in base al tipo di pagamento selezionato.Eventi modulo Magento PayPal

Ad esempio: se qualcuno semplicemente sceglie il pagamento anticipato, l'ordine viene salvato immediatamente e il cliente viene automaticamente inoltrato a una pagina di successo, quindi nessun problema finora.

Se un cliente paga tramite Paypal, l'intera situazione è completamente diversa. Dopo essere stato reindirizzato su PayPal, accedere all'account e confermare il pagamento, il cliente non viene reindirizzato allo store Magento. Può cliccare su un link per tornare lì che lo inoltrerà anche alla pagina di successo ma sicuramente non tutti lo faranno e il problema è che l'evento dell'osservatore che uso utilizza solo codice se l'utente atterra su quella pagina. (L'evento con cui sto lavorando è "checkout_Onepage_Controller_Success_Action").

Quindi ho bisogno di sapere da dove Magento ottiene le informazioni se un pagamento PayPal è andato a buon fine, è stato cancellato o altro. Ho controllato alcuni dei file del controller PayPal sotto/app/code/core/Mage/Paypal/controller/e l'unica cosa che sembrava vicina a una possibile soluzione era la funzione successAction() in StandardController.php. Tuttavia, questa funzione sembra essere attivata solo quando un cliente sceglie di tornare all'archivio Magento, quindi non mi aiuta.

Qualcuno ha qualche esperienza con quel problema?

+0

specificare quale metodo di pagamento si utilizza esattamente –

+0

Il mio esempio si riferisce al modulo PayPal standard di Magento v1.5.1.0 – FlyingM

+0

tenta di eseguire il binding per ordinare gli eventi relativi agli oggetti anziché gli eventi del controller e si prega di disconnettere tutti gli eventi in un file di testo che vengono attivati ​​all'interno del processo, quindi è possibile scegliere ciò che è appropriato. –

risposta

0

Ho trovato un modo per aggirare il problema: Appare che in Magento non ci sono eventi corrispondenti ai pagamenti in entrata su PayPal. Una possibile soluzione potrebbe essere quella di fornire un URL IPN che attiva uno script non appena il pagamento viene confermato, ma sono riuscito a reindirizzare il cliente al mio negozio, quindi non ho dovuto farlo.

Nelle impostazioni del profilo dell'account PayPal in "Impostazioni sito Web", esiste un'opzione chiamata "reindirizzamento automatico". Se questa opzione è abilitata e viene inserito un URL, il cliente verrà automaticamente inoltrato a tale URL. All'inizio ho pensato che questo non mi avrebbe aiutato perché, come ho detto, ci sono più negozi web coinvolti che hanno tutti il ​​loro URL di ritorno individuale e non è possibile specificarne più di uno. Tuttavia, se viene passato un URL di ritorno quando si contatta PayPal, esso sovrascrive quello specificato nelle impostazioni del profilo e dal momento che il modulo Magento lo fa per impostazione predefinita, ho appena inserito un URL casuale nel campo di testo e abilitato l'opzione , ora i clienti vengono reindirizzati al mio negozio quando effettuano un ordine e pagano tramite PayPal.

Problemi correlati