Trevor Haimes, 37, from Trowbridge, had been shopping at the ASDA in Frome, and went to a kiosk to buy lucky dip Lottery tickets with his son Zak, eight.
Zak asked for the tickets, and the cashier refused to sell them. The cashier then refused again when Trevor asked on the grounds that he could pass them onto Zak.
Trevor told his local paper: "Initially I thought they were joking. But the third time they said they couldn't serve me, the woman said I was teaching my son to gamble. She said I was 'unsaleable'.
"I said that I'd taken him down the beer aisle, and now I was taking him to a tobacconist to get a lottery ticket, so was I teaching him to drink and smoke? It's madness. They obviously weren't for him."
Trevor said he then told Zak to wait at the entrance to the store, and went back to buy the tickets alone, only to be refused again!
He was then so fed up that he asked for a refund on his shopping, which came to around £50.
"When she said, sarcastically, 'Have a nice day, sir, thank you', I thought, 'I'm not having this,' and asked for a refund on my shopping," said Trevor.
"It was the shame and embarrassment, really. It's absurd."
Trevor and Zak then went to several other shops to buy tickets and were served each time:
"We went to Sainsbury's, Asda in Trowbridge and a petrol station. Zak asked for the tickets and we got served each time."
An ASDA spokesperson said: "We're committed to following legislation around National Lottery sales."