Millions have turned to ordering online then picking up packages in store to avoid waiting in for a courier.
Shops have come under fire for charging customers as much as £6 to pick up click-and-collect orders.
Stores say fees cover legitimate delivery costs and they are waived on many items priced over £20 or £30.
Tesco and Sainsbury’s charge £4 while House of Fraser, Debenhams and John Lewis charge £2. JD Sports’ next day click and collect now costs £5.99, but there is no charge after two days.
Martyn James, at consumer complaints website Resolver, said: “Retailers are punishing customers with stealth charges. A few pounds might not sound a lot, but they make huge profits at our expense.”