Задать вопрос

Как сделать товары с разными характеристиками и ценой?

Подскажите, как можно сделать товары, которые будут в разных вариантах? Соответственно у каждого варианта товара будут свои характеристики и цена. СУБД использую mysql.

Есть вариант сделать таблицу товаров. Товар будет иметь несколько разновидностей, к которым будут привязаны свойства(в отдельной таблице) и цена. Но здесь стоит проблема выборки, а также некоторая неоднозначность. Например, в этом случае в корзину будет добавляться не товар, а его разновидность, что кажется как то не очень круто. Вообщем подскажите плиз, как это лучше реализовать.

На всякий случай пример свойств товара =)
c45b12a65c494bd2b24fa0c2b7574a88.png
  • Вопрос задан
  • 2751 просмотр
Подписаться 9 Оценить Комментировать
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Такой вид товарного предложения называется "вариативное товарное предложение".

1. Создаётся унифицированный товар, как дополнительный подраздел в нужной категории товаров и, желательно, помечается флагом "унифицированный товар".
2. Создаются все доступные к приобретению варианты сочетаний, как отдельные товарные предложения.
3. В скобках наименования указываем все параметры попарно через двоеточие с разделением точки с запятой.
Пример: Портативный SSD (объем:128Gb;цвет:красный)
4. Затем, в эту категорию помещаются все созданные сочетания товарных предложений.
5. При отображении товара из категории "унифицированный товар" (или, если есть в наименовании товара двоеточие в скобках) - определяем, что товар - вариативный.
6. Если это так - делаем выборку, предварительно исключив скобки (или проще: все товары этой категории) из БД.
7. Если таких товаров несколько - отображаем варианты для выбора.
8. При изменении одного из вариативных параметров пользователем - меняем товар через ajax (или полностью перегружаем страницу, что хуже...)

Еще раз, повторюсь: если пометить категорию в п.1 не представляется возможным, можно просто ориентироваться на скобки и двоеточие, и создавать селекторы по этим признакам.

----------

Если делаете с нуля, всё просто:
1. Добавляете к разделу флаговое поле в БД: "вариативный товар"
2. Добавляете отдельную таблицу вариативных характеристик, в которой присутствуют связки:
ID раздела "вариативный товар", ID одной характеристики товара, тип поля (лучше ID поля и доп.таблицу, канешн, но не так критично, если вариантов не много)
3. Если товаров из нужного вариативного раздела с такими характеристиками у нас несколько - отображаем выбор параметров.
4. см. п.8 (из предыдущего раздела)
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
@d-stream
Готовые решения - не подаю, но...
Вчера я закупил колбасу по 180руб, позавчера была по 175, завтра обещали подогнать ворованную по 70...

общий намек понятен? (товар-партия-прайс-время)
Ответ написан
bitver
@bitver
Самый простой и (для меня) удобный вариант это самая заезженная схема товар:категории 1:N, а категории в свою очередь группируются по группам или в дереве как вам удобно.

Такое заполнять удобно - когда вставляете или обновляете товар, то просто нужно проставить галки к каким категориям он относится. Например, белый, 50мл.
Удобно отображать картинку и название товара, да и искать по фильтру также просто.
В корзину попадает конкретный товар и никаких морочек с атрибутами, подсчетом цен и прочим.

В итоге как схема понятна - можно "категории" переименовать в "аттрибуты" , смысл от этого не меняется.
Ответ написан
@xuBpaloLim
Если своя характеристика и своя цена и их не нужно объединять при поиске, то никаких причин делать это не как отдельные товары нет.
Ответ написан
Комментировать
@assets
Back-end developer
Других вариантов пока не нашел
https://en.wikipedia.org/wiki/Entity%E2%80%93attri...
Ответ написан
@aynur_safin
Можно задавать товару базовую цену и в отдельной таблице цену атрибутов товара в абсолютных или относительных значениях. Например:
товар Колбаса: 100руб, сорт Докторская: 10 руб или коэф.1,1, вес 400гр: -60руб или коэф.0,4, итого 100+10-60=50руб или 100*1,1*0,4=44руб.

Вторая идея - хэшировать набор атрибутов и задавать ему цену.
Ответ написан
@semki096
Ещё вариант логики https://drupalcommerce.org/user-guide/product-attr...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы