Don't retailers have to sell at the advertised price?
Not online or over the phone, no. The law falls on the side of retailers, citing human error.
Mail order is a grey area.
In store. Technically they can refuse to sell at the erroneous marked price up until the point where they start scanning your purchases at the till. Most will honour the price in store anyway, but if you ever find yourself in a situation where they refuse, the law is definitely on the customers side:
Providing you aren't breaking any laws (eg buying alcohol when underage) the retailer enters a contract to sell you all the goods in your basket/trolley at the marked prices as soon as the first item is scanned at the till.