I would treat each "default basket" as a record in Products with a price for that basket. Then all pricing will come from the products table whether the item be added to the invoice as an indivdual item or as part of a "basket".
This approach doesn't allow you to calculate the items based on the default basket items. Using the suggested approach will make you rely on the correct input of the user. I need a fail proof systeem to compare the default basket content with the current basket content...
You can use a relationship to a related table that lists the product ID's, unit prices and quantities of each item that makes up that basket. A portal on the products layout can be used to create the list products that make up the basket.
Products and Products|InBasket would be Tutorial: What are Table Occurrences? that refer to the same data source table.