In order of general preference for
Reliability - they turn up when they said they would;
Waitrose
Ocado
Special mention for Amazon, who do turn up unlike Tesco's and Asda
Quality of 'basics'/cheaper price point own brand/likelihood of finding them on the online shop in the first place/the items being picked not being squashed to death, mouldy or otherwise unusable;
Waitrose
Ocado
Sainsbury's. If it turns up, it'll be decent, but a lot of things that are in stock disappear off the order once the picker's been out, so I think it's more likely they're looking at it and saying 'we can't send that out'.
Delivery drivers.
Most are fine, some just hurl stuff at your front door and run away. Unless it's ASDA or Tesco's, who haven't even bothered to carry it that far and have just slung it over the front wall before (and one refused point blank to carry the shopping up to the front door when I lived in a flat - the reason why I was ordering a delivery in the first place - and dumped it outside, five stories down and buzzed up to say 'your shopping's outside', driving off before I'd got halfway down, despite my telling him I had a broken ankle and was on crutches.
Waitrose
Ocado
Sainsbury's
Amazon - will place it over the front wall, but do wait until you've come out and have taken one look at me when I've come out, realised i can't lift it all and started carrying the heavy items to the house.
What could work for you, as you like selecting things yourself for quality, is to put in a large order for the stuff that actually doesn't really vary - frozen stuff, tins, packets, snacks, drinks, cheese, milk, butter, eggs, carrots, onions, potatoes, root or other robust veg, baking ingredients, laundry detergent, cleaning products, etc, etc - and then go to the supermarket just for the things that do really matter, like meat, fish and seafood; you'll spend a fraction of the time in there because you won't need to visit 90% of the aisles. You'd be able to get what you need for a week in two carrier bags or fewer that way - and all done in about 20mins.