В B2B-магазинах клиент нередко оформляет заказ раньше, чем менеджер успевает проверить остатки, актуальную цену и условия отгрузки. Сценарий «оплата после проверки» разрывает жёсткую связку «оформил — сразу плати»: заказ создаётся без оплаты, а платёжную ссылку клиент получает только после подтверждения менеджером. Разберём, как это устроено в 1С-Битрикс и как настроить процесс без кастомной разработки.
Зачем разрывать оформление и оплату
Классический розничный сценарий — оплата прямо на шаге оформления — плохо работает в опте и в товарных нишах с нестабильными остатками. Клиент может заказать позицию, которой уже нет на складе, или воспользоваться устаревшей ценой из кэша каталога. Если деньги приняты вперёд, любое расхождение превращается в возврат и репутационные потери.
Модель «оплата после подтверждения» решает три задачи одновременно:
- менеджер проверяет фактическое наличие по 1С или складскому учёту до того, как деньги ушли;
- фиксируется актуальная цена — с учётом персональной скидки, объёма и валютных колебаний;
- уточняются условия отгрузки: способ доставки, сроки, комплектность.
В 1С-Битрикс это не отдельный «режим», а комбинация штатных механизмов: статусов заказа, состояния оплаты и уведомлений. Собрать сценарий можно на редакции Малый бизнес и выше, где доступны платёжные системы и статусы магазина.
Заказ, который создаётся без оплаты
Ключевая идея — заказ должен оформляться в статусе оплаты «Не оплачен» и не требовать денег на последнем шаге. В компоненте оформления sale.order.ajax это достигается настройкой платёжных систем: клиенту либо предлагают только «безналичный расчёт по счёту», либо оплату вовсе выносят за пределы оформления.
Технически заказ в Битрикс всегда хранит платёжное состояние в свойстве PAYED (Y/N) сущности Bitrix\Sale\Payment. Пока менеджер не подтвердил заказ, оплата остаётся в значении N, а сам заказ живёт в статусе, который вы отведёте под проверку — например N («Принят, ожидает проверки») из справочника статусов.
STATUS_ID, справочник в Магазин → Настройки → Статусы заказа) и состояние оплаты (флаг PAYED у отгрузки платежа). Это две независимые оси: заказ может быть «в обработке» и уже оплачен, либо «подтверждён» и ещё не оплачен.Что проверяет менеджер
После оформления заказ попадает в список Магазин → Заказы. Менеджер открывает карточку и последовательно сверяет состав. Удобно закрепить это регламентом, чтобы проверка была одинаковой у всей команды:
- Наличие. Сверяет количество по каждой позиции с остатками. Если включён обмен с 1С, актуальные остатки приходят в свойство
QUANTITYторгового каталога; при расхождении — правит состав через кнопку изменения количества. - Цена. Проверяет, что цена в заказе соответствует прайсу и договорённостям. При необходимости применяет ручную скидку или корректирует цену позиции прямо в карточке.
- Отгрузка. Уточняет способ и стоимость доставки, при необходимости меняет службу или пересчитывает стоимость.
- Реквизиты. Для юрлиц сверяет плательщика и свойства заказа (ИНН, КПП, адрес).
Если позиции нет и заменить нечем, менеджер связывается с клиентом и либо убирает строку, либо переводит заказ в статус ожидания. Важно: пока оплата закрыта, любые правки состава безопасны — клиент ещё не платил.
Как открыть оплату после подтверждения
Когда заказ выверен, менеджеру нужно дать клиенту способ заплатить. В Битрикс есть три рабочих подхода, их можно комбинировать:
| Способ | Как работает | Когда уместен |
|---|---|---|
| Смена статуса | Перевод заказа в статус «Подтверждён, ожидает оплаты» триггерит уведомление и открывает оплату в личном кабинете | Клиент авторизован и заходит в аккаунт |
| Публичная ссылка | Ссылка вида /personal/order/payment/?ORDER_ID=...&HASH=... ведёт на оплату без входа | Гостевые и B2B-заказы, оплата «в один клик» |
| Счёт на e-mail | Менеджер формирует счёт (безнал) и отправляет письмом | Юрлица, оплата по банку |
Для онлайн-оплаты в карточке заказа менеджер добавляет платёж нужной системой (ЮKassa, Сбер, Тинькофф и т. д.) через раздел «Оплата». Битрикс сгенерирует платёжный документ, а публичную ссылку на него можно скопировать из блока платежа. Именно эта ссылка и есть «открытие оплаты»: до её отправки клиенту платить фактически нечем.
Использовать хэш для доступа к заказу в настройках модуля sale. Без неё ссылка потребует входа в аккаунт.Уведомление клиента о готовности к оплате
Смена статуса на «ожидает оплаты» должна сопровождаться письмом клиенту со ссылкой на оплату. В Битрикс за это отвечает система почтовых событий. Каждому статусу заказа можно привязать почтовое событие SALE_STATUS_CHANGED_ — например SALE_STATUS_CHANGED_P для статуса «P».
Настройка выполняется в два шага:
- в Магазин → Настройки → Статусы заказа у нужного статуса включён флаг отправки уведомления;
- в Настройки → Настройки продукта → Почтовые события под тип события заведён почтовый шаблон с текстом и ссылкой на оплату (макрос
#ORDER_PUBLIC_URL#или прямая ссылка на платёж).
В шаблоне письма разумно указать сумму, срок действия ссылки и краткий состав. Так клиент понимает, за что платит, и не открывает старую версию заказа. Если нужен более гибкий текст с логикой — уведомление удобно вынести в обработчик события OnSaleStatusOrderChange или собрать письмо в бизнес-процессе.
Автоматизация и контроль сроков
Ручной сценарий легко превращается в полуавтоматический. Самое частое усиление — напоминания о неоплате. Если клиент получил ссылку, но не заплатил, агент на cron или бизнес-процесс по расписанию находит заказы в статусе «ожидает оплаты» старше N часов и отправляет повторное письмо.
Второй сценарий — автоотмена. Заказы, не оплаченные за отведённый срок, переводятся в статус «Отменён» с возвратом остатков в каталог. Это защищает от «зависших» резервов. Логику удобно повесить на событие смены статуса или на плановую задачу через \Bitrix\Main\Loader::includeModule('sale') и выборку Bitrix\Sale\Order::getList().
Типичные ошибки настройки
Сценарий выглядит простым, но на практике ломается в предсказуемых местах. Собрали то, что чаще всего приходится чинить на аудите:
- Оплата открыта на шаге оформления. В
sale.order.ajaxоставлена онлайн-касса, и клиент платит до проверки. Уберите платёжные системы предоплаты из оформления или ограничьте их условием. - Нет разделения статусов. Все заказы висят в одном статусе «N», и менеджеры не видят, какие уже проверены. Заведите отдельные статусы под этапы «проверка» и «ожидает оплаты».
- Письмо без ссылки. Уведомление о смене статуса уходит, но в шаблоне нет платёжной ссылки — клиент не понимает, что делать.
- Хэш выключен. Публичная ссылка требует авторизации, и B2B-клиент без аккаунта не может заплатить.
- Резерв не снимается. Отменённые по таймауту заказы держат товар в резерве, каталог показывает ложный дефицит.
Каждый пункт диагностируется за минуты, если знать, где смотреть: настройки платёжных систем, справочник статусов, почтовые события и параметры модуля sale.
Итог
Сценарий «оплата после проверки менеджером» полностью собирается на штатных механизмах 1С-Битрикс: заказ создаётся без оплаты, менеджер сверяет наличие, цену и отгрузку, затем открывает оплату сменой статуса или публичной ссылкой и отправляет клиенту письмо. Автоматизация напоминаний и автоотмены превращает ручной процесс в надёжный конвейер, а связка с 1С держит остатки и статусы в порядке.
Мы в B2Bsite настраиваем такие сценарии под конкретную логику продаж: разводим статусы, дорабатываем шаблоны писем, подключаем платёжные системы и связываем заказы с 1С так, чтобы оплата и остатки не расходились. Если нужно выстроить процесс подтверждения заказа под ваш склад и договорные цены — поможем спроектировать и внедрить его без лишнего кастома.
Частые вопросы
Можно ли реализовать оплату после проверки без программирования?
Да, базовый сценарий собирается штатно: платёжные системы, статусы заказа и почтовые события. Программирование нужно только для автонапоминаний, автоотмены и нестандартных писем.
Чем статус заказа отличается от состояния оплаты?
Статус (STATUS_ID) описывает этап обработки заказа, а флаг PAYED у платежа — факт поступления денег. Это независимые оси: заказ может быть подтверждён, но ещё не оплачен.
Как дать клиенту оплатить без входа в личный кабинет?
Используйте публичную ссылку на оплату с хэшем вида /personal/order/payment/?ORDER_ID=...&HASH=.... Для этого в настройках модуля sale должна быть включена опция доступа к заказу по хэшу.
Как отправить клиенту письмо со ссылкой на оплату?
Привяжите к статусу «ожидает оплаты» почтовое событие SALE_STATUS_CHANGED_<ID> и настройте шаблон в почтовых событиях. В тексте укажите платёжную ссылку, сумму и состав заказа.
Что делать, если товара не оказалось на складе?
Пока оплата закрыта, менеджер безопасно правит состав в карточке: уменьшает количество, меняет позицию или согласовывает замену с клиентом. Деньги ещё не приняты, возврат не требуется.
Можно ли автоматически отменять неоплаченные заказы?
Да. Агент на cron или бизнес-процесс по расписанию находит заказы в статусе ожидания оплаты старше заданного времени и переводит их в «Отменён» с возвратом остатков в каталог.
Как этот сценарий уживается с обменом заказами с 1С?
Нужно заранее решить, какая система главная по статусу оплаты. Обычно факт оплаты фиксируется на сайте через колбэк платёжного шлюза, а в 1С уходит уже оплаченный заказ.
Почему клиент оплачивает заказ до проверки менеджером?
Скорее всего, в компоненте оформления sale.order.ajax оставлена платёжная система предоплаты. Уберите онлайн-оплату с шага оформления или ограничьте её условиями показа.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.