app/code/local に独自のモジュールを作成することから始めてください。たとえば、ディレクトリ Moak/Vip を作成します。モジュールのルートになります。
Magento がその存在を認識できるように、etc/modules に次の内容の 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>
次に、モジュール ディレクトリに、次の構造とファイルが必要です。
- etc/config.xml
- モデル/オブザーバー.php
config.xml はモジュールを定義し、特定のイベントのイベント リスナーを宣言します ( 1 ページのcheckout_onepage_controller_success_action
チェックアウト プロセスが完了しsales_order_payment_pay
たときに送信され、支払いが確認されたときに送信されます)。
新しいエンティティを保存しないため、DB セットアップは必要ありません。したがって、構成ファイルは次のようになります。
<?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
はイベント オブジェクトを受け取り、そこから注文や顧客に関するすべての情報を取得し、必要な変更を実行する必要があります。app/code/core/Mage/.../Model/... の Magento モデル クラスを見て、これらのオブジェクトをナビゲートする方法を確認してください。
例 :
<?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 は学習曲線が厳しいものです...頑張ってください!