Magento e ordini in pending payment paypal

Reading Time: 2 minutesFavoriteLoadingAggiungi ai preferiti

Magento Pending Paypal PaymentsChi utilizza Magento e PayPal come sistema per la ricezione dei pagamenti si sarà certamente trovato di fronte al problema degli ordini in “pending payment paypal”, ossia quegli ordini il cui pagamento non è stato concluso dal cliente.

Facciamo un piccolo passo indietro.

In Magento la procedura di registrazione di un ordine prevede le seguenti fasi:

  1. l’inserimento delle informazioni di fatturazione
  2. l’inserimento delle informazioni di spedizione
  3. informazioni di pagamento
  4. riepilogo ordine
  5. pagamento

Quando si arriva al punto 4) della procedura Magento registra l’ordine e lo mette “in attesa di pagamento” o “in attesa di pagamento paypal” se si è scelto di pagare tramite paypal.

Selezionato PayPal al punto 4) e cliccato su conferma al punto 5) si viene reindirizzati sul sito PayPal e qui si può

  1. pagare, scegliendo tra l’utilizzo di un conto PayPal o della propria carta di credito; a pagamento effettuato si viene reindirizzati sul sito del commerciante, in una pagina che conferma l’ordine
  2. annullare l’operazione, cliccando sull’apposito link “Annulla”; al click si viene reindirizzati sul sito del commerciante
  3. non pagare e non annullare, ma semplicemente chiudere la pagina o il browser

 

Nei casi 1) e 2) Magento registra rispettivamente l’ordine come “In lavorazione” e “Annullato”.

Nel caso 3) Magento non sa cosa fare e l’ordine rimane nello stato impostato al momento della registrazione, “in attesa di pagamento paypal” se si è scelto di pagare tramite paypal e non c’è modo di pagare l’ordine tramite paypal se non ricevendo un link direttamente dal venditore.

Sarebbe utile un link a PayPal per il pagamento dell’ordine accessibile direttamente dalla Dashboard dell’account cliente? Pensiamo di si e lo abbiamo inserito nella scheda dell’ordine nel modo seguente.

Innanzitutto abilitiamo nella Dashboard gli ordini in “pending”

Quindi apriamo il file /app/design/frontend/base/default/template/sales/order/info.phtml o lo stesso file del vostro template e modifichiamo il DIV con class “box-content” in questo modo

getStore()->getCurrentCurrencyCode(); 
$gTotal = round($_order->getGrandTotal(), 2); 
if($_order->getStatus() == 'pending_payment'):
	//get paypal email
	$paypalEmail = Mage::getStoreConfig('paypal/general/business_account');
?>
Paga subito con getPaymentInfoHtml() ?> 
getPaymentInfoHtml();
endif; ?>

Ecco il risultato

magento pending payment paypal order

Provato su Magento CE 1.7.0.2 e 1.6.2.0

 

Abbiamo sviluppato un modulo che oltre ad attivare il pagamento per ordini in pending payment paypal, a pagamento ricevuto, permette di cambiare stato all’ordine e di emettere in automatico la fattura.