Торговля и Склад · 10 мин
Как объединить заказы в 1С-Битрикс
Как объединить заказы в 1С-Битрикс: штатные способы, обработка дублей, синхронизация с 1С, типичные ошибки и проверка результата.
Объединение заказов — типичная задача менеджеров интернет-магазина на 1С-Битрикс: один и тот же покупатель оформляет два заказа подряд, дублирует заявку из-за сбоя оплаты или система создаёт лишний заказ при обмене с 1С. Штатной кнопки «объединить заказы» в стандартной поставке модуля «Интернет-магазин» нет, поэтому задача решается комбинацией ручных операций, настроек обмена и, при необходимости, доработки.
Ниже разобраны рабочие сценарии: от простого переноса товаров между заказами в административной панели до настройки правил дедупликации при синхронизации с 1С:Управление торговлей. Отдельно описаны риски: некорректное объединение ломает отчётность, статусы оплаты и остатки на складе.
Когда объединение заказов действительно нужно
Прежде чем что-то объединять, убедитесь, что перед вами именно дубль, а не два осознанных заказа одного клиента. Признаки дубля: совпадают ФИО и телефон покупателя, состав корзины идентичен или почти идентичен, заказы созданы с интервалом в минуты, один из них не оплачен.
Типичные источники дублей: покупатель дважды нажал «Оформить заказ», платёжная система не вернула ответ и клиент повторил заказ, обмен с 1С создал заказ заново из-за потери связи по внешнему коду. В последнем случае ручное объединение не поможет — дубли будут появляться снова при каждом обмене.
Сравнить состав корзины и данные покупателя
Оставить оплаченный, второй отменить
Проверить внешние коды заказов
Ручное объединение через административную панель
Базовый сценарий выглядит так: выбираете основной заказ (обычно оплаченный или более полный), переносите в него недостающие позиции из дубля, затем отменяете или удаляете дубль. Работа ведётся в разделе «Магазин → Заказы».
Откройте основной заказ на редактирование. Вкладка с составом заказа позволяет добавить товар: нажмите «Добавить товар», найдите позицию из дубля, укажите количество и цену. Если в дубле были скидки или промокоды, примените их вручную — автоматического переноса скидок между заказами нет.
После переноса позиций скорректируйте доставку: если вес итогового заказа изменился, стоимость доставки нужно пересчитать. Затем откройте заказ-дубль и установите флаг «Отменён» с указанием причины, либо удалите его. Отмена предпочтительнее удаления: она сохраняет историю и корректно возвращает товарные остатки, если включён резерв.
- 1Найдите пару заказов-дублей в разделе «Магазин → Заказы», отсортируйте по покупателю
- 2Определите основной заказ: приоритет у оплаченного или уже отгружаемого
- 3Добавьте в основной заказ недостающие товары из дубля через «Добавить товар»
- 4Проверьте скидки, промокоды и стоимость доставки, пересчитайте итог
- 5Отмените заказ-дубль с комментарием о причине или удалите его
- 6Проверьте, что остатки товаров и сумма оплаты соответствуют объединённому заказу
Что делать с оплатами и отгрузками
Самое уязвимое место ручного объединения — оплаты. Если оба заказа частично оплачены, простое удаление дубля оставит «висящую» оплату, которая исказит кассовую отчётность. Правильный порядок: сначала оформить возврат по оплате дубля, затем отменить сам заказ.
В карточке заказа на вкладке оплат можно изменить привязку суммы или оформить возврат, если платёж проходил через интегрированную платёжную систему. Для эквайринга возврат обычно инициируется из админки и уходит в банк автоматически; для офлайн-оплат возврат выполняется вручную по кассе.
Отгрузки объединить нельзя — документ отгрузки привязан к конкретному заказу. Если дубль уже имеет отгрузку со статусом «отгружено», сначала отмените отгрузку, вернув товар на склад, и только потом отменяйте заказ.
Объединение при обмене с 1С: настройка идентификации
Если дубли рождаются при синхронизации с 1С:Управление торговлей или 1С:Комплексная автоматизация, ручная чистка бессмысленна — нужно чинить механизм сопоставления. Обмен идентифицирует заказ по внешнему коду (XML_ID). Если код потерян или изменён, 1С при очередном обмене создаёт новый заказ вместо обновления существующего.
Проверьте в карточке заказа поле «Внешний код» и сопоставьте его с идентификатором документа в 1С. Расхождения часто возникают после ручного редактирования заказов в 1С, смены префиксов нумерации или восстановления базы из резервной копии.
Вторая частая причина — дубли контрагентов. В настройках обмена на стороне 1С задайте критерии поиска контрагента (обычно ИНН + наименование для юрлиц, телефон или e-mail для физлиц). Если контрагент не найден, 1С создаёт нового, а вместе с ним иногда и новый заказ при повторной выгрузке.
Как выбрать действие
Автоматизация: модуль или собственный скрипт
Для магазинов с десятками дублей в неделю имеет смысл автоматизация. Вариантов два: готовые решения из Маркетплейса Битрикс (модули поиска и объединения дублей заказов и покупателей) или собственная доработка на API.
При самостоятельной разработке логика обычно такая: агент или обработчик события OnSaleOrderSaved ищет заказы того же пользователя с совпадающим составом корзины за короткий интервал времени и помечает их как кандидаты на объединение. Само слияние выполняется через API: позиции корзины переносятся методами работы с корзиной заказа, после чего дубль отменяется.
Критично: автоматическое объединение запускайте только для неоплаченных заказов без отгрузок. Любое автоматическое вмешательство в оплаченные документы должно идти через очередь на ручную проверку менеджером.
Перед любой массовой обработкой дублей сделайте резервную копию базы и сначала протестируйте сценарий на 2–3 парах заказов. Проверьте не только состав заказа, но и остатки склада: если включено резервирование, некорректная отмена может «зависнуть» резервом на удалённых позициях.
Проверка результата и типичные ошибки
После объединения сверьте четыре вещи: итоговую сумму основного заказа, количество товаров на складе, статус оплаты и историю в журнале изменений заказа. Если магазин обменивается с 1С, дождитесь ближайшей синхронизации и убедитесь, что объединённый заказ корректно выгрузился, а отменённый дубль не воскрес.
Частая ошибка — удаление дубля вместо отмены. Удалённый заказ не оставляет следа в отчётах, и если по нему была попытка оплаты, найти её происхождение потом сложно. Вторая ошибка — перенос товаров без пересчёта скидок: итоговая сумма расходится с тем, что видел клиент. Третья — забытая доставка: после добавления позиций стоимость доставки могла измениться, а заказ уйдёт в отгрузку со старой суммой.
Как проверить результат
Все позиции из обоих заказов, скидки применены, итог совпадает с расчётом
Сумма отличается от ожидаемой, скидки или доставка не пересчитаны
Дубль отменён с комментарием, оплата возвращена
Дубль удалён без следа или остался активным
Количество на складе соответствует объединённому заказу
Появились зависшие резервы или отрицательные остатки
После синхронизации новых дублей не появилось
Дубль создался заново — проблема в идентификации
FAQ: частые вопросы об объединении заказов
Можно ли объединить заказы разных покупателей?
Технически — только переносом товаров вручную, но делать этого не стоит: заказ привязан к пользователю, его оплатам, адресу доставки и юридическим данным. Если один клиент оформил заказы с разных аккаунтов, корректнее сначала объединить профили пользователей, а затем решать вопрос с заказами.
Что будет с номерами заказов после объединения?
Основной заказ сохраняет свой номер. Номер отменённого дубля остаётся в системе как отменённый документ, удалённого — исчезает, и в нумерации появляется разрыв. Для бухгалтерии разрывы нумерации обычно не критичны, но при строгом документообороте предпочтительна отмена, а не удаление.
Клиент оплатил оба заказа. Как объединить без потери денег?
Оставьте один заказ основным, перенесите в него товары, а по оплате второго оформите полный возврат через платёжную систему. Альтернатива — зачесть вторую оплату как частичную оплату основного заказа, если суммы совпадают, но это требует аккуратной ручной корректировки оплат в карточке заказа.
Почему после обмена с 1С отменённый дубль появился снова?
Значит, в 1С документ продолжает существовать и выгружается на сайт. Отмену нужно выполнить на стороне 1С (пометка на удаление или отмена проведения документа) либо настроить в обмене передачу статуса отмены. Разовая отмена только на сайте не решает проблему.
Есть ли готовые модули для объединения заказов?
В Маркетплейсе 1С-Битрикс встречаются решения для поиска дублей заказов и покупателей. Перед покупкой проверьте совместимость с вашей версией модуля «Интернет-магазин» и наличие демо-периода, чтобы протестировать сценарий на копии сайта.
Безопасно ли объединять заказы напрямую в базе данных?
Нет. Заказ в Битрикс — это не одна таблица, а связанный набор: корзина, свойства, оплаты, отгрузки, налоги, резервы. Прямые SQL-запросы почти гарантированно нарушат целостность этих связей. Используйте административный интерфейс или официальный API.
Что важно запомнить
Штатного объединения заказов в 1С-Битрикс нет: товары переносят в основной заказ вручную, дубль отменяют с возвратом оплаты. При повторяющихся дублях из обмена с 1С исправляйте идентификацию заказов и контрагентов, а не чистите последствия. Перед массовой обработкой делайте резервную копию и проверяйте остатки.