As I understand it, when an authenticated user has a cart already built and then logs in with items in the cart, the previously built cart is "lost" until the new cart is either emptied or checked out.
Personally, I feel that can confuse some users - if a user has forgotten about the previously built cart, they may get confused as to why items have suddenly appeared in the cart after checking out. If the 2 carts were identical they may even attempt to checkout twice!
Obviously, this functionality comes down to preference so I would like to propose the functionality that allows the customer to either remove the old cart or merge the 2 carts together so that a customer will only ever have 1 cart. I'm aware people may prefer the current situation so this could be a store admin setting to switch between the 2 modes of operation.
Has anyone got any thoughts on the above? Would a patch that provided the above functionality be worth while or would a separate module be advised (based on the commerce_cart_order_convert hook being available)?
Comments
Comment #1
rszrama commentedJust had this discussion yesterday with some developers in our office. It would be trivial enough to just delete the old ones, but I didn't want to hardcode that into Commerce. The most flexible solution would be a Rules event with a default rule. My opinion is that we don't want to delete orders - there's data in there that could be useful from a marketing perspective. So the default behavior I'd target would be to add some sort of "Orphaned cart" status in the "Canceled" state that we just set the old cart orders to.
Comment #2
mjpa commentedThere was a slight marketing angle to not liking the current functionality - if we look for customers who have an old cart we may find multiple carts for a single user and that user may not know the hidden ones exist.
I think the "Orphaned cart" status is a good idea - give the user the choice of "removing" the old cart (simply sets the status to Orphaned) or merging the 2 (copies the contents of the older one sets the status to Orphaned). This shouldn't cause any issues - stock control should ignore items in Orphaned carts.
Comment #3
aem34 commentedhello,
if one could code this kind of thing, it could as well go into a contrib module
with some options as rules...
- retain old cart(s),
- abandon old cart(s), only retaining the current one,
- merging a previous cart with the current one.
example :
on http://www.mescoursescasino.fr/ (sorry for the ad :) )
to buy some food from the food store of the city,
you have a page "previous carts",
where you can have the choice between your previous (dated) carts
in case you want the same products as this specific cart,
and when selected of course you go to the checkout page
where you have the choice between "continue to buy" and "checkout".
Comment #4
lsolesen commentedCould this be something for https://drupal.org/project/commerce_notification