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

Покупатель оплатил заказ в магазине на Битриксе, банк списал деньги, а в админке заказ висит неоплаченным. Или наоборот: в корзине нет ни одного способа доставки, хотя службы подключены. Первая мысль: сломался обработчик, надо переустановить модуль. Чаще причина в другом: в ограничениях, в данных товаров или в адресе, на который платёжная система шлёт уведомление.
Три способа подключения и что у каждого ломается
Материал написан для «1С-Битрикс: Управление сайтом» с модулем «Интернет-магазин» актуальных редакций (ориентир: 23.x и 24.x). Названия пунктов меню в вашей версии могут отличаться, а список служб и платёжных систем в коробке зависит от редакции. Сверяйтесь с документацией разработчика.
Набор типичных ошибок зависит от того, как вы подключили оплату и доставку.
| Способ | Что выигрываете | Чем платите | Где ломается чаще всего |
|---|---|---|---|
| Встроенные обработчики | Обновляются вместе с ядром, описаны в документации | Ограниченный набор служб и банков, нестандартные тарифы не настроить | Нет веса и габаритов у товаров, не заданы местоположения и ограничения |
| Модуль из Маркетплейса | Быстрый старт, часто есть карта пунктов выдачи | Зависимость от автора модуля и его обновлений | Модуль не обновлён под вашу версию ядра или PHP, в настройках остались тестовые ключи |
| Свой обработчик | Любая логика расчёта и оплаты | Поддержка, тесты и безопасность целиком на вас | Не проверяется подлинность уведомления, одно уведомление обрабатывается дважды |
Доставка: способ не появляется или не считается
Если на шаге оформления пусто, проверяйте по порядку:
- У товаров нет веса и габаритов. Автоматические службы считают цену по весу и размерам. Если у части товаров в каталоге стоит ноль, расчёт либо возвращает ошибку, либо занижает стоимость, и разницу платите вы. Выгрузите товары с нулевым весом и заполните данные до подключения службы.
- Нет привязки к местоположению. Если база местоположений не загружена или у города нет группы, указанной в настройках службы, способ не показывается. Оформите тестовые заказы на разные города, включая малые.
- Ограничения противоречат друг другу. Бесплатная доставка выше порога сделана отдельной службой, а у обычной стоит предел по сумме заказа. На стыке покупатель видит две доставки или ни одной. Выпишите границы сумм и веса всех служб в одну таблицу и проверьте стыки.
- Служба привязана к другому сайту. В установке с несколькими сайтами это самая тихая причина: настройка есть, а работает она на соседней витрине.
- Страница оформления закеширована. Проверьте, что корзина и оформление заказа исключены из кеша на уровне веб-сервера и из композитного кеша сайта. Иначе покупатель увидит чужой или устаревший набор способов.
Оплата: деньги ушли, заказ не оплачен
Страница «Спасибо за оплату» после банка ничего не доказывает: это просто возврат покупателя на ваш сайт. Статус меняется, когда на сервер приходит уведомление от платёжной системы и обработчик его принимает.
Оплату подтверждает не страница в браузере покупателя, а уведомление, которое дошло до вашего сервера и получило от него правильный ответ.
Что проверять, когда оплата прошла, а статус не изменился:
- Адрес уведомления в личном кабинете платёжной системы указывает на боевой домен, а не на тестовую копию. Он открывается по https, без цепочки редиректов между http и https или www и без www: часть систем за редиректом не идёт.
- Сайт не закрыт basic-авторизацией, защитой от ботов или WAF, которые режут запросы с адресов платёжной системы. Откройте access-лог веб-сервера и найдите запрос на адрес уведомления: пришёл ли он и какой код ответа получил.
- Тестовые и боевые реквизиты не перепутаны. Типичный случай: магазин переведён на боевой режим в кабинете банка, а в обработчике остались тестовые данные, или наоборот.
- Суммы совпали. Если после создания платежа меняли доставку или скидку, сумма в банке и в заказе расходится, а многие обработчики сверяют её и отклоняют уведомление.
- В журнале событий Битрикса нет ошибок обработчика в момент платежа.
Если платёж пришёл, а заказ не обновился, можно отметить оплату вручную в карточке заказа. Но сначала найдите причину, иначе она повторится на следующем заказе.
Оплата и доставка: ограничения друг на друга
Самая дорогая ошибка здесь организационная. Способ «оплата при получении» показывается для службы, которая наложенный платёж не принимает, или для пункта выдачи без терминала. Покупатель оформляет заказ, менеджер звонит и отказывает, и вы теряете и заказ, и доверие. В настройках платёжной системы есть ограничение по службам доставки: задайте его явно и не полагайтесь на то, что покупатель выберет сам. Лимиты наложенного платежа у каждой службы свои, их берите из договора.
Чеки по 54-ФЗ
Если подключена онлайн-касса, доставка попадает в чек отдельной позицией. Ошибка: товары идут с одной ставкой НДС, а доставка с настройками по умолчанию. Предмет расчёта, ставку и систему налогообложения для каждой позиции сверяйте с бухгалтером и актуальными разъяснениями ФНС, конкретные значения здесь намеренно не приводятся.
Когда что выбирать
- Одна-две популярные службы и стандартный эквайринг: встроенные обработчики. Меньше всего сюрпризов при обновлении.
- Нужен выбор пункта выдачи на карте или нетиповая служба: модуль из Маркетплейса. Критерий: дата последнего обновления модуля новее вашего последнего обновления ядра и PHP, а у автора есть поддержка.
- Тарифы по зонам или по персональному контракту: свой обработчик. Берите его, когда потери от неверного расчёта за квартал выше стоимости разработки.
Что делать дальше
Составьте таблицу из всех сочетаний «способ доставки × способ оплаты × тип плательщика» и пройдите каждое тестовым заказом. Повторяйте прогон после каждого обновления ядра, PHP или модуля. В проде мерьте одну цифру: сколько платежей в реестре банка за месяц не нашли своего оплаченного заказа в Битриксе. Любое число выше нуля означает, что уведомления теряются.
Уведомление (колбэк, callback) — запрос, который платёжная система сама отправляет на адрес вашего сайта после платежа. Он идёт напрямую между серверами и не зависит от того, закрыл ли покупатель вкладку.
Контент-конвейер: Из одной идеи — текст, изображение, озвучка и ролик. Один заказ вместо четырёх.
Спросить за 60 ₽Источники: Документация 1С-Битрикс для разработчиков и администраторов, Федеральный закон № 54-ФЗ о применении контрольно-кассовой техники (актуальную редакцию смотрите на pravo.gov.ru)
Частые вопросы
Почему в корзине нет ни одного способа доставки?
Заказ оплачен в банке, а в Битриксе нет. Можно отметить оплату вручную?
А если у меня более старая или другая версия Битрикса?
Что проверить в проде перед запуском приёма платежей?
Нужно ли проверять модуль доставки после обновления PHP?
Ничего из списка не помогло. Что дальше?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.