As far as I know, the company keeps the goods. And the more high-priced items (laptop, TV, etc.) can't be paid in cash on delivery (only credit card or Internet banking accepted for those).
In India, laptops can be cash-on-delivery. When I order from Flipkart(India's very own Amazon), I always opt for cash-on-delivery. I see no point in paying up-front when sometimes they don't have the goods and I have to wait for refunds. The delivery person carries card reader, so there is no need to carry large amounts of cash.