Вы должны начать с создания собственного модуля в приложении/коде/локальном. Создайте, например, директории Moak/Vip. Это будет корень вашего модуля.
Для того, чтобы Magento знать, что существует, создайте файл с именем Moak_Vip.xml в и т.д./модулях, со следующим содержанием:
<?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>
Теперь ваш метод наблюдатель 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 имеет сложную кривую обучения ... Удачи!
Отлично, приятель. Это, вероятно, немного устарело, но это дало хорошее представление о реализации Magento шаблона события/наблюдателя. Ура! –
«computeExpirationDate» в вашем файле config.xml должен, вероятно, быть «checkVipCustomer» –
Вы правы @KaeVerens, я отредактировал ответ. – Julien