Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Один товар с разными свойствами в корзине

00 голосов
7
Есть:
1. Кофточка (Артикул: 123-123) красного цвета, размер L.
2. Такая же Кофточка (Артикул: 123-123), НО уже зеленого цвета, размер S.

т.е. это один и тот же товар с множественными свойствами "Цвет" и "Размер". Пользователь перед тем как положить в корзину указывает требуемый цвет и размер. Затем с помощью CSaleBasket::Add я отправляю в корзину этот товар.

Но в корзине товар добавляется как один и тот же. Т.е. без разницы какой цвет и размер - просто к уже лежащей кофточке прибавляется еще одна (увеличивается кол-во) и всё.
с помощью CSaleBasket::GetPropsList вывожу массив свойств в корзине - такой массив есть, свойства товара передаются...

Как сделать чтобы эти кофточки разных цветов показывались и считались разными товарами в корзине и при оформлении заказа?
спросил 18 Авг, 13 от Cirus (160 баллов)

7 Ответы

00 голосов
А у вас товары как элементы информационных блоков сделаны? В таком случае, при помещени товара в корзину он обрабатывается по своему id, а у кофточки как я понимаю данный id один и тот же. Тут есть предложение разместить в магазине кофточки разных цветов как разные товары, и в заголовке так и прописать "Кофточка.....(зеленая)", "Кофточка.....(красная)". Тогда можно для каждой кофточки указать свой размер.
ответил 18 Авг, 13 от KAN155 (160 баллов)
00 голосов
ставим интернет-магазин бета версии и всё ок... только не понятно как люди раньше решали подобные траблы...
ответил 27 Окт, 13 от Cirus (160 баллов)
00 голосов
Цитата
vseunaspoluchitsa пишет:
ставим интернет-магазин бета версии и всё ок...

И что дальше делать?
ответил 31 Янв, 14 от BRENN (1,080 баллов)
00 голосов
А, понял:

Код
<?
if (CModule::IncludeModule("sale") && CModule::IncludeModule("catalog"))
{
   Add2BasketByProductID(
      548,
      2,
      array(
         array("NAME" => "Цвет", "CODE" => "CLR", "VALUE" => "зеленый"),
         array("NAME" => "Размер", "VALUE" => "25")
      )
   );
}
?>

Если свойства отличаются, то будет добавлен новый товар, если есть товар с такими же свойствами - количество увеличится
ответил 20 Май, 14 от BRENN (1,080 баллов)
00 голосов
а если цена модификации должна быть иной?
ответил 16 Сен, 14 от TcupkyJIb (140 баллов)
00 голосов
Тогда либо надо заменять функцию CSaleBasket::UpdatePrice (функции обратного вызова тут не помогут, там эти свойства не получить - не передается ID элемента корзины), либо делать модификации отдельными элементами дополнительного инфоблока и использовать шаблон каталога offers
ответил 21 Янв, 15 от BRENN (1,080 баллов)
00 голосов
данные передадутся в заказ как они будут там отображаться?
ответил 06 Май, 15 от Barny (100 баллов)

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

0 голосов
6 ответов
0 голосов
5 ответов
спросил 10 Окт, 13 от Lechman (380 баллов)
0 голосов
1 ответ