UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: Tanya от 13 Октября 2011, 21:21:13

Название: Способ оплаты в зависимости от способа доставки
Отправлено: Tanya от 13 Октября 2011, 21:21:13
Подскажите, пожалуйста, как можно сделать так, чтобы в зависимости от выбранного способа доставки выводился соответсвующий ему набор способов оплаты?
Название: Re:Способ оплаты в зависимости от способа доставки
Отправлено: admin от 13 Октября 2011, 22:28:13
к сожалению на данный момент это "узкое место" модуля интернет-магазин, можно решать вопрос кастомными скриптами или jQuery или xslt шаблонами, но варианты с jQuery и xslt фактически привяжут вас к id тех способов доставок и оплаты с которыми вы будете манипулировать, то есть если потом чего в админке поменяете, надо будет проверять что все работает правильно, все id использующиеся в jQuery или xslt вариантах верные
Название: Re:Способ оплаты в зависимости от способа доставки
Отправлено: Tanya от 13 Октября 2011, 22:54:50
Понятно, я пытаюсь с помощью xslt сделать. Как на этапе выбора способа оплаты узнать, какой способ доставки выбрал покупатель?
Название: Re:Способ оплаты в зависимости от способа доставки
Отправлено: admin от 13 Октября 2011, 23:05:11
попробуй в информации об объекте (текущий заказ в корзине) посмотреть
Название: Re:Способ оплаты в зависимости от способа доставки
Отправлено: Tanya от 13 Октября 2011, 23:27:14
По "udata/emarket/cart"? Посмотрела, в блоке summary выводится стоимость доставки, без id способа доставки :(
Название: Re:Способ оплаты в зависимости от способа доставки
Отправлено: admin от 13 Октября 2011, 23:35:40
когда смотришь /udata/emarket/cart/ в теге udata есть атрибут  id, это id объекта заказа, его можно посмотреть запросом /uobject/id. может в нем появляется информация о доставке после шага выбора варианта доставки
Название: Re:Способ оплаты в зависимости от способа доставки
Отправлено: Tanya от 13 Октября 2011, 23:54:13
Есть, спасибо:) Я не знала, что id у udata это id заказа.
В итоге я хочу хранить в способе оплаты те доставки, с которых она доступна. И проверять, входит ли в это множество выбранная покупателем доставка.

И еще есть вопрос по теме. У меня не срабатывают запросы типа "udata/emarket/purchase/delivery/choose". Всегда открывается xml-ответ со stage="delivery" и step="address". Это и на демонстрационном сайте Юми тоже так. Это нормально?)
Название: Re:Способ оплаты в зависимости от способа доставки
Отправлено: admin от 14 Октября 2011, 00:08:00
нормально что он отрывает xml? если вопрос в этом, то да. Протокол udata возвращает  xml, а если вопрос в другом то уточни
Название: Re:Способ оплаты в зависимости от способа доставки
Отправлено: Tanya от 14 Октября 2011, 09:13:35
То, что xml возвращает, это понятно...) Вопрос в том, почему  stage="delivery" и step="address". По документации  на запрос "udata://emarket/purchase/delivery/choose" должен быть такой ответ:

<udata module="emarket" method="purchase" generation-time="0.472375">
  <purchasing stage="delivery" step="choose">
    <items>
      <item id="27255" name="Самовывоз" xlink:href="uobject://27255"/>
      <item id="27234" name="Тестовая доставка" xlink:href="uobject://27234"/>
    </items>
  </purchasing>
</udata>

А у меня вместо него выходит такой:

<udata module="emarket" method="purchase" generation-time="0.336794">
  <purchasing stage="delivery" step="address" type-id="803" xlink:href="udata://data/getCreateForm/803">
    <items>
      <item id="27619" name="Address for customer #2324"/>
    </items>
  </purchasing>
</udata>

То же самое при запросе "udata://emarket/purchase/payment/choose" и просто "udata://emarket/purchase". На любой стадии покупки.
 
Название: Re:Способ оплаты в зависимости от способа доставки
Отправлено: admin от 14 Октября 2011, 09:50:11
скорее всего то о чем ты говоришь, из -за того что он подгружает тебе первый шаг, а первый шав в системе по умолчанию stage="delivery" step="address"

попробуй сделать тоже самое неавторизованным  пользователем и скорее всего у тебя выйдет шаг required
Название: Re:Способ оплаты в зависимости от способа доставки
Отправлено: Tanya от 14 Октября 2011, 10:06:08
Да, он всегда показывает первый шаг, вне зависимости от того, на каком сейчас находится покупатель, И я не могу посмотреть правильный ответ на запрос "udata://emarket/purchase/delivery/choose". В частности, то же самое происходит и на демо-сайте Юми.
Название: Re:Способ оплаты в зависимости от способа доставки
Отправлено: admin от 14 Октября 2011, 10:11:57
тогда предположу что правильно содержимое шага, можно посмотреть только на самом шаге (ну или типа того), вставь в шаблон нужного тебе шага такую строчку

<textarea COLS="60" ROWS="30"><xsl:copy-of select="." /></textarea>

и на нужном тебе шаге отобразятся все теги с атрибутами xml файла, с которым ты работаешь
Название: Re:Способ оплаты в зависимости от способа доставки
Отправлено: Exorcist от 18 Ноября 2011, 03:47:54
Тоже пробую сделать взаимосвязанные списки.
Попробую для начала на xslt шаблонах, потом бы лучше сделать программно с данными из sql
Название: Re:Способ оплаты в зависимости от способа доставки
Отправлено: Exorcist от 18 Ноября 2011, 04:14:11
Давай-те попробуем сделать все вместе.
Вот результат запроса
<textarea COLS="60" ROWS="30"><xsl:copy-of select="." /></textarea>
на шаге http://www.mysite.ru/emarket/purchase/delivery/choose/

<purchasing stage="delivery" step="choose">
    <items>
      <item id="897" name="Курьерская доставка по Владивостоку - бесплатно" price="0" xlink:href="uobject://897"></item>
      <item id="898" name="Почта России - бесплатно" price="0" xlink:href="uobject://898" active="active"></item>
      <item id="899" name="EMS Почта России - 590 руб." price="0" xlink:href="uobject://899"></item>
    </items>
  </purchasing>

И так как мне на шаге
http://www.mysite.ru/emarket/purchase/payment/choose/
вписать в шаблоне вывод определенных
методов от выбранного метода доставки в шаблонизаторе  xslt
.
P.S.Все Id доставки или оплаты можно брать прямо из Админки в соотвующем разделе редактирования.

Название: Re:Способ оплаты в зависимости от способа до&
Отправлено: Exorcist от 14 Декабря 2011, 05:52:08
Молчок. Подскажите как выбрать в шаблон мне айди доставки ?
Пробую так но что то не хватает( но order_id верный достал )
<xsl:variable name="id_order" select="document('udata://emarket/cart')/udata/@id" />
<xsl:variable name="id_delivery" select="document(concat('uobject://', $id_order ,'.delivery_id'))//value/item/@id" />


во Я молодцом.
<xsl:variable name="id_order" select="document('udata://emarket/cart')/udata/@id" />
<xsl:variable name="id_delivery" select="document(concat('uobject://', $id_order ,'.delivery_id'))/udata/property/value/item/@id" />
Теперь обычные условия и круто
Название: Re:Способ оплаты в зависимости от способа доставки
Отправлено: admin от 14 Декабря 2011, 08:30:25
долго рассказывать, решил показать - http://youtu.be/YwjxHEDWMQU

P.S. Фоновый звук, при загрузке на youtube превратился в жужжание коллайдера)