К статье
Практический материал

Торговля и Склад · 10 мин

Как объединить заказы в 1С-Битрикс

Как объединить заказы в 1С-Битрикс: штатные способы, обработка дублей, синхронизация с 1С, типичные ошибки и проверка результата.

Объединение заказов — типичная задача менеджеров интернет-магазина на 1С-Битрикс: один и тот же покупатель оформляет два заказа подряд, дублирует заявку из-за сбоя оплаты или система создаёт лишний заказ при обмене с 1С. Штатной кнопки «объединить заказы» в стандартной поставке модуля «Интернет-магазин» нет, поэтому задача решается комбинацией ручных операций, настроек обмена и, при необходимости, доработки.

Ниже разобраны рабочие сценарии: от простого переноса товаров между заказами в административной панели до настройки правил дедупликации при синхронизации с 1С:Управление торговлей. Отдельно описаны риски: некорректное объединение ломает отчётность, статусы оплаты и остатки на складе.

Когда объединение заказов действительно нужно

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

Типичные источники дублей: покупатель дважды нажал «Оформить заказ», платёжная система не вернула ответ и клиент повторил заказ, обмен с 1С создал заказ заново из-за потери связи по внешнему коду. В последнем случае ручное объединение не поможет — дубли будут появляться снова при каждом обмене.

Два заказа с интервалом в минутыВероятный дубль от двойного клика

Сравнить состав корзины и данные покупателя

Один заказ оплачен, второй нетКлиент повторил заказ после сбоя оплаты

Оставить оплаченный, второй отменить

Дубли появляются после каждого обменаПроблема идентификации в обмене с 1С

Проверить внешние коды заказов

Ручное объединение через административную панель

Базовый сценарий выглядит так: выбираете основной заказ (обычно оплаченный или более полный), переносите в него недостающие позиции из дубля, затем отменяете или удаляете дубль. Работа ведётся в разделе «Магазин → Заказы».

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

После переноса позиций скорректируйте доставку: если вес итогового заказа изменился, стоимость доставки нужно пересчитать. Затем откройте заказ-дубль и установите флаг «Отменён» с указанием причины, либо удалите его. Отмена предпочтительнее удаления: она сохраняет историю и корректно возвращает товарные остатки, если включён резерв.

Порядок ручного объединения
  1. 1
    Найдите пару заказов-дублей в разделе «Магазин → Заказы», отсортируйте по покупателю
  2. 2
    Определите основной заказ: приоритет у оплаченного или уже отгружаемого
  3. 3
    Добавьте в основной заказ недостающие товары из дубля через «Добавить товар»
  4. 4
    Проверьте скидки, промокоды и стоимость доставки, пересчитайте итог
  5. 5
    Отмените заказ-дубль с комментарием о причине или удалите его
  6. 6
    Проверьте, что остатки товаров и сумма оплаты соответствуют объединённому заказу

Что делать с оплатами и отгрузками

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

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

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

Объединение при обмене с 1С: настройка идентификации

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

Проверьте в карточке заказа поле «Внешний код» и сопоставьте его с идентификатором документа в 1С. Расхождения часто возникают после ручного редактирования заказов в 1С, смены префиксов нумерации или восстановления базы из резервной копии.

Вторая частая причина — дубли контрагентов. В настройках обмена на стороне 1С задайте критерии поиска контрагента (обычно ИНН + наименование для юрлиц, телефон или e-mail для физлиц). Если контрагент не найден, 1С создаёт нового, а вместе с ним иногда и новый заказ при повторной выгрузке.

Маршрут решения

Как выбрать действие

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

Автоматизация: модуль или собственный скрипт

Для магазинов с десятками дублей в неделю имеет смысл автоматизация. Вариантов два: готовые решения из Маркетплейса Битрикс (модули поиска и объединения дублей заказов и покупателей) или собственная доработка на API.

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

Критично: автоматическое объединение запускайте только для неоплаченных заказов без отгрузок. Любое автоматическое вмешательство в оплаченные документы должно идти через очередь на ручную проверку менеджером.

Перед любой массовой обработкой дублей сделайте резервную копию базы и сначала протестируйте сценарий на 2–3 парах заказов. Проверьте не только состав заказа, но и остатки склада: если включено резервирование, некорректная отмена может «зависнуть» резервом на удалённых позициях.
ПЗ
Практическое замечание

Проверка результата и типичные ошибки

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

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

Типичные ошибки
01
Удаление дубля вместо отмены — теряется история и ломается связь с оплатами
02
Перенос товаров без пересчёта скидок и доставки — сумма заказа не совпадает с ожиданиями клиента
03
Отмена заказа без возврата оплаты — расхождения в кассовой отчётности
04
Ручная чистка дублей при сломанной идентификации в обмене — дубли возвращаются после каждой синхронизации
Контрольные точки

Как проверить результат

Состав и сумма основного заказа
Норма

Все позиции из обоих заказов, скидки применены, итог совпадает с расчётом

Тревожный признак

Сумма отличается от ожидаемой, скидки или доставка не пересчитаны

Статус заказа-дубля
Норма

Дубль отменён с комментарием, оплата возвращена

Тревожный признак

Дубль удалён без следа или остался активным

Остатки склада
Норма

Количество на складе соответствует объединённому заказу

Тревожный признак

Появились зависшие резервы или отрицательные остатки

Обмен с 1С
Норма

После синхронизации новых дублей не появилось

Тревожный признак

Дубль создался заново — проблема в идентификации

FAQ: частые вопросы об объединении заказов

Можно ли объединить заказы разных покупателей?

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

Что будет с номерами заказов после объединения?

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

Клиент оплатил оба заказа. Как объединить без потери денег?

Оставьте один заказ основным, перенесите в него товары, а по оплате второго оформите полный возврат через платёжную систему. Альтернатива — зачесть вторую оплату как частичную оплату основного заказа, если суммы совпадают, но это требует аккуратной ручной корректировки оплат в карточке заказа.

Почему после обмена с 1С отменённый дубль появился снова?

Значит, в 1С документ продолжает существовать и выгружается на сайт. Отмену нужно выполнить на стороне 1С (пометка на удаление или отмена проведения документа) либо настроить в обмене передачу статуса отмены. Разовая отмена только на сайте не решает проблему.

Есть ли готовые модули для объединения заказов?

В Маркетплейсе 1С-Битрикс встречаются решения для поиска дублей заказов и покупателей. Перед покупкой проверьте совместимость с вашей версией модуля «Интернет-магазин» и наличие демо-периода, чтобы протестировать сценарий на копии сайта.

Безопасно ли объединять заказы напрямую в базе данных?

Нет. Заказ в Битрикс — это не одна таблица, а связанный набор: корзина, свойства, оплаты, отгрузки, налоги, резервы. Прямые SQL-запросы почти гарантированно нарушат целостность этих связей. Используйте административный интерфейс или официальный API.

Итог

Что важно запомнить

Штатного объединения заказов в 1С-Битрикс нет: товары переносят в основной заказ вручную, дубль отменяют с возвратом оплаты. При повторяющихся дублях из обмена с 1С исправляйте идентификацию заказов и контрагентов, а не чистите последствия. Перед массовой обработкой делайте резервную копию и проверяйте остатки.