Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
google-sitemap и sitemap (непонятка с формированием)

Автор pomoykinРаздел Настройка системы и модулей

Ответов: 8
Просмотров: 5380
Последний ответ 22 Октября 2013, 10:11:55
от john
Google captcha в XSLT-шаблоне

Автор techengineРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 3186
Последний ответ 01 Марта 2017, 12:59:21
от aghigay
Google map API при помощи transform

Автор 31rusРаздел Шаблоны XSLT

Ответов: 10
Просмотров: 3158
Последний ответ 21 Декабря 2016, 10:01:21
от 31rus
Настройка Google Analytics – нет данных

Автор randomObjectРаздел Установка UMI.CMS

Ответов: 1
Просмотров: 2243
Последний ответ 03 Мая 2017, 13:03:21
от aghigay

0 Пользователей и 1 Гость просматривают эту тему.

*

shoto

  • ***
  • 235
  • +4/-0
    • Просмотр профиля
Здравствуйте.

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

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

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

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

Возможно ли вообще на этой странице получить данные о номере заказа?
т.к. зная номер заказа можно вытащить и все остальные требуемые данные.
Вот и вопрос, как вытащить тут номер заказа.
« Последнее редактирование: 05 Июня 2013, 17:25:11 от shoto »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:электронная коммерция в google analytics
« Ответ #1 : 20 Июня 2013, 08:28:06 »
я правильно понял ваш вопрос, что вам необходимо отправить в гугл аналитикс информацию для которой нужен id заказа, после успешного завершения оформления заказа?
Если да, то вам удобнее было бы написать скрипт срабатывающий на событие оформление заказа, так как на шаге /emarket/purchase/result/successful/ нет данных о заказе, который только что был оформлен

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Re:электронная коммерция в google analytics
« Ответ #2 : 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.

Недавно решал такую задачу, ближе к вечеру посмотрю свой код.
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

shoto

  • ***
  • 235
  • +4/-0
    • Просмотр профиля

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Re:электронная коммерция в google analytics
« Ответ #4 : 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);
}
}
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:электронная коммерция в google analytics
« Ответ #5 : 21 Июня 2013, 11:58:21 »
кстати если у вас версия 2.9 то может подойти такой вариант

Добавление информации о заказе в сообщение-уведомление (XSLT)

а статья про поиск последнего заказа текущего макроса открывается по этому адресу

*

shoto

  • ***
  • 235
  • +4/-0
    • Просмотр профиля
Re:электронная коммерция в google analytics
« Ответ #6 : 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>
« Последнее редактирование: 23 Июня 2013, 14:53:56 от shoto »