Яндекс метрика. Электронная коммерция. v1.4

Версия для OpenCart 1.5.x и OpenCart 2.1.x

Описание:

Дополнение служит для отправки данных о действиях пользователей с товарами в яндекс метрику.

Ecommerce - составляющая Метрики позволяет отслеживать большее количество данных и предоставляет значительно более совершенные инструменты для их анализа.

Например вы сможете узнать пользователи из какого источника покупают на большую сумму или какие товары добавляют чаще в корзину.

Возможности:

Поддерживаются следующие действия:

1. Добавление в корзину

2. Удаление из корзины

3. Просмотр товара

4. Оформление заказа

Требования:

1. Требуется чтобы на сайте была установлена яндекс метрика с включенной опцией "Отправка в Метрику данных электронной коммерции"

2. Контейнер для сбора данных dataLayer (по умолчанию).
Спойлер: Контейнер для сбора данных dataLayer (по умолчанию).
**Закрытый контент: Оставьте сообщение в теме для просмотра**



Установка ver 1.5:

VQMod:

1. Распаковать содержимое upload в корень сайта



2. Открыть файл catalog/view/javascript/common.js, найти функцию addToCart, после "$('html, body').animate({ scrollTop: 0 }, 'slow');" добавить addYandexEcommerce(json);

Вручную:

1. Внести изменения в код согласно upload/vqmod/xml/yandex_metrika_ecommerce.xml

2. Открыть файл catalog/view/javascript/common.js, найти функцию addToCart, после "$('html, body').animate({ scrollTop: 0 }, 'slow');" добавить addYandexEcommerce(json);

Возможны проблемы с установкой через VqMod при использовании нестандартной темы(не default).

Тестировалось на версии opencart 1.5.6.2.

Установка ver 2.1:

OCMod:

1. Установить дополнение через админку Дополнения->Установка дополнений. После установки нажать кнопку "Обновить" в разделе "Менеджер дополнений"

2. Открыть файл catalog/view/javascript/common.js, найти функцию cart.add, после "if (json['success']) {" добавить 'sendYandexEcommerce(json, "add");'

3. Открыть файл catalog/view/javascript/common.js, найти функцию cart.remove, после "success: function(json) {" добавить 'sendYandexEcommerce(json, "remove");'

Вручную:

1. Внести изменения в код согласно yandex_metrika_ecommerce.ocmod.xml

2. Открыть файл catalog/view/javascript/common.js, найти функцию cart.add, после "if (json['success']) {" добавить 'sendYandexEcommerce(json, "add");'

3. Открыть файл catalog/view/javascript/common.js, найти функцию cart.remove, после "success: function(json) {" добавить 'sendYandexEcommerce(json, "remove");'

Тестировалось на версии opencart 2.1.0.1

Спойлер: На 2.3 работает со следующими правками в ocmod Строка:
$data["metrika_product_price"] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')),'','',false);
Заменить на:
$data["metrika_product_price"] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency'],'',false);

Строка:
$data["metrika_product_price"] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')),'','',false);
Заменить на:
$data["metrika_product_price"] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency'],'',false);

Строка:
"metrika_product_price" => $this->currency->format($order_product["price"]+$order_product['tax'],'','',false),
Заменить на:
"metrika_product_price" => $this->currency->format($order_product["price"]+$order_product['tax'], $this->session->data['currency'],'',false),

Строка:
$json["metrika_product_price"] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')),'','',false);
Заменить на:
$json["metrika_product_price"] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency'],'',false);

Строка:
$json["metrika_product_price"] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')),'','',false);
Заменить на:
$json["metrika_product_price"] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency'],'',false);



.

**Закрытый контент: Оставьте сообщение в теме для просмотра**




.





.


M:
**Закрытый контент: Оставьте сообщение в теме для просмотра**