7 replies [Last post]
agilpwc's picture
Offline
Joined: 12/10/2007
Juice: 213
Was this information Helpful?

I use paypal pro to process credit cards and also paypal express.
When a customer buys a non shippable item, and pays through paypal website instead of using credit card on my site then after the payment is recieved the status of the order is "payment recieved". And never goes to completed.
When they pay with credit card on my site, status moves to completed. And I also have google checkout installed and it's status also goes to completed.

Ryan's picture
Offline
Joined: 08/07/2007
Juice: 15438
Re: paypal doesn't go to completed status

You probably just need to look at the predicates you have that handle automatic order status updates and see why the predicate to update an order to Completed is not being called.

agilpwc's picture
Offline
Joined: 12/10/2007
Juice: 213
Re: Re: paypal doesn't go to completed status

Well I admit I don't understand how the conditional actions work so well. But I just have the default ones that come with ubercart installed. Can you give me more guidance?

Are you saying I need to add a new condition? or modify a default one?

Since google checkout and credit card payments get updated to order completed, is it possible that somehow there is a bug in paypal express payments and non shippable orders are not being correctly marked as non shippable? Hence order completed is not happening?

Ryan's picture
Offline
Joined: 08/07/2007
Juice: 15438
Re: Re: Re: paypal doesn't go to completed status

Not sure... it might just be a result of when payment is being reported. Puzzled

Look in your Conditional Actions overview for a predicate that's supposed to update orders to Completed and see what the conditions are on that. When we know what conditions aren't being satisfied, we can figure out what's going on w/ PayPal.

agilpwc's picture
Offline
Joined: 12/10/2007
Juice: 213
Re: Re: Re: Re: paypal doesn't go to completed status

there is this one "Update order status upon checkout completion with full payment"

conditions: order balance less than or equal to zero AND
if the order is not shippable

action: update order status to completed.

So it seems like a bug. The order does not get updated to completed only when paying with PayPal Express, so since it is dependent on the payment type, that would tell me that my conditional actions are in order. And the "bug" lies with the payment type, in this case PayPal express.

Ryan's picture
Offline
Joined: 08/07/2007
Juice: 15438
Re: Re: Re: Re: Re: paypal doesn't go to completed status

Well, I wouldn't call it a bug just yet. I think instead the problem here is the trigger for that predicate. It's not being triggered when a payment is being entered but when a customer completes checkout, right? So, perhaps the IPN from PayPal is being received after checkout completes? In that case, this predicate would never even be triggered. Why don't you try creating a new predicate that copies the conditions and actions of this one but works on the trigger for a payment received for the order?

mairav's picture
Offline
Joined: 03/19/2009
Juice: 20
Re: Re: Re: Re: Re: Re: paypal doesn't go to completed status

I'm using paypal express checkout, and when I made and order it always stayed at Pending, so I went to Store Administration > Conditional Actions (admin/store/ca) and edited the predicate called "Update order status on full payment". In the Actions tab I selected "Update order status" in the "Available actions" and click on "Add Action". Then I selected Order Status "Completed". With that, when a user purchases a membership through paypal, it stays at Pending for a while, and then, when it gets confirmation from paypal, it goes to Complete and assigns the role to the user.

I hope this can help you.

markagray's picture
Offline
Joined: 09/09/2009
Juice: 192
Ryan wrote: Well, I wouldn't
Ryan wrote:

Well, I wouldn't call it a bug just yet. I think instead the problem here is the trigger for that predicate. It's not being triggered when a payment is being entered but when a customer completes checkout, right? So, perhaps the IPN from PayPal is being received after checkout completes? In that case, this predicate would never even be triggered. Why don't you try creating a new predicate that copies the conditions and actions of this one but works on the trigger for a payment received for the order?

I'm having the same problem. I tried your idea of creating a predicate off the trigger for a payment received, which was a good idea, but it did not solve the problem. At this point, I have two very simple predicates that just display a message: one displays a message when the trigger is "A payment gets entered for an order" and the other displays a message when the trigger is "Customer completes checkout". When payment is by credit card, both messages are displayed and the order status is correctly set to "Completed". However, when the payment is by PayPal Express, the messages are not displayed and the order status, though completed, shows "Payment Received".

Any help would be much appreciated.