Хук перед добавлением заказа в БД

#
Хук перед добавлением заказа в БД
Привет всем.

Помогите с хуком, мне кажется я просто до конца систему не понимаю.


в bootstrap.php //событие онБефореАдд нашел в Core_ORM
Core_Event::attach('Shop_Order.onBeforeAdd', array('Shop_Order_Observer', 'onBeforeAdd'));


В /modules/shop/order/observer.php

<?php
class Shop_Order_Observer
{
    static public function onBeforeAdd($object, $args)
    {
        echo $object;
        die();
    }
}

ArpaWeb
Модератор
#
Re: Хук перед добавлением заказа в БД
ArpaWeb,

Поясните, пожалуйста, задачу более подробно. Собственно какая цель стоит? Что вы хотите сделать при помощи хука?
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
Модератор
#
Re: Хук перед добавлением заказа в БД
Событие должно быть после оформления заказа на сайте?
#
Re: Хук перед добавлением заказа в БД
Планирую добавить услугу по установки оборудования, если галачка отмечена была. ТО есть как напримерн доставка почтой добавляется в корзину, свободным товар.  

Да и вообще охото понять правильно ли я с хуками начал работать
ArpaWeb
Модератор
#
Re: Хук перед добавлением заказа в БД
Как-то так тогда:

class Shop_Order_Observer
{
    static public function onAfterProcessOrder($object, $args)
    {
      $oShop_Order = $object->getShopOrder(); //$oShop_Order

      // Создаем товар заказа
      $oShop_Order_Item = Core_Entity::factory('Shop_Order_Item');
      $oShop_Order_Item->name = 'Установка оборудования';
      $oShop_Order_Item->quantity = 1;
      $oShop_Order_Item->price = 200;
      $oShop_Order_Item->type = 0;

      // Добавляем в заказ
      $oShop_Order->add($oShop_Order_Item);
    }
}

Core_Event::attach('Shop_Payment_System_Handler.onAfterProcessOrder', array('Shop_Order_Observer', 'onAfterProcessOrder'));
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
#
Re: Хук перед добавлением заказа в БД
И последний вопрос.
onAfterProcessOrder - как понять что имено это событие надо вставлять?
Я находил в Core_ORM свое событие, во вставке значения.
ArpaWeb
Модератор
#
Re: Хук перед добавлением заказа в БД
ArpaWeb,
Для этого нужно понимать процесс оформления заказа. В данном случае событие ORM вам ничем не поможет. После onBeforeAdd с заказом может происходить множество манипуляций, после которых он будет сохранен, далее к нему будут добавлены заказанные товары. И уже после этого сработает событие Shop_Payment_System_Handler.onAfterProcessOrder, которое позволит добавить доп. данные в состав заказанных товаров.
#
Re: Хук перед добавлением заказа в БД
Все получилось, заказы добавляются.... а вот я думал еще в финальные уведомления этот товар добавиться. а пусто. Может есть еще какое-то событие, чтобы по раньше товар добавлялся к заказу?
ArpaWeb
Модератор
#
Re: Хук перед добавлением заказа в БД
ArpaWeb,
напишите в поддержку со ссылкой на тему, модель заказа вышлем, на днях уже пользователь обращался с таким вопросом.
Авторизация