Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

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

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Здравствуйте!

Есть такая возможность в demodizzy как заказать через модальное окно в один клик товар из раздела или из подробного описания.
По умолчанию предлагается всплывающая форма "Быстрый заказ", где покупатель вводит свои данные (имя, почта и т.п) и заявка в виде заказа отправляется в соответствующий список заказов, которые видны в модуле "Интернет-Магазин".
В такой заявке видны и данные введённые пользователем и там же наименование товара с ценой.

Вопрос: добавить в модальное окно "Быстрый заказ" изображения товара из поля photo и его наименование из поля name,
то есть что бы покупатель видел сразу что он заказывает, особенно это нужно когда он из раздела с превью объектов нажимает на ссылку "Заказ в 1 клик".

И вот у меня два вариант решения:
1. Как-то вывести в файл \templates\demodizzy\xslt\modules\catalog\one-click.xsl данные о том товаре, который на данный момент заказывает покупатель.
2. Изменить адрес запроса в файле \templates\demodizzy\js\basket.js, при выполнении которого возвращаются данные для формы...

В общем я пока за первый вариант, так как JS не моё пока...

Что посоветуете?
 
« Последнее редактирование: 09 Ноября 2014, 17:51:16 от Axiomateria »

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Залез в файл \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>

что бы наименование товара было в всплывающем окне.

И теперь всплывает окно с наименованием товара, но без полей формы для заполнения покупателем данных как Имя и Телефон...

Думается, мне, что надо как теперь вызвать форму для этого товара, но как ?
« Последнее редактирование: 09 Ноября 2014, 18:41:36 от Axiomateria »

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
В руководстве есть описание этого макроса %emarket createForm()% для вызова формы:
http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/internetmagazin/emarket_createform/
но вот ума не приложу как вызов сделать формате XSLT...

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
приложил ум и вставил в  файл \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-ой строкой делать ?

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
В общем итоге закрывая собственный монолог  :) на эту тему хочу сказать, что проблема решилась просто.
Я отредактировал 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}/ и всё заработало. Заявка теперь отправляется с успешным уведомлением в этом же всплывшем окне.