Theres generally no law per se that im aware of. But most stores will honor pricing discrepancies between what comes up at checkout and was was on the shelf label if you catch it and call it out when they ring it up. If it's a small amount they might just go on the honor system if its a large discrepancy they might call someone in the dept or send someone to do a price check and confirm. The problem happens when they start changing pricing with very short intervals perhaps maybe every 15 min could very well mean that the price you saw when you picked an item off the shelf and then spent another hour wandering around the store shopping and now the price is different. One way to eliminate this is by either using a store app on the customers phone or the store providing a checkout scanner customers can scan items as they pick them and that price it was at that time stays locked in their virtual cart on the app or scanner. Then I guess like a self checkout you could just pay in the app, or you goto a checkout where the cashier confirms the items you have, rings them up and you pay.