Выгрузка пользователей из интернет-магазина в RetailCRM
Описание
Для чего нужно. Если вы подключаете RetailCRM к уже действующему магазину - наверняка там уже есть зарегистрированные пользователи и ряд заказов. Выгружая эти данные мы позволяем RetailCRM просчитывать более точную аналитику, и как минимум, показывать сколько учтенных покупок у того или иного пользователя.
Пошаговая инструкция
К этому моменту у Вас уже должен быть куплен, подключен к магазину и настроен компонент modRetailCRM. Под настройкой я подразумеваю заполнение ключа API, символьного кода сайта и адреса вашей CRM, так как здесь мы уже используем компонент. Если это не сделано - вернитесь к предварительной настройке компонента.
Если пользователей у вас в базе немного (понятие относительное, скажем меньше сотни) - мы можем запустить в админке MODX компонент console и выполнить в нем следующий код
if (!$modRetailCrm = $modx->getService(
'modretailcrm',
'modRetailCrm',
MODX_CORE_PATH . 'components/modretailcrm/model/modretailcrm/',
array($modx)
)) {
$modx->log(modX::LOG_LEVEL_ERROR, '[modRetailCrm] - Not found class modRetailCrm');
return;
}
$q = $modx->newQuery('modUser');
//Сколько пользователей за раз передаем
$limit = 50;
//Сколько пропускаем от начала
$offset = 0;
$q->limit($limit, $offset);
$users = $modx->getIterator('modUser', $q);
//Выгружаем по одному
foreach($users as $user) {
$modRetailCrm->OnUserSave($user, 'new');
}
По сути на этом все. Могу только добавить, что при большой базе эффективнее будет вынести код в отдельный php файл и запустить его через консоль сервера. Только не забудьте в этом случае в начале файла подключить MODX. Если не знаете как это сделать - читаем это
Возможные ошибки
Если что-то пошло не так, и выгрузка пользователей не удалась, в первую очередь проверяем что вы заполнили системные настройки modRetailCRM, затем - дебажим ответ RetailCRM. Для этого после строки запроса к RetailCRM включаем соответствующую системную настройку modretailcrm_log