Sie sollten beginnen, indem Sie Ihr eigenes Modul in app/code/local erstellen. Erstellen Sie zum Beispiel die Verzeichnisse Moak/Vip. Es wird die Wurzel Ihres Moduls sein.
Damit Magento wissen, dass es existiert, erstellen Sie eine Datei mit dem Namen Moak_Vip.xml in etc/modules, mit folgendem Inhalt:
<?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>
Dann in Ihrem Modulverzeichnis, müssen Sie die folgende Struktur und Dateien:
- etc/config.xml
- Modell/Observer.php
Die Datei config.xml definiert Ihr Modul und deklariert Ihren Ereignis-Listener für ein bestimmtes Ereignis (checkout_onepage_controller_success_action
wird gesendet, wenn der One-Page-Checkout-Prozess abgeschlossen ist, sales_order_payment_pay
wird gesendet, wenn die Zahlung bestätigt wurde).
Sie benötigen keine DB-Konfiguration, da Sie keine neue Entität speichern. So sollten Sie Ihre Konfigurationsdatei so etwas wie folgt aussehen:
<?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>
nun Ihre Observer Methode checkVipCustomer
sollte ein Ereignisobjekt erhalten, von dem Sie alle Informationen über die Reihenfolge abrufen kann, den Kunden ... und die Änderungen durchführen du magst. Werfen Sie einen Blick auf Magento-Modellklassen in App/Code/Kern/Mage /.../ Model/... , um zu sehen, wie Sie durch diese Objekte navigieren.
Beispiel:
<?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;
}
}
Hinweis Ich habe einen der Code nicht getestet ich hier geschrieben habe, so pfleglich behandeln! Hoffe, es hat geholfen, Magento hat eine harte Lernkurve ... Viel Glück!
Das ist ausgezeichnet, Kumpel. Es ist wahrscheinlich ein bisschen veraltet, aber es gab eine gute Vorstellung davon, wie Magento das Ereignis-/Beobachtermuster implementiert hat. Prost! –
"computeExpirationDate" in Ihrer config.xml sollte wahrscheinlich "checkVipCustomer" sein –
Sie haben Recht @KaeVerens, habe ich die Antwort bearbeitet. – Julien