0

追加の不正管理として、顧客が注文した後、特定の注文の詳細に基づいて異なる注文ステータスを設定したいと思います。

何かのようなもの:

if($order->getPayment()->getTransaction()->getAdditionalInformation('avszip') != Y)
  $order->setState('review for fraud');
else
  $order->setState('processing');

これはどこで行いますか?のデフォルトのsetStateコード行をインターセプトすると思います

app/code/core/Mage/Sales/Model/Order/Payment.php
4

1 に答える 1

1

sales_order_place_afterまたはのオブザーバーを作成できますsales_order_payment_place_end

<events>
    <sales_order_place_after>
        <observers>
            <fraudtracking>
                <type>singleton</type>
                <class>fraudtracking/observer</class>
                <method>changestatus</method>
            </fraudtracking>
        </observers>
    </sales_order_place_after>

あなたのobserver.phpで

//Create a new status in Admin -> System -> Order Statuses
$STATE = 'fraud';

$_order = $event->getOrder();
if($order->getPayment()->getTransaction()->getAdditionalInformation('avszip') != Y){
    $_order->addStatusHistoryComment('Review for fraud', $STATE)
                   ->setIsVisibleOnFront(false)
                   ->setIsCustomerNotified(false);
}
于 2013-03-26T13:51:45.217 に答える