I'm working with an ordering system and trying to understand first of all why it was designed the way it was.
One of the things I can't understand is why the system creates a unique Order
record for a potential customer even before the customer places the order.
So, what happens is the order goes in and chooses what they want to buy and then, before the Place your order
button is displayed, an order record is already saved for the potential customer.
The effect of this - which is what is bothering me - is that there are thousands of abandoned orders in the system where the user never clicked on the final Place your order
button to finalize the sale.
Shouldn't the order record be generated only after the user clicks "Place your order"? Why do it otherwise?
Judging from what you said, application provides very useful functionality. It remembers everything user selected, so he can close the page, check other outlets, think some more, get back to your site and see his order saved for him.
Also, ten thousands additional rows in database will cost you a penny, so I see no reason to worry about it. And if it turns into a problem, you can routinely clean them up, e.g. if user doesn't show up for a month.