WP-ecommerce : Change the price before inserting it into the cart

If you’re not actually selling the phone without the service contract I’d suggest simply putting the phone cost in to a product meta field and displaying it on the product page. This would keep things in the normal purchase flow.

A second option, again if you’re not actually selling the phone, would be to have the phone as variation with 0 stock and don’t allow back orders. That way the customer couldn’t purchase the phone. Of course you’d have to list the service contract as a separate variation.

If you are selling the phone itself you could simply put the phone and the service plan as different variations and control the price that way.

Other than that you’d have to find the right WP e-commerce hook and do a bit of coding.

Hope that helps.