Sometimes I can hardly believe that a client has actually hit on something that apparently hasn't come up yet after years.
We've a client that incentivizes customers to register an account. If they are registered (and logged in) they get a 15% discount PLUS they get to choose from a selection of bonus freebies tiered based on the value of their cart (this bit is a custom feature).
However, because this is a very nice incentive, it's creates a higher probability that customers have this problem: Gust Customer Limbo.
Here's the scenario on a stock PC site: 1st time customer shops and starts through checkout, but for any number of reasons doesn't complete checkout (could even be credit card decline). Now they are a guest user, but they have no order -- and no order code to request.
Now they want to register a user account (because now they learned that this would benefit them). If they try to register an account, they can't. They are stuck in limbo because a guest must have an order code to get to that point, and for whatever reason, they never successfully completed an order.
They could get out of limbo by placing an order (as a guest or by setting a password and registering their account on their way through) ... but that presumes they actually intend to purchase now rather than register first (and presumes they are going to have to forego whatever benefit they might be perked by being registered).
Seems to me that the easiest "get out of limbo free card" would be to do a look-up right before the message that one has already created a guest account and so should use an order code (they don't have) and check to see if this email address actually was ever used on an order. That would return false in this scenario, so then just delete that guest account (as it's completely useless) and let the user proceed as if they had never had any customer record stored for them at all in the db.
I've never seen any one mention this loophole in the logic here or ever had any other client mention it. It is, still, a bug scenario which should be handled some how. PC gives merchants options to set up rules where "Membership has its privileges" and therefor should have a way out of this loop. I think my solution here is elegant and easy to do.
|