I have been doing my shopping online with Tesco for the last 8ish years. I get the 3 same delivery drivers and know them well and never have a problem if something has a short shelf life (doesnt happen that often) or if anything needs to go back.
They have now started a price match scheme, so that if they have to substitue an item (again doesnt happen a huge amount, but if they do have to its usually a sensible one) then you are charged for the cost of your original item ordered. For example I got the other week a £9.00 bottle of red wine for £3.99.
I save money, as I go through my basket before I check out and take things out that I really dont need. I dont have to go past that chocolate alise. I dont have to take the kids with me or do the shop at the weekend dragging my other half along - I could go on.