There are many approaches to this. You can relate the button to the eyes object then you can say on button clicked, subtract eyes.price with a condition where you relate button to eyes such as 'eyes is overlapping button'. You could also try something clever with matching IDs where eyes and its related button have the same ID variable and use this as a condition instead.
Also on the eyes object I would add a string instance variable for the eye colour then you can limit all those set eyecolour events to one which would be set global variable EyeColor to eyes_UI.eyecolour(the instance variable). So rather than set a value based on animation frame, you can set the global variable based on information on the eyes object itself.
Hello lionz ! Thank you for your ideas!
I tried with the eye object instance thing, but I can't get it to work :/ In the debug I can see it gets the right label "Black", "Brown", "Hazel"... etc