I think we'd still need TVs (or their future equivalent), but inheritance is an exciting area.
You think? I'm open to storing basket contents on the server, but personally I'm not sure I see the need for it. I would just as soon potential customers keep their clicks to themselves on their own machines so I don't need to clean up the database periodically. Although I guess arguments can be made that a) being able to browse abandoned carts might alert you to a problem, and b) some people are still paranoid of cookies, so storing them in a database table avoids that issue.
I just think that the amount of data that needs to be passed around from client to server each time should be minimised. And there are limits to cookie size. More importantly, these *are people trying to buy something from you*. You can therefore afford the db time, as this will rise in line with the turnover of the store. Guest carts could have a natural expiry of 30 days, and db clean up would be pretty much automated.
I think that where the data is stored is something that we should all agree on and do the same way if possible so that everyone knows where to look for those values in their add-on modules.
Well ideally it would be abstracted so that things could differ, but there was a common way to ask for the value.
I think that there are two parallel models of carts to consider here as well: with user accounts vs. without. User accounts can be very useful for repeat customers, digital downloads, etc. but tend to make the checkout process longer and more complex. For those who don't need user accounts, I think that there should always be an option to not have them.
Well, the cart is either associated with a user account or it isn't. A system with user accounts may still let people add to cart in guest mode before they log in. As for the checkout...
Require user account before checkout = bad, unless they need one to see the products (eg trade only site).
Ability to create user account during checkout = good.
Ability to create user account at any point = good.
Ability to *not* create user account during checkout = may be of some use to some people.
Ability to log into user account during checkout and prefill most details = good.
Ability to order without having to remember password from existing user account = nice.
In all likelihood, every time anyone checks out without an associated user account, a customer account is still created because the details need to be stored somewhere. The user just can't log in to it or reuse it. So yes, shop owners should be free to remove the ability to reuse accounts if they so wish. But I'm with grad on it being an additional option for the customer - albeit one that would default to yes.
And certainly, the user account info should only require the information needed to fulfil the order - eg if payment is via PayPal, for a digital download, we don't need the customer's full address, so we don't need to ask for it.
Of course, the user account is also useful so that they can log in and track the status of the order.
And shipping should be calculatable just from postcode and country. Don't need full details at that stage, and it's much better to see the final total before entering checkout.