I used to always get this problem, even though I knew how to fix it. I would quickly make something and forget that I needed to add logic checks.
Anyways, I think what is happening is that when you click, it's registering three times.
I messed around with your .cap and set it up like so:
add a private variable on the shop button called 'clicked' or something similar. default is 0
On Click/Double Click and ShopButton's clicked variable is 0 and Gold >= 18
do your gold subtraction, etc here
set clicked to 1
then to reset the button...
On Mouse Button Released and ShopButton's clicked variable is 1
set clicked to 0
Once I did that, it worked.