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.