Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Pending Paypal possible solution
 
binaryslate
Jr. Member
 
Total Posts:  12
Joined:  2009-05-30
 

Hi All,

We’ve been using Paypal Express and being stuck with a lot of ‘Paypal Pending’ orders in our system.  After some investigation and some pointers from other posts in the forum I think I’ve managed to solve the problem, well it seems to have stopped the issue for us but your mileage may vary.

I noticed that the link to pay by Paypal appears in two locations in the checkout.  The first link on the basket page and a second radio button choice on the payment page in the Magento checkout.  Looking at our order history I noticed that paypal orders appear in two forms, sometimes with a Guest user and sometimes with a Magento customer account.  To me this indicated where the customer was choosing paypal, from the basket link as Guest and from the checkout link as a Customer.  The failed ‘Paypal Pending’ order were always on the Customer orders.

I read elsewhere in the forums that when Billing details fail in Paypal, Paypal redirects back to the checkout for the customer to re-enter their details, and in the process sends the ‘Paypal Pending’ order, the customer generally disappears though thinking their order hasn’t worked.

My solution is to remove the link to paypal from the payment page so that the customer can only get to paypal from the basket page, which in my mind is the way that paypal should work, the customer shouldn’t have to enter their details in our checkout and then have details sent back from paypal as it’s a waste of time.

Okay here we go,

template/checkout/onepage/payment/methods.phtml
I have removed paypal, and force protx to be the default so the customer doesn’t need to hit the radio button to make the form appear.  If you are using other payment methods it shouldn’t be too hard to adapt this.

Hope this helps

<?php $method_size sizeof($this->getMethods()); ?>
<div class="payment-methods">
    <
dl id="checkout-payment-method-load">
    
<?php foreach ($this->getMethods() as $_method{ $_code $_method->getCode() ?>
        <?php 
if($_code == 'paypal_express'continue; } ?>
        
<dt>
        
<?php if( $method_size && $_code != 'protxDirect' { ?>
            
<input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" title="<?php echo $this->htmlEscape($_method->getTitle()) ?>" onclick="payment.switchMethod('<?php echo $_code ?>')"<?php if($this->getSelectedMethodCode()==$_code): ?> checked="checked"<?php endif; ?>/>
        
<?php } else if( $_code == 'protxDirect' { ?>
            
<span class="no-display"><input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" checked="checked" /></span>
        
<?php } else { ?>
            
<span class="no-display"><input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" checked="checked" /></span>
        
<?php } ?>
            
<label for="p_method_<?php echo $_code ?>"><?php echo $_method->getTitle() ?></label>
        </
dt>
        <
dd>
            
<?php echo $this->getChildHtml('payment.method.'.$_code?>
        
</dd>
    
<?php } ?>
    
</dl>
</
div>
<
script type="text/javascript">
payment.init();
</script>
 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top