まず、app/code/localに独自のモジュールを作成します。 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はモジュールを定義し、特定のイベント(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>
今、あなたのオブザーバー方法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はハード学習曲線を持っています... 幸運!
これは優れたメイトです。これはおそらくちょっと古いですが、Magentoがイベント/オブザーバーのパターンをどのように実装したかを知ることができました。乾杯! –
あなたのconfig.xmlの "computeExpirationDate"はおそらく "checkVipCustomer"になるはずです –
あなたは正しいです@ケーベレンズ、私は答えを編集しました。 – Julien