Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Vandeko

Новачок
  
  • Публікації

    16
  • З нами

  • Відвідування

Відвідувачі профілю

Блок відвідувачів профілю відключений і не буде доступний широкому іншим користувачам

Vandeko's Achievements

Rookie

Rookie (2/14)

  • First Post
  • Collaborator
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges

2

Репутація

  1. Спасибо, действительно работает из <body>. Просто некорректно отправлял массив items. нужно было завернуть каждый item в отдельный обьект.
  2. Движок - 3.0.2.0, скорее всего дело в слешах, так как другие модификаторы отлично работали. Спасибо за одсказку. Столкнулся с еще одной проблемой, оказывается GTM требует чтоб данные передавались в хедере. В контроллере header.php делаю: if (isset($this->session->data['order_id'])) { $this->load->model('account/order'); $data['order_id'] = $this->session->data['order_id']; $data['order_info'] = $this->model_account_order->getOrder($this->session->data['order_id']); $data['order_totals'] = $this->model_account_order->getOrderTotals($this->session->data['order_id']); $data['order_products'] = $this->model_account_order->getOrderProducts($this->session->data['order_id']); $shipping = 0; foreach ($data['order_totals'] as $row) { if ($row['code'] == 'shipping') { $shipping = $row['value']; } } $data['shipping'] = $shipping; $tax = 0; foreach ($data['order_products'] as $row) { $tax = $tax + $row['tax']; } $data['tax'] = $tax; } В header.twig переменные не выводяться: window.dataLayer = window.dataLayer || []; window.dataLayer.push({ "event": "purchase", "transaction_id": "{{ order_id }}", "affiliation": "{{ order_info.store_name }}", "value": "{{ order_info.total }}", "currency": "{{ order_info.currency_code }}", "tax": "{{ tax }}", "shipping": "{{ shipping }}", "items": [ {% for row in order_products %} "id": "{{ row.model }}", "name": "{{ row.name }}", "quantity": "{{ row.quantity }}", "price": "{{ row.price }}" {% endfor %} ] });
  3. Не знаю в чем дело, модификатор не обновляет файлы. Захардкодил - работает.
  4. Хочу сделать простенький модификатор для отправки конверсий и их ценности в Google Ads. Возможно это будет первый модификатор который я бесплатно выложу здесь. Код собрал по частям. Есть больше сомнения что все сделал верно и вообще будет ли он корректно работать. 1.success.php(вторая операция) делал по аналогии с OC2x 2.success.twig переводил из php не уверен правильно ли сделал Буду очень благодарен за подсказки и исправления. <?xml version="1.0" encoding="utf-8"?> <modification> <name>Google conversion</name> <code>order-id-google-conversion</code> <version>1.0.0</version> <author>Vandeko</author> <link>https://192.168.0.1</link> <file path="/catalog/controller/checkout/success.php"> <operation> <search> <![CDATA[ if (isset($this->session->data['order_id'])) { ]]> </search> <add position="after"> <![CDATA[ $this->load->model('account/order'); $this->data['order_id'] = $this->session->data['order_id']; $this->data['order_info'] = $this->model_account_order->getOrder($this->session->data['order_id']); $this->data['order_totals'] = $this->model_account_order->getOrderTotals($this->session->data['order_id']); $this->data['order_products'] = $this->model_account_order->getOrderProducts($this->session->data['order_id']); $shipping = 0; foreach ($this->data['order_totals'] as $row) { if ($row['code'] == 'shipping') { $shipping = $row['value']; } } $this->data['shipping'] = $shipping; $tax = 0; foreach ($this->data['order_products'] as $row) { $tax = $tax + $row['tax']; } $this->data['tax'] = $tax; $this->cart->clear(); ]]> </add> </operation> <operation> <search> <![CDATA[ if ($this->customer->isLogged()) { $data['text_message'] = sprintf($this->language->get('text_customer'), $this->url->link('account/account', '', true), $this->url->link('account/order', '', true), $this->url->link('account/download', '', true), $this->url->link('information/contact')); } else { $data['text_message'] = sprintf($this->language->get('text_guest'), $this->url->link('information/contact')); } ]]> </search> <add position="replace"> <![CDATA[ if ($this->customer->isLogged()) { $data['text_message'] = sprintf($this->language->get('text_customer'), $this->language->get('order_info'), $this->url->link('account/account', '', true), $this->url->link('account/order', '', true), $this->url->link('account/download', '', true), $this->url->link('information/contact')); } else { $data['text_message'] = sprintf($this->language->get('text_guest'), $this->language->get('order_info'), $this->url->link('information/contact')); } ]]> </add> </operation> </file> <file path="/catalog/language/ru-ru/checkout/success.php"> <operation> <search> <![CDATA[ $_['text_success'] = 'Заказ принят'; ]]> </search> <add position="after"> <![CDATA[ $_['order_info'] = 'Номер вашего заказа:'; ]]> </add> </operation> </file> <file path="/catalog/language/uk-ua/checkout/success.php"> <operation> <search> <![CDATA[ $_['text_success'] = 'Замовлення прийнято'; ]]> </search> <add position="after"> <![CDATA[ $_['order_info'] = 'Номер вашого замовлення:'; ]]> </add> </operation> </file> <file path="/catalog/view/theme/tt_sharma1/template/common/success.twig"> <operation> <search> <![CDATA[ {{ text_message }} ]]> </search> <add position="replace"> <![CDATA[ <p>{{ order_info }} {{ order_id }}</p>{{ text_message }} ]]> </add> </operation> <operation> <search> <![CDATA[ {{ footer }} ]]> </search> <add position="after"> <![CDATA[ {% if order_id is defined %} <!-- Google Analytics - Ecommerce Tracking (Universal Analytics) --> <script type="text/javascript"> gtag('event', 'purchase', { "transaction_id": {{ order_id }}, "affiliation": {{ order_info.store_name }}, "value": {{ order_info.total }}, "currency": {{ order_info.currency_code }}, "tax": {{ tax }}, "shipping": {{ shipping }}, "items": [ {% for row in order_products %} "id": {{ row.model }}, "name": {{ row.name }}, "quantity": {{ row.quantity }}, "price": {{ row.price }} {% endfor %} ] }); </script> <!-- End Google Analytics - Ecommerce Tracking (Universal Analytics) --> <!-- Event snippet for Покупка товара conversion page --> <script> gtag('event', 'conversion', { 'send_to': 'Ваше из гугладвордса', 'value': {{ order_info.total }}, 'currency': {{ order_info.currency_code }}, 'transaction_id': {{ order_id }} }); </script> ]]> </add> </operation> </file> </modification>
    Плюсы: Модуль рабочий. Поддержка отвечает быстро. Есть адаптация под темы. Модуль обновляется. Модуль предпочтителен для #FX SITEMAP(генерация XML-карт) и наверное для каких-то других модулей. Недостатки: После покуки вместо модуля вам придет длинная инструкция как его получить. После установки также длинный процес настройки. Лично у меня модуль использовал ЧПУ не зависимо от языка, тоесть ссылки были на разных языках одновременно. Изза єтого несоответствия языку при включении SEOPRO некотрые страницы не открывались - 404. Решение: Использовал одинаковые ЧПУ для всех языков. Модуль нужный, хотя и с недостатками.
  5. Vandeko

    MegaMenu Pro

    Огромное спасибо! Модуль супер! Гибкая настройка, достаточно много нужных! опций. Автор отзивчивий, быстро отписывает, помог с настройкой нестандартного шаблона. Без сомнений советую!
    Отличный модуль, установился и заработал как родной без доп настроек. Поддержка приятно удивила, в случае возникновения вопросов автор заботится чтоб все заработало как надо. Всем советую, автору - респект!
  6. Отлично! строка 78 WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND Спасибо!
  7. Подскажите, как отучить Opencart 2.3 в поиске различать языки. То есть даже если выбран другой язык, поиск всегда выдавал искомый товар. В версии 1.5. исправлялось коментированием строчки в контроллере search.php $sql .= 'AND pd.language_id = ' . (int)$this->config->get('config_language_id'); в совей версии в контроллере search.php я такой строки не нашел.

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.