see the following tutorial for details on adding product options:
to modify this so that the option changes the price, you would need to add a calculation.
using the tutorials example of a Color option, and charging 1 dollar more if a color is selected, the calculation would be:
abs([Color] != '')?[Price] + 1:[Price]
then edit the totalPrice Calculation:
(abs([Color] != '')?[Price] + 1:[Price]) * [Quantity]
In the cart display, remove the Price binding, and replace it with the truePrice binding, and in the code that passes the order to the Gateway, change it to pass the truePrice binding in place of the price binding.