Перейти к содержимому


Помогите С Интергарацией Сервиса Retailrocket

RetailRocket

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 32

#1 PowerTea

PowerTea

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 177 сообщений
  • ГородКалининград

Отправлено 08 Июнь 2014 - 13:59

Здравствуйте! Решил попробовать поставить у себя сервис рекомендуемых товаров от RetailRocket.com. Нужна небольшая консультация по переменным. Ниже полный текст их требований, чтобы было понятней. В нем я выделил требуемые мне параментры красным цветом.
------------
2. Код обработчика просмотра карточек товаров

На всех страницах карточек товаров необходимо установить товарный трекинг код:
<script type="text/javascript">
    function rrAsyncInit() {
        try{ rrApi.view(<product_id>); } catch(e) {}
    }
</script>
Где:
<product_id> - ID товара (должно совпадать с ID, передаваемом в YML).


Пример:

<script type="text/javascript"> function rrAsyncInit() { try { rrApi.view(123); } catch(e) {} } </script>


3. Код обработчика просмотра страницы товарной категории

На всех страницах товарных категорий необходимо установить следующий код:
<script type="text/javascript">
    function rrAsyncInit() {
        try { rrApi.categoryView(<category_id>); } catch(e) {}
    }
</script>
Где:
<category_id> - числовой ID товарной категории (должен совпадать с атрибутом id тэга <category>, передаваемом в YML-файле).


Пример:

<script type="text/javascript"> function rrAsyncInit() { try { rrApi.categoryView(123); } catch(e) {} } </script>


4. Код обработчика добавления товаров в корзину

На кнопках, нажатие которых приводит к добавлению товара в корзину, необходимо установить обработчик событий:
onmousedown="try { rrApi.addToBasket(<product_id>) } catch(e) {}"

Где:
<product_id> - ID товара (должно совпадать с ID, передаваемом в YML).


Пример:

<div class="buy_button " onmousedown="try { rrApi.addToBasket(123) } catch(e) {}"></div>
Обратите внимание:
Кнопка добавления в корзину может находиться как в карточке товара, так и в листингах, вызов метода addToBasket нужно установить и в этом случае;
ID товара, передаваемого в метод addToBasket, должно быть числом и совпадать с ID этого товара в предоставляемом YML-фиде товаров;


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

На финальной странице оформления заказа (на которой пользователю сообщают о том, что заказ сформирован, благодарят за покупку и так далее) необходимо установить обработчик совершения транзакции:
<script type="text/javascript">
function rrAsyncInit() {
    try {
    rrApi.order({
    transaction: <transaction_id>,
    items: [
    { id: <product_id>, qnt: <quantity>,  price: <price>},
    { id: <product_id>, qnt: <quantity>,  price: <price> }

    ]
    });
    } catch(e) {}
}
</script>

Где:
<transaction_id> - ID транзакции,
<product_id> - ID товара (должно совпадать с ID, передаваемом в YML),
<qnt> - количество единиц товара в заказе,
<price> - цена за единицу товара.


Пример:
<script type="text/javascript">
function rrAsyncInit() {
try {
   rrApi.order({
  transaction: 1235421421,
  items: [
{ id: 12312, qnt: 4, price: 130 },
{ id: 64532, qnt: 1, price: 220 }
  ]
   });
} catch(e) {}
}
</script>
-------------

#2 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 10 Июнь 2014 - 01:49

2. В шаблоне "Товар" вы можете разместить следующий код

<script type="text/javascript">
	function rrAsyncInit() {
		try{ rrApi.view({GOODS_ID}); } catch(e) {}
	}
</script>

3. В шаблоне "Товары" вы можете разместить следующий код

<script type="text/javascript">
	function rrAsyncInit() {
		try { rrApi.categoryView({CATEGORY_ID}); } catch(e) {}
	}
</script>

4. В данном случае код зависит от используемого шаблона. Если шаблон "Товары", то код будет иметь вид

onmousedown="try { rrApi.addToBasket({goods.ID}) } catch(e) {}"

если это шаблон "Товар", то код примет вид

onmousedown="try { rrApi.addToBasket({GOODS_ID}) } catch(e) {}"

5. В шаблоне "Просмотр заказа" вы можете разместить следующий код

<script type="text/javascript">
function rrAsyncInit() {
	try {
	rrApi.order({
	transaction: {ORDER_NUM},
	items: [
{%FOR order_lines%}{% IF order_lines.TYPE_ID=1 %}
	{ id: {order_lines.ID}, qnt: {order_lines.QUANTITY},  price: {order_lines.LINE_SUM}},
{%ENDIF%}{%ENDFOR%}
	]
	});
	} catch(e) {}
}
</script>


#3 PowerTea

PowerTea

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 177 сообщений
  • ГородКалининград

Отправлено 10 Июнь 2014 - 11:59

Просмотр сообщенияСake (10 Июнь 2014 - 01:49) писал:

2. В шаблоне "Товар" вы можете разместить следующий код



Благодарю! Будем пробовать!

#4 Jack Gun

Jack Gun

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 69 сообщений

Отправлено 25 Июнь 2014 - 09:47

2 и 5 пункты проходят проверку на Reatail Rocket.

А вот 3 и 4 почему-то нет, сервис сообщает что код не установлен.

#5 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 26 Июнь 2014 - 00:23

Пожалуйста, приведите пример установленного вами кода по пункту 3 и 4.

#6 Jack Gun

Jack Gun

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 69 сообщений

Отправлено 26 Июнь 2014 - 12:13

Номер 4 заработал (я заново вставил код, видимо первый раз ошибку допустил), остался только номер 3.

Вот код:

{% IFNOT index_page %}

<script type="text/javascript">
	 function rrAsyncInit() {
			 try { rrApi.categoryView({CATEGORY_ID}); } catch(e) {}
	 }
</script>


#7 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 27 Июнь 2014 - 01:02

Проблема по всей видимости в идентификаторе категории. В шаблоне "Товары" нет переменной {CATEGORY_ID}. Попробуйте использовать имя категории в качестве идентификатора.

<script type="text/javascript">
		function rrAsyncInit() {
				try { rrApi.categoryView('{CATEGORY_NAME}'); } catch(e) {}
		}
</script>

Если не получиться, то можно будет попробовать адрес категории или имя категории перевести в числовой формат.

#8 PowerTea

PowerTea

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 177 сообщений
  • ГородКалининград

Отправлено 27 Июнь 2014 - 05:17

Просмотр сообщенияСake (27 Июнь 2014 - 01:02) писал:

Проблема по всей видимости в идентификаторе категории. В шаблоне "Товары" нет переменной {CATEGORY_ID}. Попробуйте использовать имя категории в качестве идентификатора.

<script type="text/javascript">
	 function rrAsyncInit() {
			 try { rrApi.categoryView('{CATEGORY_NAME}'); } catch(e) {}
	 }
</script>

Если не получиться, то можно будет попробовать адрес категории или имя категории перевести в числовой формат.

Вообще кто-то из пользователей Storeland пробовал у себя поставить RR??!!!

#9 Jack Gun

Jack Gun

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 69 сообщений

Отправлено 27 Июнь 2014 - 12:42

Просмотр сообщенияСake (27 Июнь 2014 - 01:02) писал:

Проблема по всей видимости в идентификаторе категории. В шаблоне "Товары" нет переменной {CATEGORY_ID}. Попробуйте использовать имя категории в качестве идентификатора.

<script type="text/javascript">
	 function rrAsyncInit() {
			 try { rrApi.categoryView('{CATEGORY_NAME}'); } catch(e) {}
	 }
</script>

Если не получиться, то можно будет попробовать адрес категории или имя категории перевести в числовой формат.

Так не работает.

Нужно же, чтобы ID категории отдавался так же, как в YML-файле. А там он отдается цифрами.

#10 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 28 Июнь 2014 - 02:27

Попробуйте использовать следующий код

{% IFNOT catalog_full_empty %}
	{% FOR catalog_full %}
		{% IF catalog_full.NAME = CATEGORY_NAME %}
<script type="text/javascript">
function rrAsyncInit() {
	try { rrApi.categoryView({catalog_full.ID}); } catch(e) {}
}
</script>
  {% ENDIF %}
	{% ENDFOR %}
{% ENDIF %}

Данный код по идее должен сработать, так как идентификатор получается из каталога.

#11 Jack Gun

Jack Gun

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 69 сообщений

Отправлено 30 Июнь 2014 - 12:55

И правда сработало, спасибо!

И остался последний этап установки, надо добавить JS-код добавления в корзину.

Вот инструкция:
Скрытый текст


#12 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 01 Июль 2014 - 23:51

У вас по идее выполнен данный пункт. Инструкция к пункту

Цитата

4. Код обработчика добавления товаров в корзину

Информация http://forum.storela...et/#entry142531

На ваших страницах товара данное событие установлено.

#13 Jack Gun

Jack Gun

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 69 сообщений

Отправлено 02 Июль 2014 - 06:13

Просмотр сообщенияСake (01 Июль 2014 - 23:51) писал:

У вас по идее выполнен данный пункт. Инструкция к пункту



Информация http://forum.storela...et/#entry142531

На ваших страницах товара данное событие установлено.

Вы наверное, не так поняли. Это не то, что нужно установить мне на сайт. Это поле в личном кабинете RetailRocket, которое требуется заполнить согласно инструкции.

То есть, как я понимаю, он сам будет поставлять этот код в свой виджет, чтобы срабатывала кнопка "добавить в корзину".

#14 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 03 Июль 2014 - 01:55

Просто на кнопку добавления товара в корзину у вас уже установлено событие addToBasket(itemId) с идентификатором товара (например шаблон "Товары" или шаблон "Товар"). В приложенной вами инструкции требуется именно это реализовать. У вас что-то не срабатывает? или RetailRocket не может найти какой-то код? Возможно вы выполняете повторно инструкцию по установке, а этот пункт расписан 2 раза?

#15 Jack Gun

Jack Gun

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 69 сообщений

Отправлено 04 Июль 2014 - 09:20

Просмотр сообщенияСake (03 Июль 2014 - 01:55) писал:

Просто на кнопку добавления товара в корзину у вас уже установлено событие addToBasket(itemId) с идентификатором товара (например шаблон "Товары" или шаблон "Товар"). В приложенной вами инструкции требуется именно это реализовать. У вас что-то не срабатывает? или RetailRocket не может найти какой-то код? Возможно вы выполняете повторно инструкцию по установке, а этот пункт расписан 2 раза?

Мы определенно друг друга не можем понять. На сайт мой ничего добавлять и изменять не требуется. На нем уже все настроенно и работает. Но это все настройки были для того, чтобы RR мог отслеживать действия покупателей.

Теперь же надо, чтобы он мог выводить рекомендуемые товары в своем виджете. То есть Retailrocket хочет поставить в свой виджет собственную кнопку "добавить в корзину", и для этого ему нужно знать какой JS код на нее вешать, чтобы сайт корректно обработал его и добавил товар из виджета в корзину.

Я не знаю как это еще объяснить. Но это должно быть что-то, что я введу в специальную форму на сайте RetailRocket, а не изменю в своем сайте.

#16 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 05 Июль 2014 - 00:42

Давайте попробуем реализовать такую функцию (по умолчанию в main.js не используется функция добавления товара). Укажите Retailrocket в качестве функции

addToCart(itemId)

После этого приведите пример отображения (использования) данного виджета. Необходимо определить передачу дополнительных данных, так как для добавления товара в корзину не достаточно передать его идентификатор. Необходимо передавать 3 параметра, например

<input type="hidden" name="hash" value="{HASH}" />
<input type="hidden" name="form[goods_from]" value="{goods.GOODS_FROM}" />
<input type="hidden" name="form[goods_mod_id]" value="{goods.MIN_PRICE_NOW_ID}" />


#17 Jack Gun

Jack Gun

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 69 сообщений

Отправлено 13 Июль 2014 - 16:44

Очередной этап установки. Оказывается, что не тот ID отдает переменная {GOODS_ID}.

Вот что пишет мне служба поддержки RetailRocket:

Виталий, добрый день.
Например, в карточке товара http://jackgun.ru/goods/Umarex-Ruger-Air-Hawk вызывается код виджета:
<div class="rr-widget"
	 data-rr-widget-product-id="13127763"
	 data-rr-widget-id="53a82c9a1e994424a0765e17"
	 data-rr-widget-width="100%"></div>
Но в YML файле этот товар имеет id = 36446344, т.е. нет соответствия между идентификаторами товаров в коде на сайте и YML.


#18 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 15 Июль 2014 - 00:54

Попробуйте использовать следующий код для шаблона "Товар"

<script type="text/javascript">
	 function rrAsyncInit() {
			 try{ rrApi.view({GOODS_MOD_ID}); } catch(e) {}
	 }
</script>

в замен предыдущего кода.

#19 Jack Gun

Jack Gun

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 69 сообщений

Отправлено 16 Июль 2014 - 11:38

Не помогло, отдается тот же самый ID, несоответствующий ID в YML-файле.

#20 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 16 Июль 2014 - 23:47

На данный момент используемый вами код

<script type="text/javascript">
		 function rrAsyncInit() {
						 try{ rrApi.view({GOODS_MOD_ID}); } catch(e) {}
		 }
</script>

на странице товара /goods/Umarex-Ruger-Air-Hawk преобразуется в код

<script type="text/javascript">
		 function rrAsyncInit() {
						 try{ rrApi.view(36446344); } catch(e) {}
		 }
</script>

что соответствует присланной вами информации

Цитата

Виталий, добрый день.
Например, в карточке товара http://jackgun.ru/go...-Ruger-Air-Hawk вызывается код виджета:
<div class="rr-widget"
data-rr-widget-product-id="13127763"
data-rr-widget-id="53a82c9a1e994424a0765e17"
data-rr-widget-width="100%"></div>
Но в YML файле этот товар имеет id = 36446344, т.е. нет соответствия между идентификаторами товаров в коде на сайте и YML.

Попробуйте повторить процедуру проверки. Возможно проблема в чем-то другом?




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных