UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: niakriss от 28 Августа 2013, 10:35:15

Название: Оформление заказа
Отправлено: niakriss от 28 Августа 2013, 10:35:15
Здравствуйте. Пытаюсь сделать оформление заказа. Все получается, если пользователь авторизован, но если это гость, то почему то заказ оформляться не хочет. У меня всего один шаг. Только ввод личных данных. При н ажатии на кнопку Заказать, должен переходить на страницу "emarket/purchase/result/successful", но если гость, то остается на странице "emarket/purchase/required/personal/" Почему так может быть?
Заранее благодарю
Название: Re:Оформление заказа
Отправлено: admin от 28 Августа 2013, 12:10:06
стандартные шаблоны? стандартные шаги? доставка и оплата отключены?

под стандартными я подразумеваю demodizzy или свой вариант?
Название: Re:Оформление заказа
Отправлено: niakriss от 28 Августа 2013, 12:17:45
Все свое... все галочки кроме "Выводить самовывоз на странице адреса" отключены.
Название: Re:Оформление заказа
Отправлено: admin от 28 Августа 2013, 12:55:58
тогда я бы начал с поиска проблемы в том куда отправляет форма для заполнения личных данных незареганного пользователя? что там с ней происходит? сохраняется ли данные о незареганном пользователе (посмотреть можно через udata/emarket/cart/ в узле customer)
Название: Re:Оформление заказа
Отправлено: niakriss от 28 Августа 2013, 13:17:41
у меня при отправке заказа почему то выдает в url emarket/purchase/result/choose/
и еще почему то не могу просмотреть xml udata://emarket/purchase например... он перенаправляет сразу на http://my_sait.ru/emarket/purchase и никакого xml нет
еще попутно вопрос возник... Как передать в заказ дополнительные поля... кроме имени, телефона, почты и т.д. Например мне надо еще текстовое поле с сообщением и файл передать. Возможно ли это?
Название: Re:Оформление заказа
Отправлено: admin от 28 Августа 2013, 13:27:42
у меня при отправке заказа почему то выдает в url emarket/purchase/result/choose/
видимо у вас не отключен шаг доставки и система пытается его пройти

и еще почему то не могу просмотреть xml udata://emarket/purchase например... он перенаправляет сразу на http://my_sait.ru/emarket/purchase и никакого xml нет
пененаправляет конечно и сразу загружает шаблон соответствующего шага (см. тут ~/templates/~/xslt/modules/emarket/purchase.xsl или в папке ~/templates/~/xslt/modules/emarket/purchase  )

еще попутно вопрос возник... Как передать в заказ дополнительные поля... кроме имени, телефона, почты и т.д. Например мне надо еще текстовое поле с сообщением и файл передать. Возможно ли это?
Да, возможно. Смотрите по образу и подобию поля комментарий в Добавление комментария при оформлении заказа (http://wiki.umisoft.ru/%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D1%8F_%D0%BF%D1%80%D0%B8_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0)
Название: Re:Оформление заказа
Отправлено: niakriss от 28 Августа 2013, 14:13:49
спасибо... вот с комментарием получилось.. а с файлом как-то неочень((( может можно только текст?
Название: Re:Оформление заказа
Отправлено: admin от 28 Августа 2013, 15:37:35
не тестировал, но уверен что и файл корректно присоединится, там надо только присоединять файлы через umi api

вот например как в umi сохраняется форма с прикрепленным полем типа файл:
....
case "file": {
$destination_folder = "./files/" . ((is_dir("./files/".$fldr_name))? $fldr_name : '');


if($value = umiFile::upload("data", $field_name, $destination_folder, $key)) {
$field_value = $value;
} else {
$oldvalue = $object->getValue($field_name);
if ($oldvalue) {
$destination_folder = $oldvalue->getDirName() . "/";
}
$file_name = (substr($field_value, 0, 2) == "./") ? $field_value : ($destination_folder . $field_value);
$field_value = new umiFile($file_name);
}

break;
}
.....
$object->setValue($field_name, $field_value);
$object->commit();
Название: Re:Оформление заказа
Отправлено: niakriss от 30 Августа 2013, 10:07:20
оказалось все очень просто... в форме задала имя инпуту data[new][file]
где file  это имя поля в типе данных Заказ.
далее в кастоме прописала:

$file = umiFile::upload('data','file','./files','new');
$file_path = $file -> getFilePath();
$order->file= $file_path;