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

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

Ответов: 3
Просмотров: 4054
Последний ответ 08 Апреля 2011, 15:08:52
от admin
Настройка шаблона письма уведомления о заказе (emarket) XSLT

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

Ответов: 37
Просмотров: 11175
Последний ответ 12 Сентября 2016, 07:57:36
от admin
Уведомление менеджеру о заказе со всеми данными

Автор krestxРаздел Разработка модулей

Ответов: 1
Просмотров: 3332
Последний ответ 21 Сентября 2012, 23:09:29
от admin
Печать скидки в заказе (Версия для печати)

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

Ответов: 1
Просмотров: 2110
Последний ответ 23 Марта 2014, 23:59:14
от admin
Вывод артикула товара в заказе (админка)

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

Ответов: 3
Просмотров: 3390
Последний ответ 25 Августа 2015, 13:42:50
от darklight

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

*

arbuzzz

  • **
  • 80
  • +1/-0
    • Просмотр профиля
Информация в письме при заказе.
« : 06 Ноября 2012, 10:24:04 »
Все перепробовал и что-то нифига у меня не получается.

Как в письмо, приходящее покупателю, добавить информацию о самом покупателе, способе доставки и адресе доставки, если таковой есть?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Информация в письме при заказе.
« Ответ #1 : 07 Ноября 2012, 08:24:04 »
а что именно не получается? письмо не приходит, приходит, но вы не знаете где редактировать шаблон? не знаете как отредактировать шаблон? или свой вариант?

*

arbuzzz

  • **
  • 80
  • +1/-0
    • Просмотр профиля
Re:Информация в письме при заказе.
« Ответ #2 : 07 Ноября 2012, 22:53:12 »
Письмо приходит,но в нем нет полной информации о заказе.
ФИО покупателя, адрес доставки и пр. Причем этого нет ни для пользователя, ни для гостя.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Информация в письме при заказе.
« Ответ #3 : 08 Ноября 2012, 05:37:12 »
а вы что-то пробовали уже делать чтобы вывести эту информацию?

P.S. опишите подробнее вашу ситуацию, что делали?, что ожидали получить?, что получили?, что вызывает вопрос?...

P.P.S. например такое решение Добавление информации о заказе в письмо-уведомление, оно для xslt, но где-то есть такое же для tpl. Суть одна и та же, вывод доп информации через макрос emarket order, а id текущего заказа вы знаете %order_id%

*

arbuzzz

  • **
  • 80
  • +1/-0
    • Просмотр профиля
Re:Информация в письме при заказе.
« Ответ #4 : 08 Ноября 2012, 15:55:10 »
order выводит только товары/цены. Никакой информации о покупателе и доставке он не дает.  Я пробовал через кастом вытащить эти данные используя id заказа, но никак не могу понять как и какие объекты надо задействовать.

Я хочу получить письомо вида:
==========================
Здравствуйте <имя покупателя>
Номер заказа Вашего <номер заказа>
<товары в заказе>
<Способ доставки>
<Адрес, если был>

Спасибо, что выбрали наш магазин Бла бла бла.
=======================================

С товарными позициями и и ценами вопросов нет.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Информация в письме при заказе.
« Ответ #5 : 08 Ноября 2012, 19:12:34 »
через order_id можно обратиться к полю объекту order, в нем есть поле customer_id через которое можно обратиться к объекту пользователь из которого можно вытянуть имя, фамилию и т.д

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Информация в письме при заказе.
« Ответ #6 : 08 Ноября 2012, 19:13:12 »
все это используя макросы %emarket order()%  и  %data getPropertyOfObject()%

*

arbuzzz

  • **
  • 80
  • +1/-0
    • Просмотр профиля
Re:Информация в письме при заказе.
« Ответ #7 : 08 Ноября 2012, 19:16:44 »
все это используя макросы %emarket order()%  и  %data getPropertyOfObject()%
Не получается так, пробовал. Сейчас не могу проверить, но по крайней мере для гостя точно не выходит получить контактные данные. Либо я что-то конкретно наптуал.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Информация в письме при заказе.
« Ответ #8 : 10 Ноября 2012, 11:33:35 »
не забывайте, что у гостя данные сохраняются в другой тип данных "незарегистрированный пользователь" , при оформлении заказа и там название некоторых полей отличается от типа данных "пользователь"

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
Re:Информация в письме при заказе.
« Ответ #9 : 12 Марта 2013, 22:21:14 »
Помогите разобраться.
Находясь в корзине, нажимаем кнопку "Оформить заказ"
Попадаем на страницу выбора адреса доставки.
На этой странице заполняю форму,  город улица дом комментарий.
Поля mail не было, в разделе шаблон данных добавил его,
идентификатор его "email", что нужно сделать чтобы пользователю приходило уведомление о заказе?


*

arbuzzz

  • **
  • 80
  • +1/-0
    • Просмотр профиля
Re:Информация в письме при заказе.
« Ответ #10 : 12 Марта 2013, 22:46:58 »
Помогите разобраться.
Находясь в корзине, нажимаем кнопку "Оформить заказ"
Попадаем на страницу выбора адреса доставки.
На этой странице заполняю форму,  город улица дом комментарий.
Поля mail не было, в разделе шаблон данных добавил его,
идентификатор его "email", что нужно сделать чтобы пользователю приходило уведомление о заказе?

Поле email относится не к адресу, а к пользователю. Соответственно и появляется оно не при заполнении адресных данных, а

1) При регистрации
2) При вводе данных покупателя (для гостя во время оформления заказа)

И оповещение отправляется на email. Так что Вы немного перемудрили.

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
Re:Информация в письме при заказе.
« Ответ #11 : 12 Марта 2013, 23:45:24 »
1) А если регистрация на сайте отсутствует.
2) И у меня заказ оформляется в один этап.
Как-нибудь можно прикрутить уведомление?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Информация в письме при заказе.
« Ответ #12 : 13 Марта 2013, 10:06:29 »
1) А если регистрация на сайте отсутствует.
2) И у меня заказ оформляется в один этап.
Как-нибудь можно прикрутить уведомление?

1. если регистрации нет значит пользователь оформляет заказ как незарегистрированный пользователь и вводит свои данные на первом шаге оформления заказа (если он уже вводил эти данные то они сохраняются и повторно могут не спрашиваться, там по моему по кукам идет определение, точно не скажу, попробуйте оформить заказ в другом в другом браузере, где вы еще не оформляли)
2. если у вас идет оформление в один шаг, то вы наверняка пользуетесь кастомным скриптом для оформления в один шаг... так что сказать что и где у вас надо поменять это задача сопряжена с тем чтобы вначале разобраться что и как у вас работает сейчас....

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
Re:Информация в письме при заказе.
« Ответ #13 : 13 Марта 2013, 13:39:58 »
1. Если авторизоваться в админке  site.ru/admin, там у меня есть mail
и уведомление при заказе приходит (Ваш заказ #19 поступил в обработку ).  Попробовал в другом браузере и в другом, шаги одинаковые как у зарегистрированного и незарегистрированного, положили товар в корзину, нажимаем оформить заказ и появляется страница с формой "Новый адрес доставки", заполнив поля нажимаем кнопку "отправить" и на след странице спасибо за заказ.

а) Находясь в корзине используется макрос %emarket cart('default')%
Как я понимаю он использует шаблон /tpls/emarket/default.tpl

б) Далее на странице адреса http://site.ru/emarket/purchase/
используется макрос %emarket purchase_check(3)%
Дальше не понимаю, и макрос получается не родной.

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
Re:Информация в письме при заказе.
« Ответ #14 : 13 Марта 2013, 15:57:32 »
Нашел этот кастомный макрос тут
classes/modules/emarket/__custom.php
Он гигантский, и мне в нем работать надо, чтобы добавить e-mail?
Может где попроще?
public function purchase_check($step=1) {

$debug = false;

$users_inst = cmsController::getInstance()->getModule("users");

if($users_inst->is_auth()) {  // проверка на авторизацию пользователя..
$user_id = macros_current_user_id();
//emarket::purchase();
//return 'Пользователь';
}

//emarket::purchase();
$order = $this->getBasketOrder();
if($order instanceof order) {
$order_is_empty = true;
$orderItems = $order->getItems();
foreach($orderItems as $orderItem) {
$element = $orderItem->getItemElement();
if($element instanceof umiHierarchyElement) {
$order_is_empty = false;
$c++;
}
}

if($order->isEmpty() or $order_is_empty) {
//$this->errorNewMessage('Корзина пуста<BR>');
//$this->errorPanic();
return '<B COLOR="red">Корзина пуста</B>';
}
//return $this->purchase();

if ($step == 1) {   // вывести доступные способы оплаты
if ($debug) $s.= $step.' шаг ';
$s.= $this->renderPaymentsList2($order, 'default_2');
}
if ($step == 2) { // способ оплаты выбран
//$url = "{$this->pre_lang}/emarket/purchase/";
//$this->redirect($url);
if ($debug) $s.= $step.' шаг ';
$s.= $this->choosePayment2($order).$c.' '.$order->getCustomerId(). ' '. $user_id;
}
if ($step == 3) {  // вывести форму для ввода адреса доставки
$payment_id = $order->getValue('payment_id');  // проанализировать ,какой метод оплаты выбрал клиент?
if($payment_id)
$payment = payment::get($payment_id, $order);

if($payment instanceof payment) {
$paymentName = $payment->getCodeName();
if (in_array($paymentName, array('chronopay', 'payonline')) and (!$users_inst->is_auth())) {
$s = 'Данный вид платежа доступен только зарегистрированным пользователям<BR>'.users::login();
if (getServer('HTTP_REFERER')) {
$this->errorNewMessage($s);
$this->errorPanic();
}
else
$this->redirect('/purchase/payment/');
//$s_ref_url = getServer('HTTP_REFERER');
//$this->redirect($s_ref_url);
//if(isset($_SERVER['HTTP_REFERER'])) $this->redirect($_SERVER['HTTP_REFERER']);
}
else {
if ($debug) $s.= $step.' шаг ';
$s.= $this->renderDeliveryAddressesList2($order, 'default2');
}
}
else {
//$s =  $step.' шаг '.$this->renderDeliveryAddressesList2($order, 'default2');
// Вид платежа не выбран, вернуть к выбору способа оплаты
$this->redirect('/purchase/payment/');
}
}
if ($step == 4) {  // адрес доставки выбран
if ($debug) $s.= $step.' шаг ';
$s.= $this->chooseDeliveryAddress2($order);
}
if ($step == 5) { // вывести форму выбора способа доставки
//$payment_id = $order->getValue('payment_id');  // проанализировать ,какой метод оплаты выбрал клиент?
//if($payment_id)
// $payment = payment::get($payment_id, $order);

//if($payment instanceof payment) {
if ($debug) $s.= $step.' шаг ';
$s.= $this->renderDeliveryList2($order, 'default2');
//}
//else // Вид платежа не выбран, вернуть к выбору способа оплаты
// $this->redirect('/purchase/payment/');

}
if ($step == 6) { // способ доставки выбран
if ($debug) $s.= $step.' шаг ';
$s.= $this->chooseDelivery2($order);
}
}

//return 'Гость'.var_export($order, true);
//return 'Гость'.$s.' '.$paymentName.'<BR>';
return $s;
}