Magento 销售\订单\保存\未触发后?

Magento 销售\订单\保存\未触发后?,magento,magento-1.9,Magento,Magento 1.9,我正在尝试设置一个观察者,在命令完成时触发命令。我已经试着将几个订单标记为“完成”,我的观察者没有被触发 .xml在etc/modules中的应用 <?xml version="1.0"?> <config> <modules> <Test_ReviewRequestTrigger> <version>1.0</version> </Test_ReviewRequestTrigger&g

我正在尝试设置一个观察者,在命令完成时触发命令。我已经试着将几个订单标记为“完成”,我的观察者没有被触发

.xml在etc/modules中的应用

<?xml version="1.0"?>
<config>
<modules>
    <Test_ReviewRequestTrigger>
        <version>1.0</version>
    </Test_ReviewRequestTrigger>
</modules>
<global>
    <models>            
        <review_request_trigger>
            <class>Test_ReviewRequestTrigger_Model</class>
        </review_request_trigger>
    </models>
    <events>
        <sales_order_save_after>
            <observers>
                <review_request_trigger>
                    <type>singleton</type>
                    <class>Test_ReviewRequestTrigger_Model_Observer</class>
                    <method>implementOrderStatus</method>
                </review_request_trigger>
            </observers>
        </sales_order_save_after>
    </events> 
</global>
</config>

config.xml文件中有几个错误可能是罪魁祸首。以下是有关的更多信息的链接,但以下是适用于您的问题的相关代码:

<events>
    <sales_order_save_after>
        <observers>
            <ReviewRequestTrigger>
                <type>singleton</type>
                <class>ReviewRequestTrigger/observer</class>
                <method>implementOrderStatus</method>
            </ReviewRequestTrigger>
        </observers>
    </sales_order_save_after>
</events> 

注意包装器和其中的标记的更改。

Oberver.php?你确定你的名字是s吗?请指定完整路径。你还清除了缓存吗?我没有在文本中拼写它。你如何确定该方法没有执行?我在文件中添加了一个记录器:Mage::loghello,null,“test_ReviewRequestTrigger.log”;。发货并发送发票后,在订单中-订单状态更改为“已完成”,但我在/var/log中未找到日志文件该文件是否存在并具有正确的权限?删除其他参数并检查system.log。可以同时包含两个符号。这不是这里的问题。@revo,这是真的,但是OP包含在类中的测试,而不是在它周围的标记中。它也可以是和测试(u reviewerequesttrigger)模型(u Model)观测者。原始文件指向一个不存在的类。我这样做是因为这是最佳实践。周围的标记名在这里不起重要作用。它可能是任何东西。
class Test_ReviewRequestTrigger_Model_Observer 
{
    public function implementOrderStatus($event)
    {
        Mage::log("hello", null, 'test_ReviewRequestTrigger.log');
        $order = $event->getOrder();
        $stateProcessing = $order::STATE_COMPLETE;
        // Only trigger when an order enters processing state.
        if ($order->getState() == $stateProcessing && $order->getOrigData('state') != $stateProcessing) { 
        }
    }
}
<events>
    <sales_order_save_after>
        <observers>
            <ReviewRequestTrigger>
                <type>singleton</type>
                <class>ReviewRequestTrigger/observer</class>
                <method>implementOrderStatus</method>
            </ReviewRequestTrigger>
        </observers>
    </sales_order_save_after>
</events>