Храните товар как сущность (выделите все общее) а характеристики храните отдельно в таблице. Каждая характеристика будет у вас иметь, например, свою цену. Т.е базовая цена товара, плюс цена характеристики.
При добавлении товара в корзину, делаетй "снепшот" в базе, т.е
basket_items
order_id, product_id, characteristic_id
Если нужно выбрать не с одной а с несколькими характеристиками (например пицца с 10 ингридиентами) то таблица будет немного другая. Но суть таже.