CRM и интеграции · WordPress

KeepinCRM Sync — CRM для WooCommerce

Версия
v0.2.0
Совместимость
WordPress 6.2+, WooCommerce 6.0+
Платформа
WordPress
KeepinCRM Sync — CRM для WooCommerce

Что внутри

  • Сделка в KeepinCRM создаётся на каждый новый заказ WooCommerce
  • Клиент заводится как лид: ФИО, email, телефон
  • Товары заказа становятся строками сделки
  • Комментарий покупателя передаётся в CRM
  • Поддержка классического чекаута и Checkout Blocks
  • Дедупликация и повторные попытки при сбоях
  • Журнал обменов и метабокс в заказе
  • Совместимость с HPOS
  • Бесплатный

KeepinCRM Sync для WooCommerce — плагин, который автоматически создаёт сделку в KeepinCRM на каждый новый заказ WooCommerce. Клиент заводится как лид с ФИО, email и телефоном, товары становятся строками сделки, комментарий покупателя попадает в CRM — менеджер сразу работает с заявкой, а не перепечатывает её из админки сайта. Работает и с классическим чекаутом, и с Checkout Blocks.

Плагин полностью бесплатный, код открытый. Скачать с GitHub: github.com/catcodestudio/wp-keepincrm-sync. Лицензия GPLv2 — без ключей, подписок и лимитов на заказы.

Что получает админ

Настройки KeepinCRM Sync для WooCommerce — API-токен, маршрутизация в CRM, триггерные статусы
Страница WooCommerce → KeepinCRM Sync: API-токен (хранится зашифрованным и не возвращается в форму), необязательная маршрутизация — ID воронки, этапа, источника и ответственного, момент отправки по статусам. Кнопка «Проверить соединение» делает живой запрос GET /clients/statuses.
Журнал синхронизации KeepinCRM: дата, заказ, событие, попытка, HTTP-код и сообщение CRM
Вкладка «Журнал» — последние попытки синхронизации: создание сделки, обновление, запланированные повторы и ошибки с ответом CRM как есть. Видно и код HTTP, и номер попытки, так что понятно, дошла ли заявка.
Метабокс KeepinCRM в заказе WooCommerce: статус синхронизации, ID сделки и кнопка повторной отправки
Метабокс в каждом заказе: статус синхронизации, ID сделки в KeepinCRM, время отправки и кнопка «Отправить повторно» — для уже синхронизированного заказа она обновляет сделку (PATCH), а не создаёт вторую.

Как это работает — шаг за шагом

  1. Покупатель оформляет заказ — плагин реагирует сразу после checkout или при переходе заказа в один из выбранных статусов.
  2. Собирается сделка: клиент-лид (ФИО, email, телефон в формате +380), товары как строки сделки (jobs) с ценой и количеством, сумма, комментарий. Для оплаченных онлайн заказов опционально добавляется пометка «Оплачено онлайн».
  3. Данные отправляются в KeepinCRM через REST API — POST /agreements с заголовком X-Auth-Token.
  4. CRM возвращает ID сделки — он сохраняется в мете заказа (_cc_keepincrm_agreement_id). Повторное событие не создаст вторую сделку.
  5. При сбое CRM плагин повторяет отправку сам: 3 попытки с паузами 5 мин / 30 мин / 2 ч по WP-Cron.
  6. Менеджер видит результат в метабоксе заказа и во вкладке «Журнал» на странице настроек.

Сколько стоит

Бесплатно, код открытый. Репозиторий на GitHub: catcodestudio/wp-keepincrm-sync — лицензия GPLv2, используйте без ограничений.

Технические требования

  • WordPress 6.2+ (протестировано до 7.0)
  • WooCommerce 6.0 или новее, включая HPOS (custom order tables)
  • PHP 7.4+
  • API-токен KeepinCRM — создаётся в кабинете: Настройки → Профиль компании → вкладка API (только владелец аккаунта). Внимание: KeepinCRM отдаёт API только на платном тарифе — на бесплатном любой запрос возвращает «Недоступно на бесплатном тарифе» (HTTP 402).

Что под капотом

  • API-токен зашифрован в БД — libsodium с HMAC-фолбеком для хостингов без расширения sodium.
  • Защита от двойной отправки — кроме меты заказа плагин берёт лок на уровне БД, поэтому чекаут, смена статуса и колбэк оплаты, пришедшие одновременно, не создадут две сделки.
  • Дедупликация по сохранённому ID сделки: перед созданием плагин проверяет мету заказа — повторная отправка обновляет имеющуюся сделку (PATCH /agreements/{id}), а не создаёт новую.
  • HPOS-совместимость — работа с заказами только через WC_Order CRUD, без прямых SQL к постам.
  • Нормализация телефона до E.164 (+380…) перед отправкой в CRM.
  • Хуки для разработчиков: фильтр cc_keepincrm_order_payload (изменить тело сделки) и экшен cc_keepincrm_order_sent (реакция на успешную отправку).

Как установить

  1. Скачайте catcode-order-sync-with-keepincrm-for-woocommerce-0.2.0.zip и установите через Плагины → Добавить новый → Загрузить плагин.
  2. Активируйте в меню «Плагины».
  3. Откройте WooCommerce → KeepinCRM Sync и вставьте API-токен из кабинета KeepinCRM (Настройки → Профиль компании → вкладка API).
  4. Нажмите «Проверить соединение» — убедитесь, что CRM отвечает.
  5. При желании заполните маршрутизацию (воронка, этап, источник, ответственный) и выберите момент отправки. Сохраните — готово.

История версий

0.2.0 — август 2026
Защита от двойной отправки переведена на лок уровня БД: раньше это был транзиент (чтение-потом-запись), и два одновременных хука могли создать две сделки. Починена кнопка «Отправить повторно» в метабоксе — она была вложенной формой внутри формы заказа, поэтому браузер её выбрасывал и повторная отправка не срабатывала. Удаление плагина теперь убирает и таблицу журнала. Попытка без ответа от CRM (таймаут) помечается как no_response с предупреждением в заказе. Интерфейс переведён на английский с украинским переводом в комплекте, плагин переименован под wp.org (слаг catcode-order-sync-with-keepincrm-for-woocommerce) — настройки, мета заказов и таблица журнала остались со старыми именами, поэтому миграция не нужна.
0.1.0 — июль 2026
Первый публичный релиз: создание сделок в KeepinCRM (POST /agreements) после checkout или по статусу-триггеру, клиент-лид с товарами-строками, маршрутизация воронка/этап/источник/ответственный, повторные попытки через WP-Cron, метабокс в заказе, журнал событий, проверка соединения, шифрование токена, HPOS-совместимость.

Частые вопросы

Трогает ли плагин checkout или тему?

Нет. Он только слушает события заказов WooCommerce и шлёт данные в CRM в фоне. Разметка чекаута и шаблоны темы не меняются.

Откуда взять API-токен KeepinCRM?

Кабинет KeepinCRM → Настройки → Профиль компании → вкладка API (только владелец аккаунта). Токен передаётся в заголовке X-Auth-Token и хранится в БД в зашифрованном виде.

Заказ прошёл несколько статусов — будет несколько сделок?

Нет. ID сделки сохраняется в мете заказа, а перед отправкой плагин берёт лок на уровне БД: повторное событие обновит имеющуюся сделку, а не создаст дубль.

Что делает кнопка «Отправить повторно» в метабоксе?

Если заказ ещё не в CRM — создаёт сделку (POST /agreements). Если уже отправлен — обновляет её актуальными данными через PATCH /agreements/{id}.

Можно ли направлять сделки в конкретную воронку?

Да. В настройках есть необязательные поля: ID воронки, этапа, источника и ответственного сотрудника — сделки будут создаваться сразу с этой привязкой.

Что будет после удаления плагина?

Удаление (не деактивация) убирает настройки с зашифрованным токеном и таблицу журнала. ID сделок в заказах остаются намеренно — именно они не дают повторной установке создать вторую копию старого заказа в CRM.

CRM отвечает «Недоступно на бесплатном тарифе» — что делать?

Это ответ самой KeepinCRM (HTTP 402), а не ошибка плагина: API доступно только на платном тарифе. Подключите тариф или триал в кабинете и повторите проверку соединения.

А если CRM не ответила совсем (таймаут)?

В KeepinCRM нет внешнего ID на сделках, поэтому плагин не может переспросить, дошла ли заявка. Такую попытку он помечает в журнале как no_response и выводит предупреждение в метабоксе заказа — перед повторной отправкой стоит заглянуть в CRM.

Вопросы по модулю?

Пишите в Telegram — ответим в течение рабочего дня. Поможем с настройкой, совместимостью и активацией ключа.

@catcode_support

Не тот вариант, что искали?

Мы делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.

Заказать кастомный модуль