UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: mimo от 16 Октября 2014, 08:43:44

Название: Я.Метрика Отчет «Параметры интернет-магазинов»
Отправлено: mimo от 16 Октября 2014, 08:43:44
http://help.yandex.ru/metrika/content/e-commerce.xml
кто настраивал?

подскажите в каком месте  и в каком виде вставить этот код

var yaParams = {
  order_id: "12345",
  order_price: 123.45,
  currency: "RUR",
  exchange_rate: 1,
  goods:
     [
        {
          id: "1",
          name: "название товара",
          price: 100,
          quantity: 1
        }
      ]
};

я так понял он должен располагаться на конечной странице оформления заказа /emarket/purchase/result/successful/

p.s: сайт на tpl шаблонизаторе
Название: Re:Я.Метрика Отчет «Параметры интернет-магазинов»
Отправлено: admin от 16 Декабря 2014, 14:05:02
в самом простом варианте так и должно быть.

Стоит только предусмотреть что на страницу /emarket/purchase/result/successful/ можно зайти и просто так не оформляя заказ и тогда такой код не должен отправляться. Проверять лучше всего на наличие переменной order_id
Название: Re: Я.Метрика Отчет «Параметры интернет-магазинов»
Отправлено: vokilog от 20 Июля 2015, 12:02:40
Здравствуйте. Вопрос остался без ответа) Как подгрузить в код метрики данные о заказе? Норме, сумму, товары, количество, цену и т.д. С таким кодом который в примере метрики все заказы имеют один и тот-же номер и сумму. Вопрос в том, как подгружать на странице "Спасибо за покупку" в переменную order_id и order_price реальный номер заказа и сумму, а не статические цифры "123".

Сейчас на странице "Спасибо за заказ" я вывожу информацию о заказе следующим кодом:
<xsl:template match="purchasing[@stage = 'result' and @step = 'successful']">
        <div id="order_success_text_{$infoPageId}_{generate-id()}" class="text" umi:element-id="{$infoPageId}" umi:empty="&empty;" umi:field-name="order_success_text" umi:field-type="string">
            <xsl:apply-templates select="$infoPage/property[@name = 'order_success_text']" />
<xsl:apply-templates select="document(concat('udata://emarket/order/', //order/@id))" mode= "unic" />
        </div>
    </xsl:template>

<xsl:template match="udata" mode= "unic">
<p></p>
<p>Вы заказали:</p>
    <hr/>
<p>Ваш заказ №: <xsl:value-of select="number" />. </p>
<xsl:apply-templates select="items/item" mode = "lin"/>
    <hr/>
    <p>Количество заказанных товаров: <xsl:value-of select="summary/amount" /> , на общую сумму:
    <xsl:value-of select="summary/price" /><xsl:value-of select="summary/price/@suffix" />. </p>
</xsl:template>
 
<xsl:template match="udata//item" mode= "lin">
    <p><a href="{page/@link}"><xsl:value-of select="@name"/></a></p>
    <p>Цена:  <xsl:value-of select="price"/> <xsl:value-of select="price/@suffix" />.
    Количество: <xsl:value-of select="amount"/> шт.</p>
</xsl:template>

Таким образом на странице "Спасибо за покупку" я вижу:

Ваш заказ №: 153.

Ручка шариковая
Цена: 5 руб. Количество: 1 шт.

Количество заказанных товаров: 1 , на общую сумму: 5 руб.


Вопрос: как передать эти данные в метрику.

Базовый код который метрика понимает:
var yaParams = {
  order_id: "12345",
  order_price: 123.45,
  currency: "RUR",
  exchange_rate: 1,
  goods:
     [
        {
          id: "1",
          name: "название товара",
          price: 100,
          quantity: 1
        }
      ]
};


В итоге как должен выглядеть код метрики, чтобы вместо статичных "order_id: "12345"" и "order_price: 123.45" метрика получала данные о заказе который совершил человек.
Название: Re: Я.Метрика Отчет «Параметры интернет-магазинов»
Отправлено: admin от 20 Июля 2015, 13:28:00
На странице успешного оформления заказа, вам доступна переменная с order_id

вам надо воспользоваться макросом %emarket order()% (http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/internetmagazin/emarket_order/#content) — он возвращает информацию о заказе.   . Таким образом вы сможете сформировать js код нужного вида
var yaParams = {
  order_id: "12345",
  order_price: 123.45,
  currency: "RUR",
  exchange_rate: 1,
  goods:
     [
        {
          id: "1",
          name: "название товара",
          price: 100,
          quantity: 1
        }
      ]
};

подставив туда нужные значения.
Название: Re: Я.Метрика Отчет «Параметры интернет-магазинов»
Отправлено: vokilog от 20 Июля 2015, 14:15:16
К сожалению я чайник, и без примера - код не составлю(

Может быть кто-нибудь может написать пример, и мы вместе здесь составим готовое решение которое подойдёт большинству пользователей UMI.CMS

Я сначала пытался подставить значения с помощью Json:
udata/emarket/order/@id
нечего не получилось.....
Название: Re: Я.Метрика Отчет «Параметры интернет-магазинов»
Отправлено: vokilog от 20 Июля 2015, 20:31:00
Решил проблему, может быть кому-то пригодиться:

Открываем шаблон который выводит страницу "Спасибо за заказ". В моём случае это был "xsltTpls/modules/emarket/purchase.xsl"

В этом шаблоне я добавил код:

<xsl:template match="purchasing[@stage = 'result' and @step = 'successful']">
        <div id="order_success_text_{$infoPageId}_{generate-id()}" class="text" umi:element-id="{$infoPageId}" umi:empty="&empty;" umi:field-name="order_success_text" umi:field-type="string">
            <xsl:apply-templates select="$infoPage/property[@name = 'order_success_text']" />
<xsl:apply-templates select="document(concat('udata://emarket/order/', //order/@id))" mode= "unic" />
        </div>
    </xsl:template>

<xsl:template match="udata" mode= "unic">
<script type="text/javascript">
var yaParams = {
order_id: "<xsl:value-of select="number" />",
order_price: <xsl:value-of select="summary/price" />,
currency: "RUR",
exchange_rate: 1,
goods: [<xsl:apply-templates select="items/item" mode = "lin_ya"/>]
};
</script>
</xsl:template>

<xsl:template match="udata//item" mode= "lin_ya">
{
name: "<xsl:value-of select="@name"/>",
price: <xsl:value-of select="price"/>,
quantity: <xsl:value-of select="amount"/>
},
</xsl:template>

Помогла техподдержка UMI и справка в которой рассказывается как вывести информацию о совершенном заказе на странице "Спасибо за покупку". 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


Если кто-то найдёт решение, которое не будет требовать вмешиваться в шаблоны, отпишитесь пожалуйста.