I bought some items from a German website, which showed me the price in GBP and offered for me to pay in GBP. I checked out the goods for delivery and the amount was charged to my Tesco Credit card as expected in GBP.

But now I have also been charged a cash transaction fee of just under 4% (which will be incurring cash interest fees too) which is definitely not a foreign exchange fee. Is there any way to get it removed as customer services on the phone just told me to wait a month until my next statement justifies the fees?

There was no pre-warning that this would be treated as some kind of cash advance, and the purchase is from a business AFAIK.