opencart-module/README.md
2016-01-29 17:59:53 +03:00

100 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Opencart module
===============
Модуль интеграции CMS Openacrt c [RetailCRM](http://retailcrm.ru)
#### Модуль позволяет:
* Экспортировать в CRM данные о заказах и клиентах и получать обратно изменения по этим данным
* Синхронизировать справочники (способы доставки и оплаты, статусы заказов и т.п.)
* Выгружать каталог товаров в формате [ICML](http://retailcrm.ru/docs/Разработчики/ФорматICML) (IntaroCRM Markup Language)
#### Установка
Установите модуль скопировав необходимые файлы в корень сайта
```
unzip master.zip
cp -r opencart-module/* /path/to/site/root
```
#### Активируйте модуль
В списке модулей нажмите "Установить"
#### Настройте параметры интеграции
На странице настроек модуля укажите URL Вашей CRM и ключ авторизации, после сохранения этих данных укажите соответствия справочников типов доставок, оплат и статусов заказа.
#### Выгрузка новых заказов в CRM (для версии opencart 1.5.x.x, для версии 2.0 и старше не требуется)
##### VQmod
Скопируйте xml-файл модифицирующий работу моделей _admin/model/sale/order.php_ и _catalog/model/checkout/order.php_ в _/path/to/site/root/vqmod/xml_.
Для обновления кеша VQmod может потрбоваться удалить файлы _/path/to/site/root/vqmod/vqcache/vq2-admin_model_sale_order.php_ и _/path/to/site/root/vqmod/vqcache/vq2-catalog_model_checkout_order.php_
##### Ручная установка
В файле:
```
/catalog/model/checkout/order.php
```
Добавьте следующие строки в метод addOrder непосредственно перед языковой конструкцией return:
```php
$this->load->model('retailcrm/order');
$this->model_retailcrm_order->sendToCrm($data, $order_id);
```
В файле:
```
/admin/model/sale/order.php
```
Добавьте следующие строки в методы addOrder и editOrder в самом конце каждого метода:
```php
if (!isset($data['fromApi'])) {
$this->load->model('setting/setting');
$status = $this->model_setting_setting->getSetting('retailcrm');
if (!empty($data['order_status_id'])) {
$data['order_status'] = $status['retailcrm_status'][$data['order_status_id']];
}
$this->load->model('retailcrm/order');
if (isset ($order_query)) {
$this->model_retailcrm_order->changeInCrm($data, $order_id);
} else {
$this->model_retailcrm_order->sendToCrm($data, $order_id);
}
}
```
#### Получение измений из CRM
Для получения изменений и новых данных добавьте в cron следующую запись:
```
*/5 * * * * /usr/bin/php /path/to/opencart/system/cron/retailcrm/history.php >> /path/to/opencart/system/logs/cronjob_history.log 2>&1
```
#### Настройка экспорта каталога
Для периодической выгрузки каталога добавьте в cron следующую запись:
```
* */4 * * * /usr/bin/php /path/to/opencart/system/cron/export.php >> /path/to/opencart/system/logs/cronjob_export.log 2>&1
```
В настройках CRM установите путь к файлу выгрузки
```
http://myopencartsite.ru/download/retailcrm.xml
```