Due to Google Checkout's demise, I'm scrambling to get switched over to
using the PayPal processor.[1] I'm running into some issues with the
implementation, and would like to get a sanity check before I start
writing patches...
The code appears to assume that the user will reach the
shop/checkout/paypal/success page
This is a false assumption. The user paid for the merchandise on the
paypal site, and is presented with a completed order page and 3
different links, one of which is to "return to XYZ's site". *Nothing*
guarantees the user will ever click that link.
The code comments *imply* the expectation that the user will click the
link before the IPN call (PayPal's notification callback). At least
with my testing, if I take more than a couple of seconds to look at the
PayPal page, the IPN call happens before I get back to my site.
There is inventory tracking logic in the handler for the success page.
That means it won't get updated reliably. Therefore, it would seem that
the inventory tracking logic belongs in the IPN callback, not in the
success page view handler. Should I submit a patch to move that logic?
Is there "remove_order_items_from_inventory(order)" function that
should be called instead of having a for-loop in every backend?
The success page is intended to act as a receipt. But when the user
hits that page, the orderID is removed from their session data. That
means hitting refresh on the page will lose the receipt, and give an
error message saying "Your order has already been processed." Has there
been any thought given to making the success page a bit less hostile?
Like maybe showing the most recent order and a link to order history or
something? (I think the latter is not a currently offered feature, but
I haven't gone looking. Please correct me if that is wrong.)
The cart is cleaned up in the success page view handler. I believe that
means a user who returns to the site via something *other than* the
success page will find the items they have already purchased still in
their cart. I understand the logic of clearing the cart here: if the
IPN hasn't happened yet, you may still want to show an empty cart to the
user. But that suggests the cart should be cleared here *in addition
to* not *instead of* in the IPN handler. Ideally, whichever event
happened first would clear the ordered items out of the cart, and the
second event would leave the cart alone. Has anyone made an effort to
do something like that?
Pointers, corrections to misunderstandings, etc, are most welcome,
Eli
[1] Deadlines are so much fun. Google Checkout shuts down on the 20th
of this month...
----------------------. "If it ain't broke now,
Eli Carter \ it will be soon." -- crypto-gram
[email protected] `---------------------------------------------
--
You received this message because you are subscribed to the Google Groups "Satchmo
users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/satchmo-users.
For more options, visit https://groups.google.com/groups/opt_out.