4 issues to consider
Before determining the best solution there are several issues to consider:
The class feature is an easy way to segregate the revenue between the new and update sales. By using the Profit & Loss by Class the revenue and related COGS will show in a column for each type of sale making the determination of the gross margin much easier. It also eliminates the issue to tracking the inventory between the numbers of product for each type of sale.
Once the items are entered, inventory will be relieved by entering the sales receipt or invoice. For the PR items, it is critical that the shipments be recorded even though the selling price will be zero.
This is the easiest scenario because the total cost of the product is known when it is received.
Assuming the class feature is a viable alternative for the new versus upgrade sales, two inventory items will need to be set up: one for the product that will be sold; and one for the product that will be used for promotional purposes. If it is not, there will be an additional item for the upgrade sales.
Enter the quantity and cost on the item tab of a bill, check or credit card charge and the inventory will be recorded for each of the inventory items used. This is assuming that a reasonable guess can be made as to the quantity to be used for each of the different items. If that is not true, see the work around below for when the quantity is not known.
QBRA-2005: Banking > Enter Bills > Item Tab

With this scenario, there are two alternatives:
Alternative: The inventory assembly build method can also be used to receive all the finished goods as in scenario 1 above as an inventory item, and then the build would only be used as it needs to be transferred to a sale or PR type item.
There are many different ways to accomplish the same end result in QuickBooks. The options we are describing here are based on what has been easiest for the majority of the clients. If the client is comfortable with journal entries, inventory adjustments, etc there are other alternatives as well. The most important aspect of deciding on the procedures is to look at how the user enters information and choose an alternative that will accomplish accurate recordkeeping while making sense (and therefore will be remembered) to the user. Written procedures will also be critical to permit cross training and consistent data entry.
This is the easiest alternative. When the product is received and entered using the procedures described above, the amount to be allocated to each item type (i.e. sales or PR) is entered at that time.
Note: If a subsequent adjustment needs to be made to reclassify inventory from one item to another, follow the procedures detailed for "No" below.
This alternative requires more on-going management. Because QuickBooks uses average cost, it is critical that the items be transferred to the correct item prior to entering the sales receipt or invoice to relieve the inventory. The easiest way to manage this is to make sure the inventory warning preference is turned on.
QBRA-2005: Edit > Preferences > Purchases & Vendors > Company Preferences

Then, enter the product as purchase using a best guess as to the distribution. When a sales receipt or invoice is entered that exceeds the quantity available, do not save the transaction, but first enter a transaction to transfer from one item to another. The easiest way to accomplish this is to enter a bill or check for a zero amount and on the item tab enter the item that will be transferred from with a negative quantity and the correct average cost, and the item the will be transferred to with a positive quantity and the correct average cost. This will reduce one and increase the other. Once that transaction is saved, go back and save the sales receipt or invoice.