Loading...
Page tree
Skip to end of metadata
Go to start of metadata

(warning) Интеграция подходит для OpenCart версий 1.x.

Как работает интеграция

При оформлении заявки на сайте автоматически создается новая сделка в CRM, в которую передается номер визита из куки браузера roistat_visit в дополнительное поле с именем roistat. Если менеджер принимает заказ по телефону, он может спросить промокод (настраивается отдельно) и ввести этот код в поле roistat.

Настройка интеграции

Шаг 1. Настройте OpenCart на сервере

1. Скачайте архив по ссылке и скопируйте файлы из архива в соответствующие папки на сервере, где установлен OpenCart.

2. Откройте файл catalog/model/checkout/order.php и найдите в начале файла следующий код:

public function addOrder($data) {

Строчкой ниже добавьте:

// Получаем промокод из cookie 
$roistat_visit = ( ! empty($_COOKIE['roistat_visit'])) ? $_COOKIE['roistat_visit'] : null;

3. Ниже строчки, которую вы только что добавили, найдите строчку:

$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()");

4. Откройте файл 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>

Добавьте ниже:

<!-- ROIstat --> <tr> <td>ROIstat ID</td> <td><input type="text" name="roistat_visit" value="<?php echo $roistat_visit; ?>" /></td> </tr> <!-- END ROIstat -->

5. Откройте файл admin/view/template/sale/order_info.tpl и найдите:

<tr> <td><?php echo $text_date_modified; ?></td> <td><?php echo $date_modified; ?></td> </tr>

Добавьте ниже перед < /table>:

<tr> <td>ROIstat:</td> <td><?php echo $roistat_visit; ?></td> </tr>

6. Откройте файл admin/model/sale/order.php и найдите:

'date_modified' => $order_query->row['date_modified']

Замените эту строчку на:

'date_modified' => $order_query->row['date_modified'], 'roistat_visit' => $order_query->row['roistat_visit'],

7. Откройте файл admin/controller/sale/order.php и найдите:

if (isset($this->request->post['email'])) { $this->data['email'] = $this->request->post['email']; } elseif (!empty($order_info)) { $this->data['email'] = $order_info['email']; } else { $this->data['email'] = ''; }

Добавьте ниже:

// roistat_visit 
if (isset($this->request->post['roistat_visit'])) { $this->data['roistat_visit'] = $this->request->post['roistat_visit']; } elseif ( ! empty($order_info)) { $this->data['roistat_visit'] = $order_info['roistat_visit']; } else { $this->data['roistat_visit'] = ''; }

8. В этом же файле 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'];

Добавьте ниже:

// ROIstat 
$this->data['roistat_visit'] = $order_info['roistat_visit'];

Шаг 2. Настройте OpenCart в панели администратора

9. В панели администратора OpenCart зайдите в Дополнения  Модули, найдите Экспорт информации Roistat и нажмите Установить.

10. После установки модуля нажмите Изменить.

  11. На следующем экране укажите:

  • ID проекта - номер вашего проекта в Roistat, который можно увидеть в адресной строке браузера (например,  http://cloud.roistat.com/project/1288 , где 1288 и будет Вашим номером проекта).
  • Имя пользователя и Пароль придумайте самостоятельно.

После указания ID проекта счетчик Roistat автоматически установливается в поле для счетчика Google Analytics.
Если это не произошло:

  1. В панели администратора OpenCart откройте Система → Настройки.
  2. Напротив нужного магазина нажмите Изменить.

     
  3.   Перейдите на закладку Сервер.
  4. В поле Код Google Analytics вставьте код счетчика Roistat, код которого вы найдете в Roistat, в пункте меню Настройки  Код для сайта.

Шаг 3. Подключите OpenCart в каталоге интеграций 

  1. В проекте Roistat откройте Каталог интеграций.
  2. В блоке CRM / CMS выберите  OpenCart и нажмите кнопку Подключить.  
  3. В поле  URL сайта введите URL-адрес вашего сайта. Например,  http://mysite.ru.
  4. В полях Логин и Пароль введите то же, что вы ввели в полях Имя пользователя и Пароль в пункте 11 Шага 3 инструкции.
  5. Нажмите кнопку Сохранить.
    Загрузятся статусы сделок из OpenCart.
  6. Перетаскивая статусы сделок, распределите их по группам. Подробнее читайте в статье Распределение статусов сделок.
  • No labels