UMIhelp
Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: Axiomateria от 07 Ноября 2014, 22:54:27
-
Здравствуйте!
Есть такая возможность в demodizzy как заказать через модальное окно в один клик товар из раздела или из подробного описания.
По умолчанию предлагается всплывающая форма "Быстрый заказ", где покупатель вводит свои данные (имя, почта и т.п) и заявка в виде заказа отправляется в соответствующий список заказов, которые видны в модуле "Интернет-Магазин".
В такой заявке видны и данные введённые пользователем и там же наименование товара с ценой.
Вопрос: добавить в модальное окно "Быстрый заказ" изображения товара из поля photo и его наименование из поля name,
то есть что бы покупатель видел сразу что он заказывает, особенно это нужно когда он из раздела с превью объектов нажимает на ссылку "Заказ в 1 клик".
И вот у меня два вариант решения:
1. Как-то вывести в файл \templates\demodizzy\xslt\modules\catalog\one-click.xsl данные о том товаре, который на данный момент заказывает покупатель.
2. Изменить адрес запроса в файле \templates\demodizzy\js\basket.js, при выполнении которого возвращаются данные для формы...
В общем я пока за первый вариант, так как JS не моё пока...
Что посоветуете?
-
Залез в файл \templates\demodizzy\js\basket.js и нашёл строку 170 с ссылкой на форму, которая и всплывает как "Быстрый заказ"
и сменил
url: '/udata/emarket/createForm/emarket-purchase-oneclick?transform=modules/catalog/one-click.xsl&lang=' + lang,
на
url: '/upage//' + id + '?transform=modules/catalog/one-click.xsl&lang=' + lang,
а в файле \templates\demodizzy\xslt\modules\catalog\one-click.xsl вставил вызов
<xsl:template match="/">
<div class="content">
<form class="buyer_data" enctype="multipart/form-data" method="post" action="/{udata/group/@lang}/emarket/getOneClickOrder/">
<xsl:apply-templates select="//group[@name = 'common']/property[@name = 'h1']/value" />
<xsl:apply-templates select="udata/group/field" />
</form>
</div>
<div class="clear"></div>
</xsl:template>
что бы наименование товара было в всплывающем окне.
И теперь всплывает окно с наименованием товара, но без полей формы для заполнения покупателем данных как Имя и Телефон...
Думается, мне, что надо как теперь вызвать форму для этого товара, но как ?
-
В руководстве есть описание этого макроса %emarket createForm()% для вызова формы:
http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/internetmagazin/emarket_createform/
но вот ума не приложу как вызов сделать формате XSLT...
-
приложил ум и вставил в файл \templates\demodizzy\xslt\modules\catalog\one-click.xsl
такой вызов формы с ID = 84 (это тип данных "Незарегистрированный покупатель") и теперь нужные поля формы для заполнения появились и ещё удалось вывести
данные о товаре ,который на данный момент собирается в один клик купить пользователь (наименование товара в виде ссылки и картинка)
<div class="goods_modal_wrap">
<div class="goods_b_view mod_modal mod_1">
<div class="goods_img_hold mod_1 size_1">
<img src="{//group[@name = 'product']/property[@name = 'photo']/value}" class="img-review"/>
</div>
</div>
<div class="goods_data_v2 mod_modal">
<h3 class="goods_title">
<a href="{$object_link}">
<xsl:apply-templates select="//group[@name = 'common']/property[@name = 'h1']/value" />
</a>
</h3>
<div class="form_box mod_modal">
<form class="buyer_data" enctype="multipart/form-data" method="post" action="/{udata/group/@lang}/emarket/getOneClickOrder/">
<xsl:apply-templates select="document('udata://emarket/createForm/84/')/udata/group/field" />
</form>
</div>
</div>
</div>
</xsl:template>
Но вот беда, теперь если заполнить в сплывающем окне все поля и нажать на кнопку "Купить" ни чего не происходит...
Скорее всего изменённая строка 171 в файле \templates\demodizzy\js\basket.js
url: '/upage//' + id + '?transform=modules/catalog/one-click.xsl&lang=' + lang,
не позволяет отправить данные заказа в 1 клик...
Однако опять тупик. Помогите, пожалуйста советом. Что с этой 171-ой строкой делать ?
-
В общем итоге закрывая собственный монолог :) на эту тему хочу сказать, что проблема решилась просто.
Я отредактировал action в файле one-click,xsl
было так:
<form class="buyer_data" enctype="multipart/form-data" method="post" action="/{udata/group/@lang}/emarket/getOneClickOrder/">
а теперь так:
<form class="buyer_data" enctype="multipart/form-data" method="post" action="/emarket/getOneClickOrder/">
То есть убрал /{udata/group/@lang}/ и всё заработало. Заявка теперь отправляется с успешным уведомлением в этом же всплывшем окне.