Интеграция Roistat с OpenCart 1.x¶
Внимание!
Интеграция подходит для OpenCart версий 1.x.
Как работает интеграция¶
При оформлении заявки на сайте автоматически создается новая сделка в CRM, в которую передается номер визита из куки браузера roistat_visit в дополнительное поле с именем roistat. Если менеджер принимает заказ по телефону, он может спросить промокод (настраивается отдельно) и ввести этот код в поле roistat.
Настройка интеграции¶
Шаг 1. Настройте OpenCart на сервере¶
-
Скачайте архив по ссылке и скопируйте файлы из архива в соответствующие папки на сервере, где установлен OpenCart.
-
Откройте файл catalog/model/checkout/order.php и найдите в начале файла следующий код:
Строчкой ниже добавьте:
-
Ниже строчки, которую вы только что добавили, найдите строчку:
$this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET invoice_prefix = '" . $this->db->escape($data['invoice_prefix']) . "', store_id = '" . (int)$data['store_id'] . "', store_name = '" . $this->db->escape($data['store_name']) . "', store_url = '" . $this->db->escape($data['store_url']) . "', customer_id = '" . (int)$data['customer_id'] . "', customer_group_id = '" . (int)$data['customer_group_id'] . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', email = '" . $this->db->escape($data['email']) . "', telephone = '" . $this->db->escape($data['telephone']) . "', fax = '" . $this->db->escape($data['fax']) . "', payment_firstname = '" . $this->db->escape($data['payment_firstname']) . "', payment_lastname = '" . $this->db->escape($data['payment_lastname']) . "', payment_company = '" . $this->db->escape($data['payment_company']) . "', payment_company_id = '" . $this->db->escape($data['payment_company_id']) . "', payment_tax_id = '" . $this->db->escape($data['payment_tax_id']) . "', payment_address_1 = '" . $this->db->escape($data['payment_address_1']) . "', payment_address_2 = '" . $this->db->escape($data['payment_address_2']) . "', payment_city = '" . $this->db->escape($data['payment_city']) . "', payment_postcode = '" . $this->db->escape($data['payment_postcode']) . "', payment_country = '" . $this->db->escape($data['payment_country']) . "', payment_country_id = '" . (int)$data['payment_country_id'] . "', payment_zone = '" . $this->db->escape($data['payment_zone']) . "', payment_zone_id = '" . (int)$data['payment_zone_id'] . "', payment_address_format = '" . $this->db->escape($data['payment_address_format']) . "', payment_method = '" . $this->db->escape($data['payment_method']) . "', payment_code = '" . $this->db->escape($data['payment_code']) . "', shipping_firstname = '" . $this->db->escape($data['shipping_firstname']) . "', shipping_lastname = '" . $this->db->escape($data['shipping_lastname']) . "', shipping_company = '" . $this->db->escape($data['shipping_company']) . "', shipping_address_1 = '" . $this->db->escape($data['shipping_address_1']) . "', shipping_address_2 = '" . $this->db->escape($data['shipping_address_2']) . "', shipping_city = '" . $this->db->escape($data['shipping_city']) . "', shipping_postcode = '" . $this->db->escape($data['shipping_postcode']) . "', shipping_country = '" . $this->db->escape($data['shipping_country']) . "', shipping_country_id = '" . (int)$data['shipping_country_id'] . "', shipping_zone = '" . $this->db->escape($data['shipping_zone']) . "', shipping_zone_id = '" . (int)$data['shipping_zone_id'] . "', shipping_address_format = '" . $this->db->escape($data['shipping_address_format']) . "', shipping_method = '" . $this->db->escape($data['shipping_method']) . "', shipping_code = '" . $this->db->escape($data['shipping_code']) . "', comment = '" . $this->db->escape($data['comment']) . "', total = '" . (float)$data['total'] . "', affiliate_id = '" . (int)$data['affiliate_id'] . "', commission = '" . (float)$data['commission'] . "', language_id = '" . (int)$data['language_id'] . "', currency_id = '" . (int)$data['currency_id'] . "', currency_code = '" . $this->db->escape($data['currency_code']) . "', currency_value = '" . (float)$data['currency_value'] . "', ip = '" . $this->db->escape($data['ip']) . "', forwarded_ip = '" . $this->db->escape($data['forwarded_ip']) . "', user_agent = '" . $this->db->escape($data['user_agent']) . "', accept_language = '" . $this->db->escape($data['accept_language']) . "', date_added = NOW(), date_modified = NOW()");
Замените её на:
$this->db->query("INSERT INTO `" . DB_PREFIX . "order` SET invoice_prefix = '" . $this->db->escape($data['invoice_prefix']) . "', store_id = '" . (int)$data['store_id'] . "', store_name = '" . $this->db->escape($data['store_name']) . "', store_url = '" . $this->db->escape($data['store_url']) . "', customer_id = '" . (int)$data['customer_id'] . "', customer_group_id = '" . (int)$data['customer_group_id'] . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', email = '" . $this->db->escape($data['email']) . "', telephone = '" . $this->db->escape($data['telephone']) . "', fax = '" . $this->db->escape($data['fax']) . "', payment_firstname = '" . $this->db->escape($data['payment_firstname']) . "', payment_lastname = '" . $this->db->escape($data['payment_lastname']) . "', payment_company = '" . $this->db->escape($data['payment_company']) . "', payment_company_id = '" . $this->db->escape($data['payment_company_id']) . "', payment_tax_id = '" . $this->db->escape($data['payment_tax_id']) . "', payment_address_1 = '" . $this->db->escape($data['payment_address_1']) . "', payment_address_2 = '" . $this->db->escape($data['payment_address_2']) . "', payment_city = '" . $this->db->escape($data['payment_city']) . "', payment_postcode = '" . $this->db->escape($data['payment_postcode']) . "', payment_country = '" . $this->db->escape($data['payment_country']) . "', payment_country_id = '" . (int)$data['payment_country_id'] . "', payment_zone = '" . $this->db->escape($data['payment_zone']) . "', payment_zone_id = '" . (int)$data['payment_zone_id'] . "', payment_address_format = '" . $this->db->escape($data['payment_address_format']) . "', payment_method = '" . $this->db->escape($data['payment_method']) . "', payment_code = '" . $this->db->escape($data['payment_code']) . "', shipping_firstname = '" . $this->db->escape($data['shipping_firstname']) . "', shipping_lastname = '" . $this->db->escape($data['shipping_lastname']) . "', shipping_company = '" . $this->db->escape($data['shipping_company']) . "', shipping_address_1 = '" . $this->db->escape($data['shipping_address_1']) . "', shipping_address_2 = '" . $this->db->escape($data['shipping_address_2']) . "', shipping_city = '" . $this->db->escape($data['shipping_city']) . "', shipping_postcode = '" . $this->db->escape($data['shipping_postcode']) . "', shipping_country = '" . $this->db->escape($data['shipping_country']) . "', shipping_country_id = '" . (int)$data['shipping_country_id'] . "', shipping_zone = '" . $this->db->escape($data['shipping_zone']) . "', shipping_zone_id = '" . (int)$data['shipping_zone_id'] . "', shipping_address_format = '" . $this->db->escape($data['shipping_address_format']) . "', shipping_method = '" . $this->db->escape($data['shipping_method']) . "', shipping_code = '" . $this->db->escape($data['shipping_code']) . "', comment = '" . $this->db->escape($data['comment']) . "', total = '" . (float)$data['total'] . "', affiliate_id = '" . (int)$data['affiliate_id'] . "', commission = '" . (float)$data['commission'] . "', language_id = '" . (int)$data['language_id'] . "', currency_id = '" . (int)$data['currency_id'] . "', currency_code = '" . $this->db->escape($data['currency_code']) . "', currency_value = '" . (float)$data['currency_value'] . "', ip = '" . $this->db->escape($data['ip']) . "', forwarded_ip = '" . $this->db->escape($data['forwarded_ip']) . "', user_agent = '" . $this->db->escape($data['user_agent']) . "', accept_language = '" . $this->db->escape($data['accept_language']) . "', roistat_visit = '" . $this->db->escape($roistat_visit) . "', date_added = NOW(), date_modified = NOW()");
-
Откройте файл admin/view/template/sale/order_form.tpl и найдите:
<tr> <td><?php echo $entry_fax; ?></td> <td><input type="text" name="fax" value="<?php echo $fax; ?>" /></td> </tr>
Добавьте ниже:
5. Откройте файл admin/view/template/sale/order_info.tpl и найдите:<!-- ROIstat --> <tr> <td>ROIstat ID</td> <td><input type="text" name="roistat_visit" value="<?php echo $roistat_visit; ?>" /></td> </tr> <!-- END ROIstat -->
Добавьте ниже перед
< /table>
: -
Откройте файл admin/model/sale/order.php и найдите:
Замените эту строчку на:
-
Откройте файл admin/controller/sale/order.php и найдите:
Добавьте ниже: -
В этом же файле admin/controller/sale/order.php найдите следующие строки:
$this->data['store_name'] = $order_info['store_name']; $this->data['store_url'] = $order_info['store_url']; $this->data['firstname'] = $order_info['firstname']; $this->data['lastname'] = $order_info['lastname'];
Добавьте ниже:
Шаг 2. Настройте OpenCart в панели администратора¶
-
В панели администратора OpenCart зайдите в Дополнения → Модули, найдите Экспорт информации Roistat и нажмите Установить:
-
После установки модуля нажмите Изменить.
-
На следующем экране укажите:
- ID проекта – номер вашего проекта в Roistat, который можно увидеть в адресной строке браузера (например, http://cloud.roistat.com/project/1288, где 1288 – номер вашего проекта).
- Имя пользователя и Пароль придумайте самостоятельно.
После указания ID проекта счетчик Roistat автоматически установливается в поле для счетчика Google Analytics. Если этого не произошло:
- В панели администратора OpenCart откройте Система → Настройки.
-
Напротив нужного магазина нажмите Изменить:
-
Перейдите на закладку Сервер.
-
В поле Код Google Analytics вставьте код счетчика Roistat, код которого вы найдете в Roistat в разделе Настройки → Код для сайта.
Шаг 3. Подключите OpenCart в каталоге интеграций¶
-
В проекте Roistat откройте раздел Интеграции.
-
Нажмите Добавить интеграцию. Найдите и добавьте интеграцию с OpenCart и нажмите кнопку Настроить интеграцию:
3. В поле URL сайта введите URL-адрес вашего сайта. Например, http://mysite.ru.
-
В полях Логин и Пароль введите то же, что вы ввели в полях Имя пользователя и Пароль в пункте 3 Шага 2.
-
Нажмите кнопку Сохранить.
Загрузятся статусы сделок из OpenCart.
-
Перетаскивая статусы сделок, распределите их по группам. Подробнее читайте в статье Распределение статусов сделок.