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

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

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

Может ли кто-нибудь указать мне направление события, которое я ищу?

Спасибо.


person MediaGiantDesign    schedule 17.07.2015    source источник


Ответы (2)


Я нашел решение, сделав небольшой взлом:

Событие, которое вам нужно привязать в этом случае, — adminhtml_sales_order_addressSave.

Я нашел это, создав глобальный наблюдатель событий, который просто отслеживал все события, происходящие на сервере:

<adminhtml>
    <events>
        <controller_action_predispatch>
            <observers>
                <add_event>
                    <type>singleton</type>
                    <class>MGD_Shippingodbc_Model_Observer</class>
                    <method>trackEvents</method>
                </add_event>
            </observers>
        </controller_action_predispatch>
     </events>
</adminhtml>

Затем я добавил эту функцию в свой класс:

 function trackEvents($observer)
 {
    Mage::log("track event:" . $observer->getEvent()->getControllerAction()->getFullActionName());

    return $this;
 }

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

function trackEvents($observer)
{
   if ($observer->getEvent()->getControllerAction()->getFullActionName() == "adminhtml_sales_order_addressSave")
       Mage::dispatchEvent('my_custom_event_observer', []);

       return $this;
}
person MediaGiantDesign    schedule 17.07.2015

Пожалуйста, попробуйте с

    controller_action_predispatch_checkout_onepage_saveShiping
person dp4solve    schedule 17.07.2015
comment
Это тоже не сработало ... Я попробовал ваше предложение как было, так и с saveShipping (sp исправлено). Я также пытался копаться в форме, найденной в администраторе magento -> заказы -> просмотреть заказ -> изменить адрес доставки... controller_action_predispatch_sales_order_addressSave Это также не запускало событие, которое мне нужно. - person MediaGiantDesign; 17.07.2015
comment
Пожалуйста, подумайте о том, чтобы добавить хотя бы несколько слов, объясняющих ОП, и чтобы дальнейшие читатели ответили, почему и как он отвечает на исходный вопрос. - person β.εηοιτ.βε; 19.07.2015