К содержимому
Интеграции

Cron и команды CLI

Обновлено

Запуск на сервере

Откройте вкладку «Cron» в настройках плагина: там показаны команды с корневым путём вашей установки. Запускайте их PHP CLI от пользователя, которому доступны файлы и база Webasyst.

Ниже php — подходящий PHP CLI, /path/to/webasyst — заменяемый путь к корню установки с cli.php. Примеры не содержат API ключ: команды читают сохранённые настройки.

Основные команды

Команда после php /path/to/webasyst/cli.php shop Назначение Расписание из интерфейса / применение
retailcrmPluginSyncCustomers Получение истории изменений покупателей CRM Каждые 15 минут
retailcrmPluginSyncOrders Получение истории изменений заказов CRM Каждые 15 минут
retailcrmPluginExportCustomers Экспорт покупателей Для первичной или дополнительной выгрузки
retailcrmPluginExportOrders Экспорт несинхронизированных заказов По необходимости
retailcrmPluginVerifyCustomerLinks Проверка и исправление связей клиентов с externalId Раз в сутки; --dry-run — анализ без изменений
retailcrmPluginMatchCustomers Сопоставление клиентов CRM без externalId Раз в сутки; --dry-run — анализ без изменений
retailcrmPluginIcml 1 Генерация ICML профиля Каждые 4 часа; замените 1 на ID своего профиля
retailcrmPluginSendAbandonedCarts Отправка корзин после задержки Каждые 15 минут; премиум-функция
retailcrmPluginCleanupAbandonedCarts Очистка корзин по сроку хранения Можно запускать ежедневно
retailcrmPluginRetryBonuses Повторная попытка списания бонусов после ошибок Каждые 30 минут; премиум-функция
retailcrmPluginTestApi Проверка соединения с RetailCRM При диагностике

Получение истории покупателей и заказов имеет параметры limit (по умолчанию 100) и max-pages (5). CLI-экспорт покупателей принимает limit (100) и offset (0); экспорт заказов — limit (100), since-id (0), since-date (пусто). Отправка корзин принимает limit (100), повтор бонусов — limit (50), очистка — ttl для переопределения дней хранения и флаг --force для удаления всех записей.

Значения параметров передавайте отдельными аргументами:

php /path/to/webasyst/cli.php shop retailcrmPluginSyncOrders --limit 100 --max-pages 5
php /path/to/webasyst/cli.php shop retailcrmPluginVerifyCustomerLinks --dry-run
php /path/to/webasyst/cli.php shop retailcrmPluginMatchCustomers --dry-run
php /path/to/webasyst/cli.php shop retailcrmPluginIcml 1

Некоторые подсказки продукта показывают запись --limit=100. Передавайте значение отдельным аргументом — --limit 100 — и проверяйте вывод команды на своей установке.

Пример cron

*/15 * * * * php /path/to/webasyst/cli.php shop retailcrmPluginSyncCustomers
*/15 * * * * php /path/to/webasyst/cli.php shop retailcrmPluginSyncOrders
0 */4 * * * php /path/to/webasyst/cli.php shop retailcrmPluginIcml 1

Добавьте задания корзин и бонусов только для используемых функций. Это примеры расписания: сохранение настроек плагина само по себе задания на сервере не создаёт. Проверьте фактический вывод первого запуска и изменение курсоров истории.

Отчёты для разработчика

Команда Результат
retailcrmPluginCustomerLinksReport CSV состояния связей клиентов; параметр --filter all, linked, unlinked или mismatch
retailcrmPluginCustomerDuplicatesReport CSV неоднозначных совпадений покупателей для ручного разбора
retailcrmPluginXmlIdReport Отчёт о повторяющихся xmlId по источнику профиля ICML

Первые два отчёта не меняют связи и сохраняют CSV в wa-data/protected/shop/plugins/retailcrm/reports/. Они содержат контактные данные; путь файла выводится в консоль.

Отчёт xmlId анализирует источник данных магазина, выбранный в профиле, а не сканирует фактическую базу каталога CRM. Для источника «не выгружать» сообщает об отсутствии передаваемых xmlId; для неподдержанного источника сообщает ограничение подсчёта.

php /path/to/webasyst/cli.php shop retailcrmPluginXmlIdReport --profile 1
php /path/to/webasyst/cli.php shop retailcrmPluginXmlIdReport --profile 1 --format csv

Перенос связей из CRMR

При обнаружении старых данных CRMR вкладка «Cron» показывает блок миграции. Сначала выполните проверку:

php /path/to/webasyst/cli.php shop retailcrmPluginMigrateCrmr --dry-run

Для переноса связей запустите retailcrmPluginMigrateCrmr без --dry-run. Параметр --force перезаписывает существующие связи, поэтому используйте его только если это требуется при переходе. Это перенос связей существующих записей, а не полная миграция всех данных CRM.

Команда остатков

В коде есть retailcrmPluginSyncInventory с параметрами limit, offset, product-id. Она требует общей синхронизации и sync_inventory_enabled; соответствующий блок формы и строка команды на вкладке «Cron» скрыты. Не используйте её как обязательный шаг стандартного подключения: доступный путь выгрузки каталога — ICML.