There are couple of ways you can handle adding upgrades to a product. I'll use an album as an example.
Create a base product option in your Products and Services under Settings > Pricing. For example, create products called 10x10 Flush Mount Album, 8x8 Press Printed Book, 12x12 Aspen Album, etc. Then add any additional product options as their own product or service in the pricing section (for example, Additional Spreads, Leather Slipcase, Metallic Paper, etc.). Then when you're booking a client or creating an order, you can add these items into the package.
In the example, the base package includes a 10x10 Aspen Album - 30 Sides. The other items were added in by selecting from the Product/Service list.
You can also designate these items as Add-Ons so the client can add them into their package on the proposal during the booking process.
Alternatively, you could also create a base product and add options to this product when you are configuring it under Settings > Pricing > Products and Services. Each product can have multiple options and these options can be required if necessary. When you add an option you can then add Values to that option. The extra price is how much the client will have to pay above and beyond the Selling Price (at top) for a particular selection. The Extra C.O.G.S. is the extra cost of goods sold.
Then, when you are creating an order or choosing a package while booking a client, you can easily modify an existing package or create one from scratch. The options for the product in the package are selectable to create a customized product for your client.
Also, when you add options to a product the client will be able to choose these options on a pricing page or on the Add-Ons page of the proposal.
This second method is probably preferable to the first because it consolidates all of the options with the product. The first method keeps them as separate products/services. But either way will work to manage upgrades to your products.