Обмен заказами с 1С - выгрузка на сайт и обратно
Обмен заказами - вторая по объёму задача интеграции после каталога: 303 вопроса из собранных. Здесь собраны решения по ней.
Что общего у этих задач
Заказ ходит в обе стороны. Сайт отдаёт 1С новые заказы, 1С возвращает по ним статус, оплату и отгрузку. Это отличает обмен заказами от обмена каталогом, где поток односторонний, и добавляет главный источник ошибок: два хранилища правят один объект.
Инициатор по-прежнему 1С. Она подключается к тому же
1c_exchange.php, только с типом sale вместо catalog. Запустить выгрузку
заказов со стороны сайта нечем, расписание живёт в узле обмена 1С.
Заказ сопоставляется по номеру, товары внутри него - по внешнему коду. Разъехавшийся код товара не ломает заказ целиком: строка приезжает как неопознанная позиция, и заказ в 1С встаёт с ошибкой подбора номенклатуры.
Правки заказа спорят с обменом. Менеджер на сайте и оператор в учётной системе легко меняют один документ одновременно, и правило «чья правка главнее» согласуют до запуска обмена, а не после первой потери данных.
Решения подтемы
- Обмен заказами с 1С: выгрузка и возврат статусов - настройка, порядок обмена, дубли и сбои.
- Не выгружаются заказы в 1С - разбор причин: отбор, признак выгрузки, обрыв, права.
- Статусы заказа при обмене: возврат из 1С - обратное направление, сопоставление статусов, оплата и отгрузка.
- Несколько баз и организаций: разведение заказов - узлы обмена, признак организации, склад отгрузки.
- Состав заказа и контрагенты при обмене: позиции, покупатели, дубли - сопоставление позиций, правка состава из 1С, дубли контрагентов.
- Направления и режимы обмена заказами - два направления, реальное время, версии конфигураций.
- Отмены и возвраты при обмене - признак отмены, резерв, возврат оплаты.
- Обмен заказами изнутри: документ, связь, перезапись - состав документа, два номера связи, перезапись частей заказа.
Частые вопросы
Почему заказы дублируются в 1С?
Сопоставление идёт по номеру заказа. Если на сайте включена своя нумерация или номер меняется после создания, 1С не находит прежний заказ и заводит новый. Номер должен присваиваться один раз и не меняться.
Можно ли выгружать заказы по одному, а не пачкой?
Размер пачки задаётся настройкой модуля, и минимум равен единице. Но обмен всё равно инициирует 1С: получить заказ на сайте по требованию нельзя, можно только уменьшить объём одного сеанса.
Где лежит лог обмена заказами?
Там же, где лог каталога, в /upload/1c_exchange/, но пишется он только при включённом протоколировании в настройках модуля продаж. По умолчанию лог заказов выключен.
Почему статус заказа не меняется после обмена?
Статусы сопоставляются по внешнему коду, а не по названию. Статус, заведённый на сайте руками, внешнего кода не имеет, и 1С в него не попадает.
Связанные темы
- Обмен с 1С и HTTP - устройство обмена целиком
- Обмен: выгрузка товаров - как приезжает каталог
- Каталог и продажи - заказ и его коллекции
- Раздел Интеграции