Битрикс. Особенности корзины с комплектами

В данной статье мы рассмотрим очень конкретный кейс, часто встречающийся в мебельной тематике: что произойдет, если один и тот же товар добавлен в корзину дважды: один раз в составе комплекта и один раз как самостоятельный товар.
О том, как мы работаем с комплектами и откуда возник данный кейс, читайте в статье про комплекты.
Описание кейса
Представим, что на сайте одна и та же тумбочка представлена как отдельный товар, расположенный в разделе «Тумбы», и в составе спального гарнитура, который расположен в разделе «Спальни». Имеем в виду, что в базе данных сайта эта тумба хранится в единственном экземпляре и одновременно является простым товаром, продающимся отдельно, и элементом комплекта, продающимся в его составе.
Представим, что покупатель добавляет в корзину гарнитур с этой тумбой в комплекте, а затем решает добавить ее в корзину еще раз, но уже как отдельный товар. Для простоты просто предположим, что ему нужна отдельная тумба в другую комнату и он решил купить ее отдельно. В корзине таким образом окажется две тумбы.
Корзина битрикса будет считать, что товар просто добавлен в нее 2 раза. Сколько штук при этом было добавлено через гарнитур, а сколько — не через гарнитур, не отслеживается.
Если на этом этапе покупатель решит оформить заказ, никаких проблем не возникнет. В заказе будет две тумбы, как он и хотел. Но представим, что для чего-то он решил вернуться на страницу гарнитура и изменить количество тумб: вместо одной взять две. Возникает вопрос: как правильно обработать такой запрос покупателя и не наделать ошибок при оформлении заказа? Ведь в итоге в корзине должен оказаться ранее добавленный гарнитур, но уже с двумя тумбами, а также еще одна тумба, которая была добавлена отдельно.
В битриксе «из коробки» нельзя один и тот же товар добавить в корзину двумя разными строками.
Решение
Для упрощения картины страницу гарнитура можно представить как обычную страницу товара с кнопкой «В корзину». Только в отличие от обычного товара, в корзину будет добавляться сразу несколько товаров. Напрашивается следующее решение:
Каждый раз, когда гарнитур добавляют в корзину, его нужно полностью из корзины удалить и добавить заново в новом составе.
Звучит совсем не сложно, но возникает вопрос: как отделить товары нужного нам гарнитура от товаров, которые были добавлены в корзину ранее. Ведь если мы удалим товар из корзины, мы удалим его совсем, а не только то количество, которое нам надо. Здесь на помощь приходит возможность добавления собственных полей для товаров в корзине. То есть, при добавлении товара в корзину мы можем вместе с ним передать дополнительные поля с какой-то информацией. Такой информацией может стать JSON-массив, в котором будет храниться информация о том, откуда и в каком количестве был добавлен в корзину конкретный товар.
Логика следующая. Когда товар добавляется в корзину, мы для него также передаем в корзину примерно такой массив:
Таким образом мы указываем, что данный товар был добавлен в корзину со страницы товара с id 123 в количестве 2 штук. В данном случае это гарнитур.
Когда данный товар будет добавлен в корзину еще раз, но уже со страницы отдельного товара, в корзине у этого товара массив обновится до такого примерно состояния:
< . "from_ids": [ < "from_id":"123", "quantuty":"2" >, ] "from_id":"456": [ < "from_id":"456", "quantuty":"1" >, ] . >
Таким образом корзина знает, сколько штук откуда было добавлено.
И теперь, когда мы заново добавляем комплект в корзину, мы прочтем информацию из массива и восстановим товар в корзине в том виде, в котором он был.
Комплект и набор в чем разница битрикс
Нашли ошибку? Выделите мышкой и нажмите Ctrl+Enter
Наборы и комплекты
Важно! Наборы и комплекты доступны в решении, начиная с версии 1С-Битрикс: Бизнес. Подробнее о возможностях редакций.
В решениях Аспро для интернет-магазинов вы можете создавать наборы и комплекты из товаров и торговых предложений, комбинируя их по своему желанию.
Набор — это список привязанных к основному товару товаров, которые магазин хочет порекомендовать к покупке. В набор могут быть добавлены именно товары: торговые предложения и/или простые товары. Товар с торговыми предложениями добавить в него нельзя.

Комплект – это список товаров, составляющих необходимую комплектацию основного товара. Сам комплект не имеет физического остатка, его остаток зависит от товаров, которые входят в этот комплект. В комплект могут быть добавлены именно товары: торговые предложения и/или простые товары. Товар с торговыми предложениями добавить в него нельзя.

В этой главе мы рассмотрим каждый элемент и приведем инструкции по его настройке.
- Наборы
- Создание и настройка наборов для товаров
- Создание и настройка наборов для торговых предложений
- Настройка отображения количества товаров в наборе
- Комплекты
- Создание и настройка комплектов для товаров
- Создается комплект, в состав которого добавляются артикулы, формирующего его. Для каждого элемента комплекта можно задать необходимое количество.
- К комплекту добавляется набор, в который добавляются артикулы, которые предлагаются опционально к данному комплекту. Количество так же можно указать для каждого артикула.
- Цена комплекта в админке не задается, так как она будет формироваться из цен входящих в него товаров и в зависимости от выбора покупателя.
- Цена формируется из цен комплектующих;
- Цена назначается на набор и распределяется по комплектующим пропорционально их стоимости;
- Цена назначается на набор и распределяется по комплектующим пропорционально долям цены.
- заказ покупателя;
- расходная накладная;
- счет на оплату покупателю;
- счет-фактура;
- акт выполненных работ;
- приходная накладная с видом операции «Возврат от покупателя»;
- заказ-наряд (для табличных частей «Работы и услуги» и «Запасы»);
- отчет о розничных продажах;
- чек ККМ (включая форму РМК);
- чек ККМ (возврат).
Комплекты и наборы в битриксе. Адаптация для мебельного бизнеса

Интернет-магазины в мебельной тематике зачастую требуют особого подхода к организации каталога товаров. В таких каталогах, как правило, одновременно могут встречаться и простые товары, и товары с вариациями, и комплекты (они же — гарнитуры). Иногда такое разнообразие типов товаров может встречаться даже внутри одной категории каталога, что в свою очередь уже требует особого подхода к фильтрации. Про фильтрацию мы рассказываем в отдельной статье, а сейчас поподробнее остановимся на комплектах.
Как устроены комплекты в 1С-Битрикс: Управление сайтом (БУС)
В админке БУС вы видите комплект как некую единицу каталога, к которой привязаны товары как элементы комплекта. А покупатель на сайте видит комплект как обычный товар. В корзину такой комплект тоже добавляется как одно наименование, однако при отгрузке заказа из остатков списываются именно товары, входящие в комплект. Подходит это для тех случаев, когда товар приходуется отдельными артикулами со своими ценами закупки, а продается как единое целое. Таким образом, покупатель получает конечный продукт, а продавец при продаже списывает те же артикулы, что и приходовал. Цена комплекта задается в админке и никак не привязана к стоимости входящих в него артикулов.
Подходит ли это для мебельных гарнитуров? Безусловно, да. Можно создать комплект, в который входит кровать, две тумбочки и шкаф, и вот мы получаем спальный гарнитур. При этом элементы гарнитура вполне могут продаваться как отдельные товары, находящиеся в своих разделах каталога: шкаф — в шкафах, кровать — в кроватях и т.д.
Что еще может битрикс «из коробки»?
Еще в битриксе есть наборы. Набор — это расширение, которое можно добавить к любому типу товара. Т.е., набор можно добавить и к простому товару, и к товару с вариациями, и к комплекту. Добавленные в набор товары будут предложены покупателю вдовесок к основному товару. Причем покупатель может отказаться от дополнительного предложения, принять его целиком, либо же принять его частично, убрав из набора те наименования, которые ему не нужны. Важно иметь в виду, что товары в наборе предлагаются в том количестве, которое задано в админке. Т.е., если к основному товару предлагается другой товар в количестве двух штук, то либо покупатель берет эти две штуки, либо не берет их совсем.
Товары, добавленные в набор, добавляются в корзину отдельными строками. Таким образом, если в корзину добавлен комплект и к нему добавлены товары из прикрепленного к нему набора, то в корзине будет отдельной строкой указан комплект и отдельными строками каждый товар из набора.
Применить подобную логику наборов в мебельной тематике тоже можно. Например, к спальне можно дополнительно предлагать постельное белье, матрас и т.п.
Как сделать лучше
Описанные выше функциональности не универсальны и сковывают возможности интернет-магазина. Чаще всего магазину требуется, чтобы покупатель мог сам сконфигурировать свой гарнитур, выбрав те элементы, которые ему нужны, и в том количестве, которое требуется.
Покупатель же видит это так:
Товары, входящие в состав комплекта, будут по умолчанию отмечены и включены в гарнитур. А товары из набора будут представлены рядом и по умолчанию не включены в гарнитур. При этом покупатель может отрегулировать как количество товаров из комплекта, так и из набора. Стоимость итогового гарнитура будет зависеть исключительно от стоимости добавленных в него товаров.
На рисунке проиллюстрирован блок с элементами гарнитура на странице товара: кровать и две тумбы в комплекте и комод, предлагаемый опционально как элемент набора.
При добавлении гарнитура в корзину каждый входящий в него артикул желательно отразить отдельной строкой. Это важно, потому что покупатель должен видеть, что в корзине оказалась именно та конфигурация, которую он выбирал на странице товара.
Подобное решение мы предлагаем в рамках обоих вариантов разработки: в ускоренном и под ключ.
В отдельной статье мы разберем работу корзины в контексте применения описанной выше логики. А именно: что будет, если в корзину добавили один и тот же товар дважды: один раз в составе гарнитура и один раз в качестве отдельного товара.
Наборы и комплекты

Новая версия 1С:УНФ 1.6.11 позволяет работать с наборами и комплектами.
Набор или комплект — это несколько различных товаров и услуг, которые объединяются в группы для более удобного оформления продаж. Наборы удобны для всех, продающих наборы товаров. Это может быть магазин цветов, одежды, подарков.
Для работы с наборами необходимо в настройках Продаж выбрать опцию Наборы и комплекты. После включения этой опции в карточке номенклатуры отображается группа Набор/комплект.



После установки флажка Это набор/комплект становятся доступными настройки комплекта: Цена набора и отображение в печатной форме.
Правила формирования цены набора:

В разделе Изменить состав набора можно ввести состав набора или изменить его. Редактирование состава наборов доступно только пользователям с правами Администратор либо через настройки прав Разрешить редактирование номенклатуры.

Напротив набора в списке номенклатуры будет отображаться соответствующая пиктограмма . Чтобы работать с наборами было удобно, в список номенклатуры добавлен фильтр, который при включении позволяет видеть исключительно наборы.

Для продажи набора он выбирается выбрать в табличной части документа продажи. При выборе номенклатуры-набора в табличную часть документов автоматически добавляется весь состав.
Такой алгоритм реализован в документах:

Точно также добавляются наборы ввода штрихкода.
Изменить состав наборов, которые добавлены в табличные части, можно в отдельном окне. Оно открывается при двойном клике мыши на строках состава. При таком изменении набора цены, скидки и пр. полностью пересчитываются.

Отметим, что набор не хранится на складе как самостоятельная единица. Процесс комплектации набора происходит в момент отгрузки товара покупателю.
Пользователь может самостоятельно оценить, какое количество наборов он еще в состянии собрать. Для этого добавлен новый параметр Остатки наборов. Отчет по остаткам наборов отображается в списке отчетов раздела Закупки (если включена опция Использовать наборы/Комплекты).

В отчете пользователю отображаются остатки наборов по остаткам комплектующих.

Добавлена возможность отображения информации о реализованных наборах. Это видно в отчете Продажи. При добавлении в отчет группировок по наборам отображается количество проданных наборов.
Если данная группировка отсутствует, отчет формируется по-старому – выводится количество проданной номенклатуры.

Начиная с версии 1.6.25 изменились расположение настроек учета, правила формирования цены и вывода на печать набора товара, и редактирование его состава. Теперь все настройки осуществляются по одной ссылке Наборы в панели навигации карточки номенклатуры.
Разграничили понятия комплекты и наборы. Подробнее о комплектах в разделе Комплектация. Наборы используются только для продажи и не учитываются на складе. Продаются как обычные товары, объединенные в набор. Может состоять из номенклатуры типа Запас и Услуга. Набор всегда состоит из единственного варианта составляющих.
Эти возможности доступны как пользователям локальных версий так и облачных решений, например 1С:Фреш, 1С:Готовое рабочее место (ГРМ). Для покупки коробочных версий или онлайн аренды программы 1С:Управление нашей фирмой (1С:УНФ) в облаке обращайтесь по телефону +7(499)390-31-58 или на e-mail: info@unf4you.ru