Jump to content
Sign in to follow this  
Chenom0r

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

Recommended Posts

Здравствуйте. 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>

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

 

на 

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

Share this post


Link to post
Share on other sites

спасибо! Действительно ошибка в синтаксисе 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 - не зачет.
ни на одно обращение так и не получил ответа 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

Share this post


Link to post
Share on other sites

Нет. Не получилось. Более того, ч перешел на использование http://crossss.ru

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.