Appearance
Интеграция с RetailCRM
Интеграция позволяет передавать заказы из RetailCRM в oShip для подтверждения, упаковки, печати этикеток и синхронизации статусов обратно в RetailCRM.
Возможности интеграции
Модуль умеет:
- передавать заказы из RetailCRM в раздел Подтверждение oShip;
- передавать заказы из RetailCRM в раздел Упаковка oShip;
- включать для магазина только нужные модули: Подтверждение, Упаковка или оба сразу;
- печатать собственную этикетку из RetailCRM или этикетку транспортной компании;
- получать этикетки через API поддерживаемых транспортных компаний;
- передавать в oShip плановую дату отгрузки из даты доставки или даты отгрузки RetailCRM;
- синхронизировать в RetailCRM статусы после подтверждения, упаковки и отгрузки заказа в oShip;
- отменять или отгружать заказ в oShip при переходе заказа RetailCRM в настроенные статусы;
- передавать коды маркировки Честного знака в RetailCRM при подтверждении или при упаковке;
- повторно выгружать заказ после исправления ошибки или пересоздавать заказ в oShip при изменении товарного состава;
- переносить заказ между настройками магазинов: если заказ начал подходить под другой магазин модуля, старый заказ в oShip отменяется;
- видеть активные и решенные проблемы интеграции в личном кабинете модуля;
- получать Telegram-уведомления о новых и решенных проблемах интеграции.
Регистрация модуля
Интеграция подключается через модуль Автоматизация упаковки заказов в маркетплейсе RetailCRM: Настройки -> Интеграция -> Маркетплейс.
После нажатия Подключить RetailCRM откроет личный кабинет модуля.
Регистрация соединения в oShip
Для работы интеграции нужен аккаунт oShip и магазин oShip с источником заказов API.
- Авторизуйтесь в oShip.

- Перейдите в раздел Магазин и нажмите Новый магазин.

- Заполните данные магазина, перейдите на вкладку API и сохраните API-ключ.
Важно!
API-ключ магазина oShip показывается при создании магазина. Сохраните его сразу: он понадобится в настройках модуля RetailCRM.

- Нажмите Сохранить.
Добавление печатной формы
Перед добавлением магазина в модуле создайте печатную форму. Она определяет, какую этикетку модуль получит и передаст в oShip при упаковке заказа.
В личном кабинете модуля откройте раздел Этикетки и нажмите Новая печатная форма.

Доступные печатные формы
В модуле доступны:
- RetailCRM - собственная печатная форма RetailCRM;
- СДЭК - получение этикетки через API СДЭК v2;
- Почта России;
- Интеграл;
- X5Post;
- Яндекс Доставка;
- Магнит Пост;
- Logsis;
- Курьерист.
Важно!
Для доставки через транспортную компанию выбирайте печатную форму той же службы доставки. Для собственной этикетки используйте печатную форму RetailCRM.
Доступные транспортные компании
Сейчас модуль поддерживает получение этикеток для следующих транспортных компаний:
- СДЭК;
- Почта России;
- Интеграл;
- X5Post;
- Яндекс Доставка;
- Магнит Пост;
- Logsis;
- Курьерист.
Настройки печатных форм
RetailCRM
Укажите ID печатной формы RetailCRM. Его можно посмотреть в RetailCRM на странице печатных форм заказа. В настройках также выбирается источник трек-номера: трек-номер доставки или номер заказа RetailCRM.

СДЭК
Укажите ID клиента, секретный ключ, формат этикетки (A4, A5 или A6) и способ идентификации заказа в СДЭК:
- по UUID/номеру СДЭК из трек-номера доставки;
- по номеру заказа RetailCRM.
Почта России
Укажите токен авторизации приложения, ключ авторизации пользователя и тип печати: термопечать или печать на бумаге.
Интеграл
Укажите логин, пароль, экстра-код и формат накладной/этикетки.
X5Post
Укажите API-ключ и символьный код пользовательского поля RetailCRM, в котором хранится штрихкод отправки.
Яндекс Доставка
Укажите токен авторизации.
Магнит Пост
Укажите идентификатор клиента и секрет.
Logsis
Укажите ключ API и тип печати.
Курьерист
Укажите токен авторизации.
Добавление магазина в модуле
Магазин в модуле связывает сайт RetailCRM, тип доставки, магазин oShip, печатную форму и правила обмена статусами.
Перейдите в раздел Магазины и нажмите Новый магазин.

Общие настройки
Заполните:
- Печатная форма - этикетка, которая будет использоваться при упаковке заказа.
- Имя - название настройки в списке магазинов модуля.
- Поддомен - поддомен аккаунта oShip без
.oship.ru. - API-key магазина oShip - API-ключ магазина oShip с источником заказов API.
- Сайт - сайт RetailCRM, из которого модуль будет брать заказы.
- Подключенные модули - Подтверждение, Упаковка или оба модуля.
- Тип доставки - тип доставки RetailCRM, заказы с которым будет обрабатывать этот магазин.
- Дата отгрузки - какое поле RetailCRM передавать в oShip как плановую дату отгрузки: дату доставки или дату отгрузки.
- Признак для обновления заказа - символьный код пользовательского поля RetailCRM типа Да/Нет для пересоздания заказа в oShip при изменении товарного состава.

Передача маркировки
Если нужно передавать Честный знак из oShip в RetailCRM, включите Передавать маркировку и выберите режим:
- При подтверждении - oShip запросит коды маркировки на этапе подтверждения заказа, а модуль передаст их в RetailCRM после подтверждения.
- При упаковке - oShip запросит коды маркировки на этапе упаковки, а модуль передаст их в RetailCRM после упаковки.
Важно!
Если выбран режим При упаковке, при подтверждении заказа Честный знак не запрашивается. Заказ на подтверждение отправляется без требования сканировать маркировку.

Статусы для oShip
Настройте статусы RetailCRM, при которых модуль должен выполнять действия в oShip.

- Готов к подтверждению - заказы в этих статусах будут создаваться в разделе Подтверждение oShip.
- Готов к упаковке - заказы в этих статусах будут создаваться в разделе Упаковка oShip.
- Статусы отмененного заказа - если заказ RetailCRM перейдет в один из этих статусов, модуль отменит заказ в oShip.
- Статусы отгруженного заказа - если заказ RetailCRM перейдет в один из этих статусов, модуль отметит заказ в oShip как отгруженный.
Поля отображаются с учетом выбранных подключенных модулей.
Перенос статусов в RetailCRM
Настройте статусы, которые модуль будет устанавливать в RetailCRM после действий в oShip:
- Статус подтверждения - после подтверждения заказа в oShip;
- Статус упаковки - после упаковки заказа в oShip;
- Статус отгрузки - после отгрузки заказа в oShip.

Прочие настройки
В блоке Прочие настройки задается сопоставление товаров между RetailCRM и oShip:
- Сопоставление товаров - основной способ сопоставления: по артикулу или по штрихкоду.
- Артикул - поле RetailCRM, которое будет передаваться в oShip как код товара.
- Штрихкоды - поле RetailCRM, которое будет передаваться в oShip как штрихкод товара.
Эти же настройки используются при передаче Честного знака обратно в RetailCRM: модуль сопоставляет отсканированные коды с позициями заказа по выбранному признаку.

Как работает обмен заказами
Интеграция регулярно проверяет RetailCRM и oShip. Базовый интервал обработки - каждые 2 минуты.
Подтверждение
Если подключен модуль Подтверждение, модуль ищет заказы RetailCRM на выбранном сайте, с выбранным типом доставки и в статусах Готов к подтверждению.
Подходящие заказы создаются в разделе Подтверждение oShip. После подтверждения в oShip модуль:
- при необходимости передает коды Честного знака в позиции заказа RetailCRM;
- устанавливает в RetailCRM настроенный Статус подтверждения.
Если заказ больше не находится среди подходящих заказов для подтверждения, ранее созданный заказ подтверждения в oShip отменяется.
Упаковка
Если подключен модуль Упаковка, модуль ищет заказы RetailCRM на выбранном сайте, с выбранным типом доставки и в статусах Готов к упаковке.
Перед созданием заказа в oShip модуль подготавливает этикетку:
- для печатной формы RetailCRM получает этикетку из RetailCRM;
- для транспортной компании проверяет данные отправления и получает этикетку через API этой компании;
- добавляет в заказ oShip посылку с трек-номером и штрихкодом для сканирования.
После упаковки в oShip модуль:
- при необходимости передает коды Честного знака в позиции заказа RetailCRM;
- устанавливает в RetailCRM настроенный Статус упаковки.
После отгрузки в oShip модуль устанавливает в RetailCRM настроенный Статус отгрузки.
Отмена и отгрузка из RetailCRM
Если заказ RetailCRM перешел в один из настроенных статусов отмены, модуль отправит отмену в oShip.
Если заказ RetailCRM перешел в один из настроенных статусов отгрузки, модуль отправит отгрузку в oShip.
Изменение даты отгрузки
Если заказ уже создан в oShip, а выбранная дата отгрузки в RetailCRM изменилась, модуль отправит обновленную дату в oShip.
Честный знак
Передача Честного знака включается в настройках магазина через опцию Передавать маркировку.
Модуль определяет маркируемые товары по признаку markable в RetailCRM. Для товаров, по которым нужен Честный знак, oShip получает требование отсканировать код. Уже заполненные коды маркировки из RetailCRM передаются в oShip вместе с заказом.
Режим "При подтверждении"
В этом режиме требование сканировать Честный знак передается в заказ раздела Подтверждение.
После подтверждения заказа в oShip модуль получает отсканированные коды, сопоставляет их с позициями заказа RetailCRM и записывает в markingCodes позиций. После успешной передачи модуль устанавливает статус подтверждения в RetailCRM.
Режим "При упаковке"
В этом режиме требование сканировать Честный знак передается в заказ раздела Упаковка.
При подтверждении заказа Честный знак не запрашивается и не передается: это поведение сделано специально, чтобы не сканировать маркировку дважды. После упаковки модуль получает коды из oShip, сопоставляет их с позициями заказа RetailCRM и записывает в markingCodes. После успешной передачи модуль устанавливает статус упаковки в RetailCRM.
Важно!
Если RetailCRM отклонит код маркировки, например код уже используется в другом заказе или количество кодов больше количества товаров, модуль покажет проблему в разделе Проблемы интеграции.
Подробно работа с маркировкой в oShip описана в разделе Честный знак.
Повторная выгрузка и пересоздание заказа
Пересоздание при изменении товарного состава
Если после выгрузки в oShip у заказа изменился товарный состав или способ доставки используйте настройку Признак для обновления заказа.
Как настроить:
- В RetailCRM создайте пользовательское поле заказа типа Да/Нет.
- Укажите символьный код этого поля в настройке магазина Признак для обновления заказа.
- Когда заказ нужно пересоздать в oShip, установите это поле в RetailCRM в значение Да.
Как работает пересоздание:
- модуль сравнивает текущий состав заказа RetailCRM с составом заказа в oShip;
- если состав отличается и заказ в oShip еще находится в допустимом статусе, старый заказ отменяется;
- новый заказ создается в oShip с версией в номере, например
12345v1,12345v2; - после успешного пересоздания модуль сбрасывает пользовательское поле обратно в Нет.
Важно!
Пересоздание выполняется только при изменении товарного состава или способа доставки. Если они не изменились, заказ не пересоздается.
Проблемы интеграции
Раздел Проблемы интеграции показывает активные и решенные ошибки обмена между RetailCRM, oShip и транспортными компаниями.
В списке отображаются:
- магазин;
- заказ или объект ошибки;
- операция: создание, подтверждение, упаковка, получение заказов или подтверждений;
- этап: проверка данных, получение этикетки, передача маркировки или проверка доступа;
- текст ошибки;
- количество повторов;
- время последнего возникновения;
- подробности ошибки.

Telegram-уведомления
Модуль может отправлять через бота в Telegram уведомления о новых и решенных проблемах интеграции.
Подключение выполняется на авторизованной странице Проблемы интеграции. Нажмите Подключить Telegram, откройте полученную ссылку и запустите бота. Ссылка действует один час.
К одному клиенту можно подключить несколько получателей. Каждый из них будет получать уведомления независимо; отключить можно отдельного пользователя или всех сразу.
В уведомлении указываются магазин, заказ, описание и этап проблемы, а также ссылка на соответствующий раздел модуля. Технические детали и ответы внешних API в Telegram не передаются.
Если сообщение не доставлено, это отображается в списке подключенных получателей. Ошибка одного получателя не мешает отправке уведомлений остальным.
Для внешней поддержки или сотрудников, которые непосредственно занимаются упаковкой можно создать защищенную ссылку на страницу проблем. По этой ссылке доступны только проблемы интеграции; настройки магазинов и этикеток недоступны.

После исправления причины модуль повторит обработку. Если операция пройдет успешно, проблема станет решенной.