Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Каталог и Интернет-магазин: вывод нескольких подвидов товара с разной ценой

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

Ответов: 3
Просмотров: 5564
Последний ответ 31 Октября 2018, 12:32:34
от shoto
Вывод контента, последних постов блога. (интернет-магазин)

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

Ответов: 20
Просмотров: 13212
Последний ответ 26 Марта 2012, 08:30:57
от admin
Вывод рекомендованных товаров, в версии интернет магазина

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

Ответов: 5
Просмотров: 4026
Последний ответ 18 Июня 2012, 23:50:45
от admin
Разные шаблоны для разных разделов интернет магазина

Автор koroganРаздел Шаблоны TPL

Ответов: 1
Просмотров: 3098
Последний ответ 29 Июня 2012, 12:19:29
от admin
Показать все товары со скидкой модуля «Интернет магазин»

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

Ответов: 3
Просмотров: 1611
Последний ответ 31 Января 2016, 22:29:02
от crazygeorgio

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

*

mimo

  • *
  • 6
  • +0/-0
    • Просмотр профиля
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 шаблонизаторе

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
в самом простом варианте так и должно быть.

Стоит только предусмотреть что на страницу /emarket/purchase/result/successful/ можно зайти и просто так не оформляя заказ и тогда такой код не должен отправляться. Проверять лучше всего на наличие переменной order_id

*

vokilog

  • *
  • 3
  • +1/-0
    • Просмотр профиля
Здравствуйте. Вопрос остался без ответа) Как подгрузить в код метрики данные о заказе? Норме, сумму, товары, количество, цену и т.д. С таким кодом который в примере метрики все заказы имеют один и тот-же номер и сумму. Вопрос в том, как подгружать на странице "Спасибо за покупку" в переменную 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" метрика получала данные о заказе который совершил человек.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
На странице успешного оформления заказа, вам доступна переменная с order_id

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

подставив туда нужные значения.

*

vokilog

  • *
  • 3
  • +1/-0
    • Просмотр профиля
К сожалению я чайник, и без примера - код не составлю(

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

Я сначала пытался подставить значения с помощью Json:
udata/emarket/order/@id
нечего не получилось.....

*

vokilog

  • *
  • 3
  • +1/-0
    • Просмотр профиля
Решил проблему, может быть кому-то пригодиться:

Открываем шаблон который выводит страницу "Спасибо за заказ". В моём случае это был "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


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