Ecwid — это встраиваемый магазин-виджет, который живёт на сайте, в соцсетях и лендингах. Каталог и заказы в нём хранятся в облаке, поэтому связь с RetailCRM строится через API и вебхуки, а не через файлы на вашем хостинге.
Особенности Ecwid как источника заказов
В отличие от «коробочных» CMS, Ecwid не размещается на вашем сервере: витрина подгружается скриптом, а данные о товарах и заказах находятся в облаке Ecwid. Это меняет логику интеграции с RetailCRM.
- Нет прямого доступа к базе — весь обмен идёт через REST API Ecwid;
- О новых заказах Ecwid сообщает вебхуками, а не выгрузкой файла;
- Каталог тоже читается через API, а не через ICML на сайте.
storeId. Он понадобится и для API, и для сопоставления магазина в RetailCRM.Токен доступа и параметры подключения
Для доступа к магазину Ecwid выдаёт токен приложения (access token) с набором прав (scope). Его получают в настройках разработчика или при установке приложения-коннектора из App Market Ecwid.
| Параметр | Назначение |
|---|---|
storeId | идентификатор магазина Ecwid |
access_token | ключ доступа к API магазина |
| scope | права: чтение каталога, заказов, создание заказов |
Со стороны RetailCRM создаётся ключ API типа «Магазин» в разделе Настройки → Интеграция → Ключи доступа к API. Оба набора ключей прописываются в коннекторе, который связывает две системы.
Приём заказов через вебхуки
Ecwid отправляет уведомление на указанный URL при событиях order.created и order.updated. Коннектор принимает вебхук, дочитывает полный заказ через API и создаёт его в RetailCRM методом orders/create.
- Покупатель оформляет заказ в виджете Ecwid;
- Ecwid шлёт вебхук с идентификатором заказа;
- Коннектор запрашивает детали заказа по API;
- Заказ и клиент создаются в RetailCRM с составом и суммой.
Загрузка каталога из Ecwid
Товары в RetailCRM нужны, чтобы позиции заказа связались со справочником и корректно считались в аналитике. Каталог Ecwid читается через API (/products, /categories) и переносится в CRM.
- Категории Ecwid сопоставляются с группами товаров RetailCRM;
- Вариации (combinations) переносятся как торговые предложения с общим товаром;
- Остатки и цены обновляются по расписанию коннектора.
Если коннектор умеет формировать ICML из данных Ecwid, каталог можно грузить штатным механизмом Администрирование → Настройки каталога. Иначе товары создаются напрямую через API методом store/products.
Соответствие статусов и способов оплаты
В Ecwid статусы разделены на состояние оплаты (paymentStatus) и состояние выполнения (fulfillmentStatus). В RetailCRM статус один, но есть отдельный флаг оплаты. Их нужно сопоставить.
| Ecwid | RetailCRM |
|---|---|
| Awaiting Payment | Новый, не оплачен |
| Paid | Согласован, оплачен |
| Processing | Комплектуется |
| Shipped | Отгружен |
| Delivered | Доставлен |
| Cancelled | Отменён |
Обратное направление тоже настраивается: смена статуса в RetailCRM обновляет fulfillmentStatus в Ecwid, чтобы покупатель видел актуальную стадию.
Отладка и типичные ошибки
Проблемы Ecwid-интеграции чаще связаны с доступами и вебхуками, чем с самими данными.
- Заказы не приходят — вебхук не зарегистрирован, URL недоступен снаружи или истёк токен;
- Дубли заказов — приходят и
order.created, иorder.updated; заказ надо искать поexternalIdи обновлять, а не создавать заново; - Товары не связались — не совпал идентификатор или каталог ещё не загружен в CRM;
- 403 от API — токену Ecwid не хватает прав в scope.
Итог
Ecwid связывается с RetailCRM не файлами, а через API и вебхуки: токен магазина, ключ CRM типа «Магазин», приём событий о заказах и загрузка каталога через API. Главное — обеспечить публичный HTTPS-адрес для вебхуков и защититься от дублей через поиск заказа по externalId.
Мы разворачиваем и сопровождаем такие коннекторы: настраиваем токены и права, маппинг статусов и оплаты, а также следим, чтобы заказы из виджета Ecwid стабильно доходили до воронки RetailCRM.
Частые вопросы
Можно ли подключить Ecwid к RetailCRM без своего сервера?
Да, если используется готовое облачное приложение-коннектор. Собственный сервер нужен только когда обмен реализуется своим кодом и требуется публичный URL для вебхуков.
Как RetailCRM узнаёт о новом заказе в Ecwid?
Ecwid отправляет вебхук order.created на адрес коннектора, тот дочитывает заказ через API и создаёт его в RetailCRM. Опроса по расписанию для этого не требуется.
Переносятся ли вариации товара (размер, цвет)?
Да, комбинации Ecwid переносятся как торговые предложения одного товара, поэтому в заказе видно конкретный вариант с ценой и остатком.
Что делать при дублировании заказов?
Настройте поиск заказа по externalId: при событии order.updated коннектор должен обновлять существующий заказ, а не создавать новый.
Почему API Ecwid отвечает 403?
Токену не хватает прав в scope. Переустановите приложение с нужными разрешениями на чтение каталога, заказов и создание заказов.
Возвращаются ли статусы из RetailCRM обратно в Ecwid?
Да, при настроенном обратном маппинге смена статуса в CRM обновляет fulfillmentStatus в Ecwid, и покупатель видит стадию заказа.
Синхронизируются ли остатки?
Остатки и цены обновляются по расписанию коннектора через API Ecwid. Частоту стоит выбирать разумной, чтобы не упираться в лимиты API.
Поможем с настройкой и поддержкой RetailCRM
Поможем с настройкой, доработкой и поддержкой RetailCRM.