With Tesco, they say you will be charged the price of items on the day, so the total shown in your basket is a 'guide price'. They can and do charge you more. Normally with offers it will say the offer dates on the website - you need to order for delivery/collection within those dates to get that price.
I'm not sure when they actually charge it but money for my Tesco online grocery shop usually goes out of my bank account a few days after the order has been delivered e.g. if it's delivered on Saturday it will go out on Tuesday. If I turn something down at the door, they charge the full amount (I assume they do that as it leaves the store) then refund anything I turn away at the door. Often the refund will go back into my account on the same day the payment goes out but sometimes it is the next day.