- 16, Apr 2023
- #1
Версия для OpenCart 1.5.x и OpenCart 2.1.x
https://opencartforu...aya-kommerciya/
Описание:
Дополнение служит для отправки данных о действиях пользователей с товарами в яндекс метрику.
Ecommerce - составляющая Метрики позволяет отслеживать большее количество данных и предоставляет значительно более совершенные инструменты для их анализа.
Например вы сможете узнать пользователи из какого источника покупают на большую сумму или какие товары добавляют чаще в корзину.
Возможности:
Поддерживаются следующие действия:
1. Добавление в корзину
2. Удаление из корзины
3. Просмотр товара
4. Оформление заказа
Требования:
1. Требуется чтобы на сайте была установлена яндекс метрика с включенной опцией "Отправка в Метрику данных электронной коммерции"
2. Контейнер для сбора данных dataLayer (по умолчанию).
https://yandex.ru/su.../e-commerce.xml
Установка 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
На 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);
Скрытый контент: (необходимо 5 очков репутации)
https://yadi.sk/d/HK_JY9xI3T6JFCа8f4a01b7