0

私はペイパルをゲートウェイとして使用しています。ペイパルの結果に応じて、IPN リスナーを編集し、そこから顧客グループを更新すると考えました。

メソッドをオーバーライドするなど、これを行うためのより「Magento」な方法はありますか?もしそうなら、どこでそれを行いますか?

4

2 に答える 2

2

イベントオブザーバーはここで理にかなっています。paypal_payment_transaction_save_afterここでイベントが機能するかどうかはわかりません。正常な IPN 支払いの保存後に注文を確認することは機能します。

于 2013-04-29T17:37:55.337 に答える
0

この機能を探している他の人のために、これは私がやったことです:

コピーした Magento 1.7.0.2 ペイパル ルーチンをオーバーライドするには

/アプリ/コード/コア/メイジ/ペイパル/

/アプリ/コード/ローカル/メイジ/ペイパル/

次に、次のメソッドを /app/code/local/Mage/Paypal/Model/Ipn.php に追加しました

protected function _changeUserGroup($group){

    $invoice_id = $this->_request['invoice'];

    // get the resource model
    $resource = Mage::getSingleton('core/resource');

    // retrieve the read connection
    $read = $resource->getConnection('core_read');

    // get the customer_id for the invoice from the database
    $customer_id = (int) $read->fetchOne($read->select()->from('sales_flat_order','customer_id')->where("increment_id='$invoice_id'")->limit(1));

    // retrieve the write connection
    $write = $resource->getConnection('core_write');

    // raw query
    $query = "UPDATE customer_entity SET group_id = $group WHERE entity_id = $customer_id";

    // execute the query
    $write->query($query);

}

その後、目的に合わせて IPN プロシージャの任意の時点でこのメソッドを呼び出すことができます。http://fishpig.co.uk/blog/direct-sql-queries-magento.htmlデータベース呼び出しに役立つことがわかりました。

于 2013-05-02T10:34:49.877 に答える