Guest Posted January 24, 2015 Share Posted January 24, 2015 Versions 2.3.3 - 2.3.4 It all started some time ago when I noticed missing order numbers on the orders page. Possibly about the same time, I had been getting new orders created with no actual payment made via the PayPal gateway. I thought people were confirming their orders but just not making their payments. However, just this week I noticed that the order is actually being created after the customer selects to pay with a credit/debit card via PayPal, and clicks the button to go to the order confirmation page rather than after he clicks to confirm the order. Why is that? On the other hand, if the customer has selected to pay with Bitcoin or by sending a check the order is not created until he clicks to confirm the order at checkout_confirmation.php (Confirm Order). In these two instances, clicking on Confirm Order executes checkout_process.php, while with the credit card pay method he goes directly to the PayPal interface. While trying to figure out what is happening, I have discovered that if an order is "cancelled" by the product being removed from the cart before the order is "confirmed" there is no longer an existing order -- hence the missing order numbers I mentioned above. This wouldn't happen (and didn't used to with previous versions) if the order wasn't created prematurely. I hope the explanations make sense; is anyone else experiencing these anomalies? Link to comment Share on other sites More sharing options...
Bob Terveuren Posted January 24, 2015 Share Posted January 24, 2015 Hi Russ The behaviour you are seeing is the way that the payment module (PayPal Standard) is now coded - as are most of the native 'off site' modules - the idea is that the order is recorded before the customer leaves to pay so, if they fail to return after paying, then you have a record of the purchase rather than some money at PayPal with no idea what they bought. However the module will cancel an order in certain circumstances (e.g. if the customer leaves the confirmation page back to the store; customer payment fails; customer cancels at PayPal) and does so by deleting the order itself - that leaves a gap in the order numbers and is (IMHO) bad practice as this gap is worrying to a store owner and raises eyebrows at the accountants as auditing likes to see a nice consecutive flow - any gaps attract attention and when the taxman comes calling have to be explained - but that's the way the code works. Some payment systems (I don't know if your Bitcoin module does this) have the ability to accept payment details using an API so the customer enters the details on your site and these details are sent back and forth to the payment system 'in the background'. This will usually happen after they have confirmed the order on the checkout_confirmation page by calling the code in the checkout_process page using the before_process() function of the module.When before_process() is ran the order has not yet been created so, should payment fail the customer gets returned to the payment page - if it succeeds then the rest of the checkout_process file is followed and the order is created. This 'seamless' type of payment is a lot easier to handle for all concerned but the PayPal IPN type of payment still has to be handled in some way. Link to comment Share on other sites More sharing options...
Guest Posted January 24, 2015 Share Posted January 24, 2015 Thanks for the explanations, Bob! Since I have made numerous modifications to my store I was concerned that something I had done was the cause. I have been using osCommerce since 2005, and only recently have seen these "features" at work -- makes me wonder if they were implemented in only the newer versions. Oh, well... Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.