"Morally"? According to what moral framework it's wrong to accept the lower price when someone offers you the exact same product at two different prices?
It seems to me that introducing morality into the discussion is overcomplicating it. I don't feel I have any moral obligations with the people I trade with, beyond not deceiving them.