UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: shoto от 05 Июня 2013, 13:53:44

Название: электронная коммерция в google analytics
Отправлено: shoto от 05 Июня 2013, 13:53:44
Здравствуйте.

Кто нибудь прикручивал к XSLT сбор данных для гугл аналитикса для отслеживания электронной коммерции?

там необходимо настроить генерацию скрипта, который бы выводил данные о номере заказа, наименовании товара, его цена и количество.

Правильно ли я думаю, что в файле purchase.xsl в шаблоне
<xsl:template match="purchasing[@stage = 'result' and @step = 'successful']">
<p><xsl:text>&emarket-order-successful;</xsl:text></p>
</xsl:template>

вывести требуемые данные в нужном формате.?

Возможно ли вообще на этой странице получить данные о номере заказа?
т.к. зная номер заказа можно вытащить и все остальные требуемые данные.
Вот и вопрос, как вытащить тут номер заказа.
Название: Re:электронная коммерция в google analytics
Отправлено: admin от 20 Июня 2013, 08:28:06
я правильно понял ваш вопрос, что вам необходимо отправить в гугл аналитикс информацию для которой нужен id заказа, после успешного завершения оформления заказа?
Если да, то вам удобнее было бы написать скрипт срабатывающий на событие оформление заказа, так как на шаге /emarket/purchase/result/successful/ нет данных о заказе, который только что был оформлен
Название: Re:электронная коммерция в google analytics
Отправлено: e.ioffe от 20 Июня 2013, 08:40:36
Если да, то вам удобнее было бы написать скрипт срабатывающий на событие оформление заказа, так как на шаге /emarket/purchase/result/successful/ нет данных о заказе, который только что был оформлен

ID заказа можно получить. например, таким образом - http://wiki.umisoft.ru/%D0%9F%D0%BE%D0%B8%D1%81%D0%BA_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B3%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0,_%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%B8%D0%BB_%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%B0%D1%82%D0%B5%D0%BB%D1%8C.

Недавно решал такую задачу, ближе к вечеру посмотрю свой код.
Название: Re:электронная коммерция в google analytics
Отправлено: shoto от 21 Июня 2013, 08:24:03
Цитировать
ID заказа можно получить. например, таким образом - http://wiki.umisoft.ru/%D0%9F%D0%BE%D0%B8%D1%81%D0%BA_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B3%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0,_%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%B8%D0%BB_%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%B0%D1%82%D0%B5%D0%BB%D1%8C.
К сожалению тут пусто.
Название: Re:электронная коммерция в google analytics
Отправлено: e.ioffe от 21 Июня 2013, 10:35:34
Цитировать
ID заказа можно получить. например, таким образом - http://wiki.umisoft.ru/%D0%9F%D0%BE%D0%B8%D1%81%D0%BA_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B3%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0,_%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%B8%D0%BB_%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%B0%D1%82%D0%B5%D0%BB%D1%8C.
К сожалению тут пусто.

Странно.

Вот мой код (когда-то брал с wiki, если не ошибаюсь). Работает на версии 2.8.5.3:

public function order_last($template = 'order_last') {
list($tpl_block) = def_module::loadTemplates("./tpls/emarket/{$template}.tpl", 'order_block');

$cmsController = cmsController::getInstance();
$domain = $cmsController->getCurrentDomain();
$domainId = $domain->getId();
//поиск последнего заказа для текущего пользователя
$sel = new selector('objects');
$sel->types('object-type')->name('emarket', 'order');
$sel->where('customer_id')->equals(customer::get()->id);
$sel->where('name')->isNull(false);
$sel->where('domain_id')->equals($domainId);
$sel->order('order_date')->desc();
$sel->limit(0, 1);

$result = $sel->first;
if($sel->length > 0) {
$block_arr['order_id'] = $result->id;
$block_arr['number'] = $result->number;               
return def_module::parseTemplate($tpl_block, $block_arr, false, $result->id);
}
}
Название: Re:электронная коммерция в google analytics
Отправлено: admin от 21 Июня 2013, 11:58:21
кстати если у вас версия 2.9 то может подойти такой вариант

Добавление информации о заказе в сообщение-уведомление (XSLT) (http://wiki.umisoft.ru/%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5_%D0%B2_%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B5-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%28XSLT%29)

а статья про поиск последнего заказа текущего макроса открывается по этому адресу (http://wiki.umisoft.ru/%D0%9F%D0%BE%D0%B8%D1%81%D0%BA_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B3%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0,_%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%B8%D0%BB_%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%B0%D1%82%D0%B5%D0%BB%D1%8C.)
Название: Re:электронная коммерция в google analytics
Отправлено: shoto от 23 Июня 2013, 14:51:33
Цитировать
а статья про поиск последнего заказа текущего макроса открывается по этому адресу
взяв за основу этот макрос, удалось прикрутить к странице /emarket/purchase/result/successful/ сформированные скрипты для отправки в гугл.аналитикс для отслеживания электронной коммерции.
Всем огромное спасибо.
а то я когда искала что то подобное на wiki, почему то посчитала что данная статья (если судить по заголовку) мне не подойдет, и даже не открывала.эх.

а так, если вдруг кому еще понадобится, у меня получилось так, может и не совсем оптимально.
<xsl:template match="purchasing[@stage = 'result' and @step = 'successful']">
<p>
<xsl:text>&emarket-order-successful;</xsl:text>
</p>
<xsl:variable name="orderl_id" select="document('udata://emarket/order_last/')" mode="last"/>

<xsl:variable name="order_info" select="document(concat('udata://emarket/order/',$orderl_id//order_id))/udata"/>

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-********-1']);

_gaq.push(['_addTrans',
  '<xsl:value-of select="$orderl_id//order_id" />',           // номер заказа ОБЯЗАТЕЛЬНО
  'My-Shop',  // название магазина
  '<xsl:value-of select="$order_info//summary/price/actual" />',          // стоимость заказа (без учета доставки) ОБЯЗАТЕЛЬНО
  '0',           // налог
  '0',              // доставка
  'SPB',       // город
  'SPB',     // регион
  'Russia'             // страна
]);

<xsl:apply-templates select="$order_info//items/item" mode="vvv"/>

_gaq.push(['_trackTrans']);
</script>
</xsl:template>

<xsl:template match="udata[@method = 'order']/items/item" mode="vvv">
<xsl:variable name="orderl_id" select="document('udata://emarket/order_last/')"/>
_gaq.push(['_addItem','<xsl:value-of select="$orderl_id//order_id" />','<xsl:value-of select="page/@id" />', '<xsl:value-of select="@name" />', '', '<xsl:apply-templates select="price" mode="last_order"/>', '<xsl:apply-templates select="amount" mode="amount" />' ]);
</xsl:template>