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

Приветствия, в Magento Я хочу инициировать событие, как только заказ был настроен на обработку (с помощью подтверждения шлюза или вручную), например: Если общий клиент (id 1) тратит более 100 $, и платеж подтвержден, установите его идентификатор группы до 4 (серебряный VIP, который по правилам поощрения получает скидку 2% во всем мире), я бы дал щедрость этому, но я бы хотел ответить до 2-х дней O_o

EDIT : ответ, который я получил до сих пор, является лишь частичным ответом, также я считаю ссылки очень запутанными, я не понимаю, что такое минимальная настройка, что мне нужно настроить для создания и т. Д. Также я пытаюсь чтобы узнать, как получить идентификатор / модель платежных клиентов.

Solutions Collecting From Web of "Как вызвать событие при оплате, полученное в пурпуре?"

Вы должны начать с создания собственного модуля в приложении / коде / локальном. Создайте, например, директории 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> 

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

  • и т.д. / config.xml
  • Модель / Observer.php

Config.xml определяет ваш модуль и объявляет слушателя событий для данного события ( checkout_onepage_controller_success_action отправляется, когда процесс проверки одной страницы завершен, 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 в приложении / 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 была сложная кривая обучения … Удачи!

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

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