ade234uk,
You have a couple of choices, however one thing to keep in mind. If the store owner discontinues products, changes prices, etc you want to retain the origional information as it related to the time of the order.
You can use a complex table to hold all values individually, which would make it easier to categorize, search, and build reports off of, or..
you can create a smaller table, with invoice data, total sale$ (good for reports), Currency (may be needed) and Sale Date.
Within Invoice Data, you can set that as "Text" and generate a text-based invoice (perhaps one you would see in an email) which can be recalled.
All of the values can be held within it; and if you change item prices, delete, reinsert items, or change the entire shopping cart design it can still hold the information.
It really depends on the planned usage of the shopping cart - who are you targeting with this product, etc.