Перейти к содержанию
Chenom0r

код отслеживания RetailRocket - проблемы

Рекомендуемые сообщения

Здравствуйте. RetailRocket требует установки кода отслеживания на страницах сайта.

Одно из требований - передача данных о заказе.

 

Проблема в том, что после установки рекомендованного кода в шаблон (catalog/view/theme/yourtheme/template/common/success.tpl) вместо страницы с номером заказа показывается пустая страница и заказ не формируется.

 

судя по этой теме, инструкция была написана кем-то с нашего форума но я сомневаюсь в ее работоспособности и в рамках своей квалификации не могу понять в чем проблема.

В логах пусто

 

Прошу помоши :)

у меня ocStore 1.5.4.1

 

-----------------------------------------------------------------------------

 

Вот их рекомендации:

 

Код обработчика совершения транзакции

 

На финальной странице оформления заказа (на которой пользователю сообщают о том, что заказ сформирован, благодарят за покупку и так далее) необходимо установить обработчик совершения транзакции.

В самом начале файла catalog/controller/checkout/success.php есть объявление функции index: 
catalog/controller/checkout/success.php
public function index() {
 if (isset($this->session->data['order_id'])) {
  $this->cart->clear();

Вставьте эту часть скрипта таким образом, чтобы он оказался между условием наличия заказа и очищением карты (они выделены на скрипте):

catalog/controller/checkout/success.php
public function index() { if (isset($this->session->data['order_id'])) {
    $this->data['order_id'] = $this->session->data['order_id'];
    $items = $this->cart->getProducts();
    $this->data['last_item'] = end($items);
    $total_price = 0;
    foreach ($items as $item){
        $total_price = $total_price + $item['price'] *
        $item['quantity'] ;
    }
    $this->data['total_price'] = $total_price;
    $this->data['items'] = $items;
    if ($this->customer->isLogged()) {
        $this->data['email'] = $this->customer->getEmail();
        $this->data['firstname'] = $this->customer->getFirstName();
        $this->data['lastname'] = $this->customer->getLastName();
    }else{
        $this->data['email'] = $this->session->data['guest']['email'];
        $this->data['firstname'] = $this->session->data['guest']['firstname'];
        $this->data['lastname'] = $this->session->data['guest']['lastname'];
    }
$this->cart->clear();

Вставьте эту часть скрипта в конец файла catalog/view/theme/yourtheme/template/common/success.tpl:

<script type="text/javascript">
function rrAsyncInit() {
    try{ 
        rrApi.order({
            transaction: <?= $order_id ?>,
            items: [
                <? foreach ($items as $item) { ?>
                    { 
                        id: <?php echo $item['product_id']; ?>, 
                        qnt: <?php echo $item['quantity'];?>,
                        price: <?php echo $item['price']; ?>
                    }
                <? if (!($item == $last_item)) { ?<,>? } ?>
                <? } ?>
            ]
        });
    } catch(e) {}
}
</script>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотрите лог ошибок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в логе пусто

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня с их кодом формировался заказ, но клиенту выводилась ошибка.

Помогла замена строки в success.tpl:

<? if (!($item == $last_item)) { ?<,>? } ?>

 

на 

<? if (!($item == $last_item)) { >?,?< } ?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

спасибо! Действительно ошибка в синтаксисе php у них.

вот это работает:

  <!-- RetailRocket tracking code begin -->
  <script type="text/javascript">
    function rrAsyncInit() {
      try{ 
          rrApi.order({
            transaction: <?php echo $order_id; ?>,
            items: [
                <?php foreach ($items as $item) { ?>
                    { 
                        id: <?php echo $item['product_id']; ?>, 
                        qnt: <?php echo $item['quantity'];?>,
                        price: <?php echo $item['price']; ?>
                    }
                <?php if (!($item == $last_item)) { ?>,<?php } ?>
                <?php } ?>
            ]
          });
      } catch(e) {}
    }
  </script>
  <!-- RetailRocket tracking code end -->

а сапорту RetailRocket - не зачет.
ни на одно обращение так и не получил ответа 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К стати, PHP-код кривой-кривой. Куча лишнего, дурацкий трюк с $last_item

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К стати, PHP-код кривой-кривой. Куча лишнего, дурацкий трюк с $last_item

 

предложите альтернативу

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да, мне тоже интересно.. сервис неплохой, а их интеграция страдает..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А не пробовали пользовать их сервис товарных рекомендаций? Нормально для вывода похожих и сопутствующих товаров?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я использую. Пока стандартные виджеты, но хочу их API использовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А не пробовали пользовать их сервис товарных рекомендаций? Нормально для вывода похожих и сопутствующих товаров?

Он нормально, релевантно подбирает сопутствующие товары, или кое-как,  случайным образом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я поставила недавно виджет для карточки товара. Можете посмотреть на likanta.ru 

В целом похоже больше, что выводится товар из той же категории, что и в карточке. Еще заметила, что после установки резко увеличилось число проиндексированных страниц яндексом (хоть в чем-то польза).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Меня смущает, что виджет запускается в iframe. Перелинковки он не добавляет.

Imho нужно разбираться с api

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Меня смущает, что виджет запускается в iframe. Перелинковки он не добавляет.

Imho нужно разбираться с api

 

я не совсем правильно сказала. Увеличилось число страниц в поиске почти в 2 раза: http://likanta.ru/image/data/stat.jpg

Может и совпадение, но очень странное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Меня смущает, что виджет запускается в iframe. Перелинковки он не добавляет.

Imho нужно разбираться с api

 

Подскажите, получилось ли у вас подключиться к ним по API ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.