Персональные цены в B2B-портале: приоритет источников и проверка расчёта

Персональные цены в B2B-портале — это результат выбора между несколькими источниками: базовым прайсом, договорной скидкой, акцией и индивидуальным прайсом контрагента. Чтобы цена в корзине, заказе и счёте совпадала, нужно заранее зафиксировать приоритет источников, правило пересчёта при смене условий и порядок сверки. Чтобы цена в корзине, заказе и счёте совпадала, нужно заранее зафиксировать приоритет источников, правило пересчёта при смене условий и порядок сверки. Ниже — практическая логика, таблица приоритета, матрица сценариев и чек-лист приёмки.

Что входит в задачу и где её границы

Задача — определить, какую цену B2B-портал показывает конкретному контрагенту и его сотрудникам, когда одновременно действуют несколько условий. Входные данные: базовая цена товара, договорная скидка, акция, персональный прайс, тип цены, привязанный к контрагенту или группе контрагентов. Выходные данные: цена в карточке товара, в корзине, в заказе и в счёте.

Границы задачи — только логика приоритета и отображения цены в B2B-кабинете. Мы не рассматриваем тарифы, финансовые условия продавца, кредитные лимиты и отсрочку как предмет настройки: финансовые условия задаёт продавец, а портал лишь отображает то, что ему передали. Не смешивайте этот материал с корпоративным порталом сотрудников — там другая логика доступа и другие роли.

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

Исходные данные и ответственные

Прежде чем настраивать приоритет, соберите данные и назначьте ответственных. Без этого любая логика останется предположением.

  • Базовая цена: откуда она берётся, как часто обновляется, кто отвечает за её корректность.
  • Договорные условия: какие скидки зафиксированы, на какой срок, кто их согласовал.
  • Акции: период действия, список товаров, условия участия, кто запускает и останавливает.
  • Персональные прайсы: для каких контрагентов, на какие товары, кто ведёт файл или запись.
  • Типы цен: какие типы существуют в системе, как они связаны с контрагентами и группами.
  • Роли сотрудников контрагента: кто видит цену, кто может её изменить в заказе, кто согласует.

Ответственные обычно распределяются так: коммерческий отдел отвечает за договорные условия и персональные прайсы, маркетинг — за акции, администратор портала — за типы цен и привязки, менеджер — за ручные изменения в конкретном заказе. Если ответственный не назначен, при расхождении цены никто не сможет быстро объяснить, какой источник сработал.

Важно: права на изменение цены в портале должны соответствовать должностным инструкциям. Не давайте права на ручное изменение цены всем менеджерам, если это не входит в их обязанности.

Варианты приоритета источников цены и критерии выбора

Есть несколько подходов к приоритету. Выбор зависит от того, что для вас важнее: предсказуемость договора, гибкость акций или простота поддержки.

Первый вариант — персональный прайс (или назначенный тип цены) всегда имеет наивысший приоритет. Подходит, когда с контрагентом подписано индивидуальное соглашение и любые акции не должны его перекрывать. Плюс: предсказуемость. Минус: акции не работают для таких клиентов, и это нужно явно сообщать.

Второй вариант — акция имеет приоритет над персональным прайсом. Подходит, когда акция — это временное улучшение для всех, и вы готовы дать его даже тем, у кого есть индивидуальные условия. Плюс: единая кампания. Минус: договорная цена может оказаться выше акционной, и клиент увидит снижение, что иногда требует согласования.

Третий вариант — берётся минимальная из доступных цен (автоматический выбор лучшей цены). Подходит, когда цель — дать клиенту лучшую цену без ручного разбора. Плюс: клиент всегда видит выгодное предложение. Минус: сложнее прогнозировать маржу и объяснять, почему в разных заказах сработали разные источники.

Четвёртый вариант — приоритет задаётся для каждой группы товаров или каждого контрагента отдельно (гибридный подход). Подходит для сложного ассортимента, где условия различаются. Плюс: гибкость. Минус: выше стоимость поддержки и риск ошибки при добавлении нового товара.

При выборе гибридного подхода убедитесь, что административная панель позволяет настраивать приоритеты без правки кода. Иначе каждое изменение потребует участия разработчиков.

Критерии выбора: предсказуемость для клиента, прозрачность для менеджера, сложность поддержки, влияние на маржу, частота изменения условий. Ни один вариант не является универсально правильным — важно, чтобы правило было записано и одинаково применялось в карточке, корзине, заказе и счёте.

Таблица приоритета источников цены

Таблица помогает зафиксировать правило до настройки. Заполните её для своего портала и согласуйте с коммерческим отделом.

ПриоритетИсточник ценыКогда применяетсяЧто перекрываетКто отвечает
1Персональный прайс (тип цены контрагента)Есть действующий индивидуальный прайс на товарБазовую цену, договорную скидку, акцию (если так решено)Коммерческий отдел
2Договорная скидкаЕсть подписанные условия на группу товаров или контрагентаБазовую цену и акцию (если так решено)Коммерческий отдел
3АкцияДействует в указанный период и на указанные товарыБазовую ценуМаркетинг
4Базовая ценаНет других действующих условий—Администратор портала
5Ручная цена менеджера в заказеМенеджер изменил цену при оформленииВсе автоматические источники для этого заказаМенеджер

Порядок в таблице — это пример. В вашем портале акция может стоять выше договорной скидки, если так решено коммерчески. Главное — чтобы порядок был один и тот же во всех местах, где показывается цена.

Проверьте, не дублируются ли правила в разных модулях (например, в модуле акций и в модуле персональных цен). Конфликт правил в разных частях системы — частая причина расхождений.

Матрица сценариев: что делать в спорных ситуациях

Спорные ситуации возникают регулярно. Матрица ниже помогает заранее решить, как портал должен себя вести.

СценарийЧто произошлоПравильное поведениеКто проверяет
Цена изменилась между корзиной и заказомУсловие истекло или обновился прайсПоказать клиенту новую цену и причину, попросить подтвердить заказМенеджер
Скидка закончиласьПериод акции завершилсяПересчитать корзину по действующим условиям, уведомить клиентаМаркетинг
Товар в нескольких прайсахПересечение персонального и базового прайсаПрименить правило приоритета, показать источник цены менеджеруКоммерческий отдел
Смена организации у пользователяПользователь переключил контрагентаПересчитать все цены и корзину, не переносить старые ценыАдминистратор портала
Ручная цена в заказеМенеджер изменил ценуСохранить основание изменения, не применять автоматические скидки поверхМенеджер

Матрица не заменяет настройку, но помогает договориться о поведении до того, как клиент увидит расхождение.

Предметная последовательность действий

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

Шаг 1. Зафиксировать источники и их владельцев

Составьте список всех источников цены, которые используются в портале. Для каждого укажите владельца и формат обновления. Результат: список, в котором нет источника без ответственного.

Шаг 2. Определить приоритет и записать его

Заполните таблицу приоритета. Согласуйте её с коммерческим отделом и маркетингом. Результат: подписанное или хотя бы зафиксированное в рабочем документе правило.

Шаг 3. Настроить привязку цен к контрагентам

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

Шаг 4. Проверить отображение в карточке, корзине и заказе

Пройдите путь клиента: карточка товара, добавление в корзину, оформление заказа. На каждом шаге сверьте цену с ожидаемой. Результат: цена совпадает на всех шагах.

Шаг 5. Проверить пересчёт при смене условий

Смоделируйте ситуацию: акция закончилась, прайс обновился, пользователь сменил организацию. Убедитесь, что портал пересчитывает цену и сообщает об изменении. Результат: понятное поведение без молчаливой подмены цены.

Шаг 6. Настроить уведомления и объяснения

Если цена изменилась, клиент и менеджер должны понимать причину. Продумайте текст сообщения и место, где оно появляется. Результат: клиент не видит «прыгающую» цену без объяснения.

Как проверить расчёт цены в корзине, заказе и счёте

Проверка — это не разовое действие, а регулярная процедура. Ниже — порядок, который можно повторять при каждом изменении условий.

Сначала сверьте цену в карточке товара с ожидаемым источником. Затем добавьте товар в корзину и проверьте, что цена не изменилась без причины. Оформите тестовый заказ и сравните цену в заказе с ценой в корзине. Если в вашем портале формируется счёт, проверьте и его (учитывая, что формирование счёта может требовать доработки или настройки печатной формы). Расхождение на любом шаге — повод разобраться, какой источник сработал.

Обратите внимание: цена в счёте может отличаться от цены в заказе, если в настройках включено округление или применение налогов на этапе формирования документа. Это штатное поведение, если оно задокументировано.

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

Для регулярной сверки удобно использовать личный кабинет B2B: остатки, цены под клиента и повторные заказы — там видно, как клиент видит свои условия. Если вы только планируете портал, полезно заранее изучить B2B-портал для оптовых продаж: личный кабинет, остатки и цены под клиента. А если в вашей логике есть согласование закупки, посмотрите согласование заказов в B2B-портале: роли, лимиты и маршрут заявки — там описано, как цена проходит через маршрут.

Учебный пример: три контрагента и один товар

Учебный пример. Данные условные, они не описывают реальную компанию и не являются статистикой.

Входные условия. Есть товар «Кабель условный, артикул К-100». Базовая цена — 1000 условных единиц. Для контрагента А действует договорная скидка 10%. Для контрагента Б есть персональный прайс с ценой 850. Для контрагента В действует акция с ценой 900, персонального прайса и договорной скидки нет. В портале принято правило: персональный прайс выше договорной скидки, договорная скидка выше акции, акция выше базовой цены.

Действия. Проверяем цену в карточке товара для каждого контрагента. Для А ожидаем 900 (1000 минус 10%). Для Б ожидаем 850. Для В ожидаем 900 по акции. Добавляем товар в корзину и оформляем тестовый заказ для каждого контрагента.

Наблюдаемый результат. Если настройка корректна, цена в карточке, корзине и заказе совпадает с ожидаемой для каждого контрагента. Если у контрагента Б в корзине появляется 900 вместо 850, значит, персональный прайс не сработал или его перекрыла акция. Если у контрагента А цена 1000, значит, договорная скидка не применилась.

Проверка. Сверяем цену в счёте, если он формируется. Проверяем, что сотрудник контрагента Б видит цену 850, а сотрудник контрагента А — 900. Меняем условие: отключаем акцию для контрагента В и смотрим, вернулась ли цена к базовой. Если да, логика пересчёта работает.

Ограничение примера: в реальном портале могут быть дополнительные условия — округление, налоги, валюта, минимальная партия. Их нужно проверять отдельно.

Чек-лист приёмки логики персональных цен

  • Список источников цены составлен, у каждого есть владелец.
  • Приоритет источников зафиксирован в рабочем документе и согласован.
  • Привязка типов цен и персональных прайсов к контрагентам проверена на тестовых данных.
  • Цена в карточке товара совпадает с ожидаемым источником для каждого тестового контрагента.
  • Цена в корзине совпадает с ценой в карточке без необъяснимых изменений.
  • Цена в заказе совпадает с ценой в корзине на момент оформления.
  • Цена в счёте, если он формируется, совпадает с ценой заказа.
  • Пересчёт при смене организации пользователем работает и не переносит старые цены.
  • Пересчёт при окончании акции работает и сопровождается понятным сообщением.
  • Ручное изменение цены менеджером сохраняет основание и не смешивается с автоматическими скидками.
  • Сотрудник контрагента не может изменить цену без соответствующего права.
  • Журнал изменений цены и условий ведётся.

Ограничения, типичные ошибки и следующий шаг

Ограничения. Логика приоритета не отменяет финансовых условий продавца: портал не является кредитором и не устанавливает отсрочку или лимиты. Если в вашей системе есть налоги, валюты и округление, они влияют на итоговую цену и требуют отдельной проверки. Юридические и персональные данные обрабатываются в рамках задачи и сверяются с профильным специалистом; эта статья не заменяет юридическое заключение.

Типичные ошибки. Первая — приоритет не зафиксирован, и разные менеджеры объясняют цену по-разному. Вторая — персональный прайс настроен, но не привязан к сотрудникам контрагента. Третья — акция перекрывает договорную цену без согласования. Четвёртая — при смене организации пользователь видит старую цену. Пятая — ручная цена менеджера теряет основание, и при разборе невозможно понять, почему она отличается.

Следующий шаг. Если вы только проектируете портал, начните с фиксации источников и приоритета, а затем переходите к настройке. Если портал уже работает, проведите сверку по чек-листу и устраните расхождения. Для проектирования и доработки логики цен можно обратиться к разработке b2b-порталов и оптовых интернет-магазинов на 1с-битрикс.

Что делать, если цена в корзине изменилась после добавления товара?

Проверьте, не истёк ли период акции или не обновился ли прайс. Портал должен показать новую цену и причину, а клиент — подтвердить заказ. Если причина неясна, сверьте источник цены по таблице приоритета.

Может ли акция быть выше персонального прайса?

Да, если так решено коммерчески. Главное — зафиксировать это правило и одинаково применять его в карточке, корзине, заказе и счёте. Иначе клиент увидит разные цены в разных местах.

Кто отвечает за корректность персональной цены?

Обычно коммерческий отдел отвечает за договорные условия и персональные прайсы, маркетинг — за акции, администратор портала — за привязки типов цен. Если ответственный не назначен, разбор расхождений затягивается.

Нужно ли пересчитывать корзину при смене организации пользователем?

Да. При переключении контрагента цены и корзина должны пересчитываться по условиям нового контрагента. Переносить старые цены нельзя — это приведёт к расхождению с заказом и счётом.

Как проверить, что сотрудник видит цену своего контрагента, а не соседнего?

Создайте тестовых контрагентов с разными условиями и проверьте цену в карточке, корзине и заказе под каждым сотрудником. Если цена не совпадает с ожидаемой, проверьте привязку типов цен и персональных прайсов.

Заменяет ли эта логика финансовые условия продавца?

Нет. Портал отображает цену по заданным правилам, но не устанавливает отсрочку, лимиты и другие финансовые условия. Их задаёт продавец, а портал лишь показывает то, что ему передали.

Практический разбор: приоритет источников цены для контрагента

Учебный разбор. Условная задача: в B2B-портале для контрагента «ООО Ромашка» действуют базовая цена 1 000 ₽, договорная скидка 10% и персональный прайс 850 ₽ на товар «Клей ПВА». Требуется зафиксировать, какая цена показывается в карточке, корзине и заказе, и как она пересчитывается при изменении количества.

ДействиеЧто проверить
Зафиксировать в требованиях приоритет источников: персональный прайс выше договорной скидки, договорная скидка выше базовой цены.В карточке товара для контрагента отображается 850 ₽ из персонального прайса, а не 900 ₽ после скидки.
Добавить товар в корзину от имени сотрудника контрагента и изменить количество так, чтобы сработало условие правила корзины.В корзине цена пересчитывается по заданному приоритету; при количестве, кратном упаковке, применяется правило корзины, а не персональный прайс.
Оформить тестовый заказ на копии и сверить цену в заказе с ценой в корзине на момент оформления.В заказе зафиксирована та же цена, что была в корзине на момент оформления.

Для приёмки. Зафиксировать: скриншоты карточки, корзины и заказа с ценой; выписку из требований с приоритетом источников; ID тестового заказа, присвоенный системой после создания.

Ограничение. Сценарий проверяет только логику приоритета источников цены для одного контрагента и одного товара. Он не покрывает групповые прайсы, несколько контрагентов, валютные курсы и финансовые условия продавца.

Читайте также

Интернет-магазины и B2B

Остатки товара в B2B-портале: как показывать наличие по складам и не продавать лишнее

Как в B2B-кабинете показывать остатки товара по складам, учитывать резервы и партии, проверять доступность в момент заказа и не продавать лишнее. Таблица решений, чек-лист и учебный пример.

24.10.2026·13 мин
Интернет-магазины и B2B

B2B-портал для оптовых продаж: личный кабинет, остатки и цены под клиента

Как устроен B2B-портал для оптовых продаж: цены и остатки под клиента, роли, интеграция с 1С, варианты реализации, проверка перед запуском и типичные ошибки.

22.10.2026·13 мин
Интернет-магазины и B2B

Личный кабинет B2B: остатки, цены под клиента и повторные заказы

Как устроен личный кабинет B2B: договорные цены, остатки, повторные заказы, роли и юрлица. Что синхронизировать с учётом, как выбрать вариант и проверить результат до запуска.

23.10.2026·14 мин
Разберём вашу задачуЗадать вопрос
обсудить проект