Здравствуйте. Вопрос остался без ответа) Как подгрузить в код метрики данные о заказе? Норме, сумму, товары, количество, цену и т.д. С таким кодом который в примере метрики все заказы имеют один и тот-же номер и сумму. Вопрос в том, как подгружать на странице "Спасибо за покупку" в переменную 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="∅" 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" метрика получала данные о заказе который совершил человек.
На странице успешного оформления заказа, вам доступна переменная с 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
}
]
};
подставив туда нужные значения.
Решил проблему, может быть кому-то пригодиться:
Открываем шаблон который выводит страницу "Спасибо за заказ". В моём случае это был "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="∅" 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
Если кто-то найдёт решение, которое не будет требовать вмешиваться в шаблоны, отпишитесь пожалуйста.