Описание задачи: на некоторые товары может быть назначена различная цена в зависимости от количества заказанного товара, например, при заказе товара в количестве от 1 до 100 шт., цена товара 100руб/шт., при заказе от 101 до 1000 - 70руб/шт., и больше 1000 - 60руб./шт. При этом градации у разных товаров могут быть разные, цены на различное количество не связаны между собой. Дополнительной задачей была выгрузка этого функционала на сайт под управлением Битрикс.
Изначально был настроен типовой функционал (описание см. ниже), но он оказался не очень удобный по следующим причинам:
- Цена отображается как скидка, т.е. в заказе остаётся базовая цена за шт., итоговая сумма рассчитывается из расчета цены для соответствующего количества и рассчитывается скидка от базовой цены.
- т.к. цены между собой не связаны, то процент скидки за частую получается дробный, что может вызвать вопросы у клиентов.
- Не видно итоговой цены по которой продаётся товар (только сумма), не понятно в какую градацию попали, это сильно затрудняет проверку корректности цен в заказе, как для клиентов, так и для менеджеров.
- Сложность настройки и не наглядность полученного результата.
- Настройка требует хорошего уровня знания работы механизма скидок в УТ, КА или ERP.
- Сложность настройки возрастает при большом количестве вариантов градаций.
- Полученный результат не очень нагляден, т.е. в товаре не видно по какой градации он будет считаться и используются ли для него градации.
- В нашей задаче требовалось продублировать этот механизм на сайт. Встроенный модуль обмена и модуль обмена от битрикс данные по скидкам не передаёт, доработка выгрузки настроек типового механизма скидок была бы достаточно трудоемка.
В связи с этим решено было доработать функционал
Доработанный функционал (расширение)
Добавлен новый справочник Градации цен в котором можно указать диапазоны количества и вид цены номенклатуры, применяемый для соответствующего количества. В карточке справочника Градации на закладке состав можно посмотреть все товары, входящие в эту градацию, удалить или добавить новые.
Для каждого уровня градации назначается свой вид цены, т.е. если градация состоит из трех диапазонов, то будет назначена базовая розничная цена и две оптовые, если из 5 диапазонов - то Розничная и 4 оптовых. Значение цены для каждого вида задаётся типовым документом Изменения цен компании, т.е. механизм назначения цен остаётся типовым.
В справочник номенклатура добавлен реквизит Градация, ссылка на справочник градаций. Т.е. для каждого товара можно указать свою градацию или оставить поле пустым, если градации для товара не используются. Так же это позволяет в карточке товара посмотреть какая градация применяется для него и легко получить данные о градации для расчета цены, выгрузки на сайт и т.д.
В документе Заказ клиента реализовано заполнение Вида цены в зависимости от количества товара в документе. В разработанном функционале изменяется именно тип цены, т.е. в заказе видно реальную цену по который продаётся товар, а не скидку, и по виду цены можно проверить в какой уровень градации попадает количество товара.
В настоящее время в опубликованном расширении пересчет цен реализован только в документе Заказ клиента. Пересчет осуществляется не зависимо от выбранного соглашения и договора.
Выгрузка на сайт
На момент написания статьи механизм назначения разных цен в зависимости от количества для Битрикса мягко говоря чужой :) Требует существенной доработки на сайте, коллеги-разработчики по Битрикс изрядно попотели, много общались с тех. поддержкой, но в итоге победили требуемый функционал.
Со стороны 1С каждая строка справочника Градации была выгружена на сайт как отдельный тип цен. Диапазон количества записывался в наименовании типа цены. При выгрузке цен товара, если для номенклатуры не заполнена градация - выполнялся типовой функционал выгрузки цен, если градация заполнена, то для товара выгружался "базовый" розничный вид цены и все возможные значения цен из диапазонов градации.
Более подробно будет рассказано в статье, посвященной возможностям доработки обмена 1С и Битрикс п. 8.
В опубликованном расширении механизм обмена не доработан, т.к. использовался модуль от Битрикса.
Описание опубликованного расширения:
Расширение включает справочник Градации цен, для назначения порогов градаций. Реквизиты Градации в справочнике номенклатура. Заполнение виды цены от количества в документе заказ клиента.
Расширение не включает доработку выгрузки на сайт.
Проверено на релизах:
- Управление торговлей 11.5.15.49
- Комплексная автоматизация 2.5.15.49
Для ERP не тестировалось, но должно работать на аналогичных релизах.
Код открыт.
Типовой функционал
В типовом функционале для настройки продаж по разным ценам в зависимости от количества в документе необходимо включить использование нескольких видов цен и скидок, далее настроить условия предоставления скидки. Для каждого уровня градации создаём элемент условия предоставления скидок, указываем условие - За разовый объём продаж и количество в документе указываем не менее нижний границы диапазона. Отфильтровать номенклатуру к которой будет применяться условие можно по списку, отбору или сегменту. Для наглядности можно объединить элементы одной градации в группе.
Для назначения цены для каждого диапазона будет использоваться отдельный тип цены, т.е. если максимальное количество диапазонов у нас 5, в системе необходимо завести 5 видов цен. Назначение цен выполняется типовым документом Установка цен номенклатуры.
Далее в разделе Скидки (Наценки) в CRM и маркетинге создаём саму скидку. Используем тип скидки - Специальная цена и выбираем соответствующий Вид цены. Назначение скидки может быть автоматическое (будет рассчитываться автоматически) или ручное (тогда надо будет назначать скидку в документе). Ограничивать скидку по конкретной номенклатуре не обязательно, т.к. номенклатура применения уже указана в Условии предоставления скидок.
Условие выбираем на закладке Условия предоставления. Тут надо учесть, что должны сработать все указанные условия. Т.е. если есть товары с разными градациями, на пример, по одной группе цена ОПТ1 будет применяться от 101 шт до 1000шт., а по другой от 501 до 5000шт. создать одну скидку и заполнить несколько условий предоставления не получится, надо создавать несколько скидок.
Проверено на следующих конфигурациях и релизах:
- Управление торговлей, редакция 11, релизы 11.5.15.49
- 1С:Комплексная автоматизация 2, релизы 2.5.15.49
- 1С:ERP Управление предприятием 2, релизы 2.5.15.49