Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Вывести сумму заказа на странице "Заказ поступил в обработку"

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

Ответов: 2
Просмотров: 3811
Последний ответ 07 Ноября 2014, 23:46:49
от Axiomateria
Перенаправление на страницу регистрации покупателя перед оформлением заказа

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

Ответов: 16
Просмотров: 10106
Последний ответ 11 Марта 2013, 11:54:29
от Axiomateria
Проблемы уведомления клиента при смене статуса заказа и доставки

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

Ответов: 7
Просмотров: 4311
Последний ответ 05 Января 2016, 00:59:01
от admin
Не суммировать скидку на товар с общей скидкой от суммы заказа

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

Ответов: 3
Просмотров: 2663
Последний ответ 19 Декабря 2016, 12:29:09
от aghigay
статус заказа - с отображением цветом в списке заказов

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

Ответов: 0
Просмотров: 2397
Последний ответ 10 Ноября 2011, 16:01:14
от kroxa

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

*

shoto

  • ***
  • 235
  • +4/-0
    • Просмотр профиля
Re:Оформление заказа за один шаг.
« Ответ #45 : 17 Июля 2012, 15:35:55 »
//сохранение адреса доставки
  if($deliveryId != 18979) {
есть, просто у меня ID другой у этого значения.

*

okolovas

  • *
  • 13
  • +0/-0
    • Просмотр профиля
    • okolovas.net
Re:Оформление заказа за один шаг.
« Ответ #46 : 24 Июля 2012, 13:18:19 »
Вроде всё сделала по статье, но на последнем шаге происходит редирект на
emarket/purchase/payment/{$paymentName}
и заказ так и не создаётся... Помогите, пожалуйста, разобраться, в чём может быть причина...

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Оформление заказа за один шаг.
« Ответ #47 : 24 Июля 2012, 19:43:42 »
Цитировать
Вроде всё сделала по статье, но на последнем шаге происходит редирект на
emarket/purchase/payment/{$paymentName}

у вас какие-то способы оплаты в админке?

*

okolovas

  • *
  • 13
  • +0/-0
    • Просмотр профиля
    • okolovas.net
Re:Оформление заказа за один шаг.
« Ответ #48 : 02 Августа 2012, 14:10:48 »
у вас какие-то способы оплаты в админке?

Курьеру наличными и безнал для юр. лиц - оба имеют тип оплаты "Курьеру при получении".
Большое спасибо за отклик! Устранила проблему, хотя причину её так и не поняла)))

А где происходит отправка письма пользователю, о том что он сделал заказ? Пробую сделать это своими силами в функции saveinfo, но почему-то не получается вытащить email из только что сохранённого адреса доставки:

$addressId  = $collection->addObject("Address for customer #".$customer->id, $typeId);
$address = umiObjectsCollection::getInstance()->getObject($addressId);
$em = $address->getValue( 'email' );

$em пуст. Что неправильно делаю?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Оформление заказа за один шаг.
« Ответ #49 : 03 Августа 2012, 22:04:19 »
$addressId  = $collection->addObject("Address for customer #".$customer->id, $typeId); //добавляет новый объект для сохранения адреса
$address = umiObjectsCollection::getInstance()->getObject($addressId); // получаете объект нового адреса
$em = $address->getValue( 'email' ); // пытаетесь получить email

а сохранения в новосозданный объект всей информации (в том числе email) , после чего их можно будет вытягивать прописанно в  строчках:

    $dataModule = $cmsController->getModule("data");
    if($dataModule) {
      $dataModule->saveEditedObject($addressId, true, true);
    }

НО, это отвечая на ваш вопрос в чем ошибка, а говоря о том, чтобы отправить письмо пользователю при совершении заказа лучше смотреть в сторону обработчика события "оформление заказа" к которому вы можете привязаться и выполнить отправку письма. Посмотрите статью на wiki об отправке письма при оформлении Отправка писем менеджерам в зависимости от домена(там немного для другого это рассказывается, но все что вам надо там есть)

*

okolovas

  • *
  • 13
  • +0/-0
    • Просмотр профиля
    • okolovas.net
Re:Оформление заказа за один шаг.
« Ответ #50 : 07 Августа 2012, 19:01:38 »
Спасибо большое! Всё получилось, письма отправляются.

*

shoto

  • ***
  • 235
  • +4/-0
    • Просмотр профиля
Re:Оформление заказа за один шаг.
« Ответ #51 : 08 Августа 2012, 15:56:16 »
а у меня проблема так и не решена.:(

*

shoto

  • ***
  • 235
  • +4/-0
    • Просмотр профиля
Re:Оформление заказа за один шаг.
« Ответ #52 : 19 Сентября 2012, 13:47:34 »
Возвращаемся к старым баранам:(
1)Персональные данные - если не заполняешь какое то поле, если оно обязательное, автоматически выделяется поле и пишется "поле должно быть заполнено"
Но если идти дальше заполнять и не заполнить например поле в следующем блоке Контакты, куда выводятся е-маил и телефон, то почему то подсказка не появляется, но после нажатия "Отправить заказ" форма очищается, а адрес страницы имеет вид:
http://my_site.ru/emarket/fast_purchasing_xslt/?_err=1348046537
« Последнее редактирование: 27 Сентября 2012, 14:00:02 от shoto »

*

okolovas

  • *
  • 13
  • +0/-0
    • Просмотр профиля
    • okolovas.net
Re:Оформление заказа за один шаг.
« Ответ #53 : 28 Сентября 2012, 18:34:51 »
Тоже сейчас бьюсь с тем, что при ошибочном заполнении поля формы очищаются. Теоретически вот:
http://wiki.umisoft.ru/Использование_GET_и_POST_параметров_в_XSLT-шаблонах
Но дело в том, что происходит редирект и страницу с ошибкой пользователь запрашивает уже не по методу POST. Может уже есть какой-то готовый способ? Пока единственное, что пришло в голову - сохранять данные REQUEST в сессию в ф-ции saveinfo до строчки
if($dataModule) {
$dataModule->saveEditedObject($addressId, true, true);
}
И затем в шаблоне запрашивать их уже из сессии. Подскажите плз, правильное ли направление мысли?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Оформление заказа за один шаг.
« Ответ #54 : 29 Сентября 2012, 00:07:52 »
вообще в umi есть дефолтный механизм сохранение значения полей формы в сессию, главное чтобы форма имела id, любой, и onsubmit событие

например так
<form action="some_action" onsubmit="site.forms.data.save(this); return site.forms.data.check(this);" id="some_id" method="post" enctype="multipart/form-data">

и чтобы файл /js/site/__common.js был подключен, так как он подтягивает файл /js/site/forms.js в котором этот функционал и есть

*

okolovas

  • *
  • 13
  • +0/-0
    • Просмотр профиля
    • okolovas.net

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Оформление заказа за один шаг.
« Ответ #56 : 01 Октября 2012, 13:06:05 »
добавлю только, что насколько мне известно, вариант в вики использует более старый вариант js скрипта,  чем скрипты из папки /js/site/

*

okolovas

  • *
  • 13
  • +0/-0
    • Просмотр профиля
    • okolovas.net
Re:Оформление заказа за один шаг.
« Ответ #57 : 09 Октября 2012, 13:29:35 »
Ещё остался вопросик... Подскажите, пожалуйста, как правильно вытащить $order->number чтобы подставить его в письмо пользователю? Почему-то $order->id есть, а $order->number пуст... Пробовала делать и так:

$full_order = umiObjectsCollection::getInstance()->getObject($order->id);

но $full_order->number тоже пуст, как с ним правильно работать?

*

ktoxot

  • *
  • 2
  • +0/-0
    • Просмотр профиля
Re:Оформление заказа за один шаг.
« Ответ #58 : 09 Октября 2012, 17:41:31 »
Для тех у кого не отправляются письма и все зависает на  этапе
"emarket/purchase/payment/{$paymentName}"

Не забываем про вот этот шаг в шаблоне:

<xsl:template match="result[@method = 'purchase']">
<div id="cart">

<xsl:apply-templates select="document('udata://emarket/purchase')/udata" />
</div>
</xsl:template>

<xsl:template match="purchasing[@stage = 'result'][@step = 'successful']">

<h1>Спасибо за Ваш заказ!</h1>
</xsl:template>

*

okolovas

  • *
  • 13
  • +0/-0
    • Просмотр профиля
    • okolovas.net
Re:Оформление заказа за один шаг.
« Ответ #59 : 10 Октября 2012, 17:35:10 »
Если кому-то пригодится, удалось обойти проблему с $order->number только переместив отправку письма в функцию
public function onStatusChangedDomain(iUmiEventPoint $event) {