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


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

В какой момент происходит сохранение оформления заказа?


Лучший Ответ SmetDenis , 12 June 2013 - 19:46

Ответ №1

Сохранение происходит тут

\media\zoo\applications\jbuniversal\framework\controllers\basket.php createOrder()

20130613-68y-27kb_1280x0_200x0.png

 

Я подчеркнул имена событий, к которым можно привязаться.

например saved обрабатывается тут

\media\zoo\applications\jbuniversal\framework\events\jbevent.basket.php

 

О том, как работать с событиями Zoo

http://www.yootheme....sing-zoo-events

 

Можете изменить $item и сохранить его снова.

 

Примерно так можно получить объект информации заказа и его статус

$orderDetails = JBModelOrder::model()->getDetails($item)
$orderDetails->getOrderStatus()

 

 

 

Ответ №2

В случае успеха выполняется строка

$this->orderDetails->callback('paymentCallback', $args);

 

"paymentCallback" - это метод в элементе ElementJBBasketItems

 

 

Ответ №3

Да, можно.

$item->getElement('идентификатор')->data();
Перейти к сообщению


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

#1 werewolfgsm

werewolfgsm

Отправлено 11 June 2013 - 21:18

Добрый вечер.

Делаю магазин подарочных сертификатов.

Сертификаты - это пластиковые карточки, с уникальным напечатанным пин-кодом. Все пинкоды хранятся в базе, в таблице.

Когда клиент заказывает сертификат, то к заказу в текстовое поле "Пин-код сертификата" должен заносится первая в очереди не погашенная карточка.

 

Вопрос #1 в том, в какой файле и в какой момент происходит формирование заказа?

 

В момент формирования я буду обращаться к своей таблице, читать пин-код, помечать его как выданный и присваивать в карточку заказа в поле "Пин-код сертификата" прочитанное значение.

 

Еще мне надо учесть возможность оплаты через платежную систему.

Если поле "Форма оплаты" (заполняется в момент оформления заказа) выбран вариант оплаты через платежку, то Пин-код формируется не в момент сохранения, а в тот момент, когда заказу присвоен статус "success".

 

Вопрос №2 в том, в какой файле и в какой момент происходит сохранение статуса заказа (после вызова paymentCallback из контроллера payment, куда идет функция дальше)?

 

Вопрос №3, можно ли в момент сохранения заказа получить значение поля "Форма оплаты", заполненного пользователем из формы.

 

Заранее спасибо.

 

 


  • 0

#2 SmetDenis

SmetDenis

Отправлено 12 June 2013 - 19:46   Лучший Ответ

Ответ №1

Сохранение происходит тут

\media\zoo\applications\jbuniversal\framework\controllers\basket.php createOrder()

20130613-68y-27kb_1280x0_200x0.png

 

Я подчеркнул имена событий, к которым можно привязаться.

например saved обрабатывается тут

\media\zoo\applications\jbuniversal\framework\events\jbevent.basket.php

 

О том, как работать с событиями Zoo

http://www.yootheme....sing-zoo-events

 

Можете изменить $item и сохранить его снова.

 

Примерно так можно получить объект информации заказа и его статус

$orderDetails = JBModelOrder::model()->getDetails($item)
$orderDetails->getOrderStatus()

 

 

 

Ответ №2

В случае успеха выполняется строка

$this->orderDetails->callback('paymentCallback', $args);

 

"paymentCallback" - это метод в элементе ElementJBBasketItems

 

 

Ответ №3

Да, можно.

$item->getElement('идентификатор')->data();

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



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


#3 werewolfgsm

werewolfgsm

Отправлено 14 June 2013 - 18:40

Можете изменить $item и сохранить его снова.

Простите за скорее всего глупый вопрос, но не могу понять как менять $item'у элемент по его идентификатору, перед сохранением.

Пробовал через массив, как в jbbasketitems, но такой код у меня не сработал:

$item = this->getItem()
$newData['bb041a17-2c1e-492c-9355-cf7d060f2924'] = $myData;

$this->set($id, $newData);

//save item
$this->app->table->item->save($item);

Есть какой-то способ, как getElement('xxx')->data(); только setElement('xxx', $data)?

Заранее спасибо


  • 0

#4 SmetDenis

SmetDenis

Отправлено 14 June 2013 - 22:04


$item->getElement('bb041a17-2c1e-492c-9355-cf7d060f2924')->bindData(array('value' => $value));

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



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





Click to return to top of page in style!