Как инициировать событие, по оплате полученное в магнето?

Используя перегрузки или C# 4.0 использования или выше

 private void GetVal(string sName, int sRoll)
 {
   if (sRoll > 0)
   {
    // do some work
   }
 }

 private void GetVal(string sName)
 {
    GetVal("testing", 0);
 }
6
задан Moak 20 September 2009 в 05:09
поделиться

2 ответа

Вы должны начать с создания собственного модуля в app / code / local. Создайте например каталоги Moak / Vip. Это будет корень вашего модуля.

Чтобы Magento узнал о его существовании, создайте файл с именем Moak_Vip.xml в etc / modules со следующим содержимым:

<?xml version="1.0"?>
<config>
    <modules>
        <Moak_Vip>
            <active>true</active>
            <codePool>local</codePool>
            <self_name>Moak VIP module</self_name>
        </Moak_Vip >
    </modules>
</config>

Затем в каталоге вашего модуля вам понадобится следующая структура и файлы:

  • etc / config.xml
  • Model / Observer.php

config.xml определяет ваш модуль и объявляет ваш слушатель событий для данного события ( checkout_onepage_controller_success_action is отправляется, когда процесс одностраничной проверки завершен, sales_order_payment_pay отправляется после подтверждения платежа).

Вам не нужна никакая настройка БД, так как вы не сохраните ни одного нового объекта. Итак, ваш файл конфигурации должен выглядеть примерно так:

<?xml version="1.0"?>
<config>
    <modules>
        <Moak_Vip>
            <version>0.1.0</version>
        </Moak_Vip>
    </modules>
    <global>
        <models>
            <moak>
                <class>Moak_Vip_Model</class>
            </moak>
        </models>      
        <events>
            <sales_order_payment_pay>
                <observers>
                    <moak_observer>
                        <type>singleton</type>
                        <class>moak/observer</class>
                        <method>checkVipCustomer</method>
                    </moak_observer>
                </observers>
            </sales_order_payment_pay >     
        </events>
     </global>
</config>

Теперь ваш метод Observer checkVipCustomer должен получить объект события, из которого вы можете получить всю информацию о заказе, клиенте ... и выполнить модификации, которые вам нравятся. Взгляните на классы модели Magento в app / code / core / Mage /.../ Model / ... чтобы увидеть, как перемещаться по этим объектам.

Пример:

<?php

class Moak_Vip_Model_Observer
{
    public function checkVipCustomer($event)
    {
        $order = $event->getInvoice()->getOrder(); // Mage_Sales_Model_Order
        /*
            - Check order amount
            - Get customer object
            - Set Group id
            - $customer->save();
        */
        return $this;
    }

}

Примечание. Я не тестировал код, который написал здесь, поэтому обращайтесь с ним осторожно! Надеюсь, это помогло, у Magento сложная кривая обучения ... Удачи!

31
ответ дан 8 December 2019 в 02:53
поделиться

Вы можете создать наблюдателя для события «sales_order_payment_pay». Вот шпаргалка событий в magento 1.3.

И объяснение того, как создавать методы наблюдателя . Ссылки любезно предоставлены отличными сайтами activecodeline и inchoo.

1
ответ дан 8 December 2019 в 02:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: