Перейти к содержимому


Фотография
- - - - -

Страница спасибо за покупку


Лучший Ответ SmetDenis , 26 December 2013 - 13:25

Да я это уже сделал (даже не затронув ядро), но как мне в материалле получить ID заказа? В материал вывожу модуль, и вот в нем пытаюсь из сессии выдернуть, но не получается, может подскажете как?

Каким образом ID заказа попадет в сессиию? Нужно сначала сохранить его туда.


Тогда уж в контроллере корзины напишите после создания заказа
$this->app->jbsession->set('last_order_id', $item->id, 'order');
В вашем шаблоне (видимо модуля или страницы "спасибо")
$orderId = App::getInstance('zoo')->jbsession->get('last_order_id', 'order');
Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 16

#11 promo

promo

Отправлено 26 December 2013 - 13:00

PS Добавлю опцию в корзину, чтобы можно было указывать произвольную страницу для успешного и неудачного заказа. Появится в 2.1.2

 

 

Тут дело в том что /renderer/payment_sucess/_default.php

вообще не затрагивается, потому что у меня "ЗАКАЗ БЕЗ ОПЛАТЫ" и никакого mayment т.е платежа нет.

 

Все заканчивается в файле 

media/zoo/applications/jbuniversal/templates/catalog/basket.php

 

Вод код из него: 

if (!empty($this->items)) {

    // items
    echo $this->app->jblayout->render('basket', $this->items);

    if ((int)$this->params->get('global.jbzoo_cart_config.auth', 0) && !$user->id) {
        $this->app->jbnotify->warning(JText::_('JBZOO_CART_NOT_AUTH'));

    } else if (!empty($this->items)) {
        echo $this->app->jblayout->render('basketform', $this->items);

    }


} else {
	
    echo '<p>' . JText::_('JBZOO_CART_ITEMS_NOT_FOUND') . '</p>';
}

$this->app->jbwrapper->end();
$this->app->jbdebug->mark('template::basket::finish');

Просто выводится сообщение из JBZOO_CART_ITEMS_NOT_FOUND т.к выполняется условие что корзина пустая.

 

Вам нужно доработать момент именно с "ЗАКАЗ БЕЗ ОПЛАТЫ", чтобы перекидывало на страницу с шаблоном из папки /renderer/ в котором бы были доступны данные о заказе (его ID, сумме, кол-ве товара и прочей информации).

 

Вот это было бы круто!


Сообщение отредактировал promo: 26 December 2013 - 13:04

  • 0

#12 promo

promo

Отправлено 26 December 2013 - 13:12

Сейчас пытаюсь выдернуть ID заказа из сессии, но почему то не получается.

 

Сессию получаю так:


$session =& JFactory::getSession();

$db	=& JFactory::getDBO();
$query = 'SELECT * FROM #__session WHERE '.$db->qn('session_id') . ' = ' . $db->q($session->getId()).'';
$db->setQuery( $query ); 
if(!$db->query()){echo $db->stderr(); return false;} 
$rows = $db->loadAssoc();

print_r($rows['data']);

echo '<br/>';
echo '<br/>';
echo '<br/>';

$cartSession = $session->get('JBZOO_SUBMISSION_FORM_1');

echo '<br/>';
echo '<br/>';
echo '<br/>';

print_r($cartSession);

В $rows['data'] вот такое сидит:

__default|a:10:{s:15:"session.counter";i:121;s:19:"session.timer.start";i:1388051024;s:18:"session.timer.last";i:1388058066;s:17:"session.timer.now";i:1388058084;s:24:"session.client.forwarded";s:11:"94.178.13.5";s:22:"session.client.browser";s:108:"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36";s:8:"registry";O:9:"JRegistry":1:{s:7:"\0\0\0data";O:8:"stdClass":4:{s:5:"users";O:8:"stdClass":1:{s:5:"login";O:8:"stdClass":1:{s:4:"form";O:8:"stdClass":2:{s:4:"data";a:0:{}s:6:"return";s:39:"index.php?option=com_users&amp;view=profile";}}}s:13:"rememberLogin";b:1;s:23:"JBZOO_SUBMISSION_FORM_1";N;s:11:"com_content";O:8:"stdClass":1:{s:4:"edit";O:8:"stdClass":1:{s:7:"article";O:8:"stdClass":2:{s:2:"id";a:1:{i:0;i:1;}s:4:"data";N;}}}}}s:4:"user";O:5:"JUser":27:{s:9:"\0\0\0isRoot";b:1;s:2:"id";s:3:"757";s:4:"name";s:10:"Super User";s:8:"username";s:5:"admin";s:5:"email";s:17:"pro1@time2sell.ru";s:8:"password";s:60:"$2y$10$B0LjM75/w7trMVluPdp9rO5fZGcp1eLtTHTasfKJ/QLPPneBVJao.";s:14:"password_clear";s:0:"";s:5:"block";s:1:"0";s:9:"sendEmail";s:1:"1";s:12:"registerDate";s:19:"2013-12-18 12:18:12";s:13:"lastvisitDate";s:19:"2013-12-25 10:43:25";s:10:"activation";s:1:"0";s:6:"params";s:2:"{}";s:6:"groups";a:1:{i:8;s:1:"8";}s:5:"guest";i:0;s:13:"lastResetTime";s:19:"0000-00-00 00:00:00";s:10:"resetCount";s:1:"0";s:10:"\0\0\0_params";O:9:"JRegistry":1:{s:7:"\0\0\0data";O:8:"stdClass":0:{}}s:14:"\0\0\0_authGroups";a:2:{i:0;i:1;i:1;i:8;}s:14:"\0\0\0_authLevels";a:5:{i:0;i:1;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:6;}s:15:"\0\0\0_authActions";N;s:12:"\0\0\0_errorMsg";N;s:10:"\0\0\0_errors";a:1:{i:0;s:28:"User not Super Administrator";}s:3:"aid";i:0;s:6:"otpKey";s:0:"";s:4:"otep";s:0:"";s:10:"superadmin";b:1;}s:13:"session.token";s:32:"aa2fd6b74f3a6428c94ce4aa1c7b745f";s:29:"ZOO_LAST_SUBMISSION_TIMESTAMP";i:1388056011;}__jbzoo|a:1:{s:6:"jbcart";a:1:{s:5:"items";a:0:{}}}__ElementJBBasketItems|a:2:{s:45:"items-21-1af7e792-bcff-4a6c-9bdb-dd5023b0251a";a:3:{s:10:"is_advance";b:1;s:5:"items";a:1:{i:2;a:9:{s:4:"hash";s:1:"2";s:3:"sku";s:1:"2";s:6:"itemId";s:1:"2";s:8:"quantity";i:1;s:5:"price";d:117785;s:8:"currency";s:3:"RUB";s:9:"priceDesc";s:0:"";s:11:"priceParams";a:0:{}s:4:"name";s:30:"Мотоцикл YAMAXA YZF-R1";}}s:10:"order_info";a:0:{}}s:45:"items-22-1af7e792-bcff-4a6c-9bdb-dd5023b0251a";a:3:{s:10:"is_advance";b:1;s:5:"items";a:1:{i:11;a:9:{s:4:"hash";s:2:"11";s:3:"sku";s:1:"2";s:6:"itemId";s:2:"11";s:8:"quantity";i:1;s:5:"price";d:87733;s:8:"currency";s:3:"RUB";s:9:"priceDesc";s:0:"";s:11:"priceParams";a:0:{}s:4:"name";s:17:"Скутер URAL";}}s:10:"order_info";a:0:{}}}

т.е есть JBZOO_SUBMISSION_FORM_1 но почему то его данные не могу получить так: 

$cartSession = $session->get('JBZOO_SUBMISSION_FORM_1');

 

Хотя поидее ведь в этом ключе все данные хранятся...


Сообщение отредактировал promo: 26 December 2013 - 13:13

  • 0

#13 SmetDenis

SmetDenis

Отправлено 26 December 2013 - 13:19

promo, Я вас прекрасно понял.
Вы посмотрели этот топик? http://forum.jbzoo.c...aza/#entry21180
Сейчаc то что вы хотите нет. Пожелание учту.
Пока что можно сделать редирект на произвольную страницу (например сделанную в менеджере материалов или один из материалов Zoo).

Укажите ссылку в функции setRedirect('Ваша ссылка')
20130715-y12-150kb_200x0.jpg

 
Каким образом ID заказа попадет в сессиию?
Зачем вам для этого база данных?

ID можно найти в контроллере, сразу после создания будет доступна переменная $item->id

Место создания
9rb_200x0.png
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#14 promo

promo

Отправлено 26 December 2013 - 13:19

Да я это уже сделал (даже не затронув ядро), но как мне в материалле получить ID заказа? В материал вывожу модуль, и вот в нем пытаюсь из сессии выдернуть, но не получается, может подскажете как?


  • 0

#15 SmetDenis

SmetDenis

Отправлено 26 December 2013 - 13:25   Лучший Ответ

Да я это уже сделал (даже не затронув ядро), но как мне в материалле получить ID заказа? В материал вывожу модуль, и вот в нем пытаюсь из сессии выдернуть, но не получается, может подскажете как?

Каким образом ID заказа попадет в сессиию? Нужно сначала сохранить его туда.


Тогда уж в контроллере корзины напишите после создания заказа
$this->app->jbsession->set('last_order_id', $item->id, 'order');
В вашем шаблоне (видимо модуля или страницы "спасибо")
$orderId = App::getInstance('zoo')->jbsession->get('last_order_id', 'order');

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#16 promo

promo

Отправлено 26 December 2013 - 13:30

Каким образом ID заказа попадет в сессиию? Нужно сначала сохранить его туда.


Тогда уж в контроллере корзины напишите после создания заказа

$this->app->jbsession->set('last_order_id', $item->id, 'order');
В вашем шаблоне (видимо модуля или страницы "спасибо")
$orderId = App::getInstance('zoo')->jbsession->get('last_order_id', 'order');

 

Супер!!! А сможете в новой версии в сессию сохранять ID заказа? Это было бы очень к стати (как в виртуемарте).

 

И еще сразу вопрос, как теперь этот last_order_id добавить в письмо пользователю и администратору, чтобы менеджеры и клиент могли как то ориентироватся после того как будут к примеру созваниватся или человек прийдет в магазин для оплаты наличными.


  • 0

#17 promo

promo

Отправлено 26 December 2013 - 13:51

Получилось то что надо!!! Спасибо!!!
 
Теперь если пользователь просто попадает на страницу с модулем который выводит ID заказа, без предварительного заказа, то редиректим его на страницу с корзиной где он видет "Ваша корзина пуста", а если он сделал перед этим заказ то он видит страничку dc15298d12af.jpg

Прикрепленные файлы


Сообщение отредактировал SmetDenis: 26 December 2013 - 14:14
По просьбе, добавил архив с исправленным вариантом работы заказа без оплаты

  • 1




Click to return to top of page in style!