Инструкция по подключению

Руководство по подключению Flowwow к RetailCRM через официальный Seller API: заказы, клиенты, каталог ICML, статусы и обратная синхронизация. JWT, URL вебхука, секрет и токен триггера копируйте на вкладках настроек в личном кабинете — в этой инструкции они не дублируются.

Публичная инструкция

Страница доступна без входа. Настройки выполняются в личном кабинете модуля после подключения в маркетплейсе RetailCRM. Вкладки кабинета: «Подключение», «RetailCRM», «Заказы», «Каталог», «Статусы», «Обратная синхр.», «Инструкция».
1. Что делает модуль
  • Заказы Flowwow → RetailCRM. По вебхуку order.paid создаётся заказ в CRM: позиции, адрес доставки, открытка и комментарии, контакты покупателя/получателя, оплаченный платёж (если задан тип оплаты). События order.cancelled и order.finished обновляют только статус уже связанного заказа.
  • Клиенты. Поиск и создание покупателя по телефону. Если телефон получателя отличается от покупателя, имя и телефон получателя пишутся в поля заказа (отдельный клиент CRM для получателя не создаётся).
  • Несколько магазинов Flowwow. Один JWT и один URL вебхука на аккаунт продавца. Сайт CRM, статусы, каталог и заказы настраиваются отдельно для каждого магазина.
  • Каталог ICML (опционально). Товары, цены, остатки и категории; публичная ссылка на фид и автообновление по расписанию (~каждые 3 часа при включённом каталоге).
  • Сопоставление статусов. На вкладке «Статусы» — карта кодов Flowwow и событий вебхуков к статусам RetailCRM. Недостающие статусы CRM можно создать из кабинета модуля.
  • Обратная синхронизация (RetailCRM → Flowwow). Через HTTP-триггер автоматизаций CRM: принятие, курьер выехал, сборка почтового (pack), завершение, отказ (refuse), загрузка фото до/после доставки.
  • Адрес и открытка после создания. Вебхука order.update у Flowwow нет. Изменения адреса и текста открытки в ЛК покупателя подтягиваются опросом Seller API (~каждые 3 минуты), пока заказ не в финальном статусе.
  • Журнал. В кабинете модуля — логи с Correlation ID для диагностики вебхуков, API и reverse-синхронизации.
2. Требования
  • Аккаунт продавца Flowwow с доступом к Seller API (JWT-токен; ID магазина — при добавлении магазина в кабинете модуля).
  • Аккаунт RetailCRM с правами администратора для подключения модуля и автоматизаций.
  • API-ключ RetailCRM с доступами: integration_*, order_*, customer_*, reference_*, custom_fields_*, file_read (файлы заказа нужны для загрузки фото в Flowwow).
3. Важно знать (ограничения)
Вебхуки Flowwow — только 4 события

Модуль принимает order.paid, order.cancelled, order.finished и test (проверка канала, без создания заказа). Вебхука order.update нет: промежуточные статусы, выставленные вручную в кабинете Flowwow (принято, доставка, фото и т.п.), сами в CRM не приходят. Рабочий процесс — статусы в RetailCRM + reverse-триггеры.

Что создаётся / что только обновляет статус

Полный заказ (состав, адрес, комментарии, платёж) создаётся только по order.paid. Повторный paid для уже связанного заказа пропускается (состав не перезаписывается). order.cancelled / order.finished меняют только статус в CRM.

Состав заказа: CRM → Flowwow недоступен

В Seller API нет метода изменения позиций. Правки состава в RetailCRM не уходят в Flowwow и не видны покупателю в ЛК. Обратная синхронизация — только статусы (и связанные API-действия) и фото.

Статусы Flowwow 7, 11, 12 — только FW → CRM

Коды pickup-wait, post-delivering, post-pickup (Flowwow 7 / 11 / 12) можно сопоставить для отображения в CRM, но обратного API нет — reverse-триггер для них не вызывается. Их меняют вручную в кабинете Flowwow.

Фото до доставки

В RetailCRM нет события «файл прикреплён». Чтобы отправить фото в Flowwow до доставки: прикрепите JPEG/PNG к заказу CRM, переведите заказ в статус photo-before и вызовите триггер с action: photo_upload и photo_type: 0 (не status_sync — отдельного API смены статуса «фото до» в Flowwow нет).

«Фото после» доставки

Загрузка с photo_type: 1. Отдельного статуса CRM не требуется — триггер можно повесить, например, на переход в complete.

Промокоды и e-mail

Seller API в объекте заказа не передаёт промокод и e-mail покупателя. Отдельные поля промокода в CRM не создаются; поиск дублей по email фактически недоступен (рабочий режим — по телефону).

Рекомендуемый рабочий процесс

Ведите статусы в RetailCRM и настройте reverse-триггеры — тогда Flowwow обновляется из CRM. Не рассчитывайте на ручные клики в кабинете Flowwow как на источник статусов для CRM.

Несколько магазинов

Один JWT и один вебхук на аккаунт продавца. Переключайте активный магазин в шапке или на вкладке «Подключение»: у каждого магазина свои site CRM, статусы, каталог и заказы. Заказы неизвестного или отключённого магазина вебхук принимает, но не обрабатывает.

4. Пошаговая настройка
  1. Подключите модуль в маркетплейсе RetailCRM (укажите API-ключ с нужными правами) и откройте личный кабинет модуля.
  2. Вкладка «Подключение»: укажите JWT Seller API, нажмите «Проверить подключение», затем добавьте магазин Flowwow (из списка API или вручную по ID). Здесь же скопируйте URL вебхука и секрет — они понадобятся в кабинете Flowwow.
  3. Вебхук Flowwow: в кабинете продавца Flowwow (Seller API / интеграции) укажите URL и секрет с вкладки «Подключение». Подпишитесь на order.paid, order.cancelled, order.finished; событие test — для проверки канала.
  4. Вкладка «RetailCRM»: выберите магазин CRM (site), тип и метод заказа, страну. Тип оплаты — рекомендуется: без него платёж по order.paid в CRM не создаётся.
  5. Вкладка «Заказы»: включите синхронизацию заказов; при необходимости — автопринятие в Flowwow после создания в CRM и проверку дублей клиентов по телефону.
  6. Вкладка «Статусы»: сопоставьте коды Flowwow и события вебхуков со статусами RetailCRM. Если статусов нет в CRM — нажмите «Создать» (нужен reference_write).
  7. Вкладка «Каталог» (опционально): включите каталог, при необходимости выберите тип цены и остаток «на заказ», обновите ICML и укажите публичную ссылку фида в импорте каталога RetailCRM. Автообновление — примерно раз в 3 часа.
  8. Вкладка «Обратная синхр.» и автоматизации RetailCRM: скопируйте URL и токен триггера (X-Flowwow-Trigger-Token), затем создайте HTTP-триггеры по матрице ниже (раздел 5).
5. Обратная синхронизация и автоматизации

URL триггера и токен (X-Flowwow-Trigger-Token) копируйте на вкладке «Обратная синхр.» — кнопки копирования уже там. В инструкции секреты не показываются. Метод запроса: POST.

Действия триггера
Статус CRM (типичный код) Действие в Flowwow HTTP action
new / accepted Принять заказ (accept) status_sync
photo-before Загрузить фото до доставки photo_upload
delivering Курьер выехал (courierLeft) status_sync
post-packed Собрать почтовый заказ (pack) status_sync
complete Завершить заказ (finish) status_sync
cancel / cancel-other Отказаться от заказа (refuse) status_sync
завершение / своё условие Фото после доставки (photo_type: 1) photo_upload
Статус photo-before

Используйте только photo_upload с photo_type: 0. Не отправляйте status_sync для этого статуса.

Примеры тела HTTP-триггера

В автоматизации RetailCRM подставьте переменные заказа.

Смена статуса (status_sync)

{
  "action": "status_sync",
  "retailcrm_order_id": "{{ order.id }}",
  "retailcrm_status": "{{ order.status.code }}"
}

Фото до доставки (photo_upload)

{
  "action": "photo_upload",
  "retailcrm_order_id": "{{ order.id }}",
  "photo_type": 0
}

Фото после доставки (опционально)

{
  "action": "photo_upload",
  "retailcrm_order_id": "{{ order.id }}",
  "photo_type": 1
}
Статусы только Flowwow → CRM (без reverse)

Для pickup-wait, post-delivering, post-pickup (Flowwow 7, 11, 12) обратная синхронизация недоступна. В CRM эти промежуточные статусы сами не появятся — вебхуки приходят только на оплату, отмену и завершение: order.paid, order.cancelled, order.finished.

Рекомендуемая цепочка (курьерская доставка)
  1. new / accepted → принять (status_syncaccept)
  2. photo-before → JPEG/PNG на заказе CRM, затем photo_upload (photo_type: 0)
  3. delivering → курьер выехал
  4. complete → завершить (+ при необходимости фото после с photo_type: 1)

Отмена: статус отмены в CRM + status_sync → Flowwow refuse. Для почтовых заказов дополнительно используйте post-packedpack.

Права API-ключа RetailCRM
  • integration_read / integration_write — регистрация и работа модуля
  • order_read / order_write — заказы
  • customer_read / customer_write — клиенты
  • reference_read / reference_write — справочники; reference_write нужен для создания статусов из кабинета
  • custom_fields_read / custom_fields_write — пользовательские поля
  • file_read — файлы заказа для загрузки фото в Flowwow
6. Чеклист — готово, если…
  • JWT проверен, добавлен хотя бы один магазин Flowwow
  • Вебхук Flowwow указывает на URL модуля; секрет совпадает; события paid / cancelled / finished включены
  • На вкладке «RetailCRM» заданы site, тип заказа и страна; тип оплаты — при необходимости платежа
  • На вкладке «Заказы» включена синхронизация
  • Сопоставление статусов заполнено; недостающие статусы созданы
  • HTTP-триггеры CRM: status_sync и photo_upload для photo-before
  • У API-ключа есть file_read (фото) и при создании статусов — reference_write
  • (Опционально) каталог ICML подключён в RetailCRM