Как сделать товары с разными характеристиками и ценой?
Такой вид товарного предложения называется "вариативное товарное предложение".
1. Создаётся унифицированный товар, как дополнительный подраздел в нужной категории товаров и, желательно, помечается флагом "унифицированный товар".
2. Создаются все доступные к приобретению варианты сочетаний, как отдельные товарные предложения.
3. В скобках наименования указываем все параметры попарно через двоеточие с разделением точки с запятой. 
Пример: Портативный SSD (объем:128Gb;цвет:красный)
4. Затем, в эту категорию помещаются все созданные сочетания товарных предложений.
5. При отображении товара из категории "унифицированный товар" (или, если есть в наименовании товара двоеточие в скобках) - определяем, что товар - вариативный.
6. Если это так - делаем выборку, предварительно исключив скобки (или проще: все товары этой категории) из БД.
7. Если таких товаров несколько - отображаем варианты для выбора.
8. При изменении одного из вариативных параметров пользователем - меняем товар через ajax (или полностью перегружаем страницу, что хуже...)Еще раз, повторюсь: если пометить категорию в п.1 не представляется возможным, можно просто ориентироваться на скобки и двоеточие, и создавать селекторы по этим признакам.
----------Если делаете с нуля, всё просто: 
1. Добавляете к разделу флаговое поле в БД: "вариативный товар"
2. Добавляете отдельную таблицу вариативных характеристик, в которой присутствуют связки:ID раздела "вариативный товар", ID одной характеристики товара, тип поля (лучше ID поля и доп.таблицу, канешн, но не так критично, если вариантов не много)
3. Если товаров из нужного вариативного раздела с такими характеристиками у нас несколько - отображаем выбор параметров.
4. см. п.8 (из предыдущего раздела)
Других вариантов пока не нашел 
https://en.wikipedia.org/wiki/Entity%E2%80%93attri...