【发布时间】:2016-07-19 22:30:22
【问题描述】:
我正在使用 Magento 1.9.2,并且正在开发自定义扩展。
这是我的扩展配置文件:
<?xml version="1.0"?>
<config>
<frontend>
<layout>
<updates>
<automatedstatus>
<file>automatedstatus.xml</file>
</automatedstatus>
</updates>
</layout>
</frontend>
<modules>
<VivasIndustries_AutomatedStatus>
<version>1.0.0</version>
</VivasIndustries_AutomatedStatus>
</modules>
<global>
<models>
<automatedstatus>
<class>VivasIndustries_AutomatedStatus_Model</class>
<resourceModel>vivasindustries_automatedstatus_resource</resourceModel>
</automatedstatus>
<vivasindustries_automatedstatus_resource>
<class>VivasIndustries_AutomatedStatus_Model_Resource</class>
<entities>
<automatedstatus>
<table>VivasIndustries_AutomatedStatus</table>
</automatedstatus>
</entities>
</vivasindustries_automatedstatus_resource>
</models>
<resources>
<automatedstatus_setup>
<setup>
<module>VivasIndustries_AutomatedStatus</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</automatedstatus_setup>
<automatedstatus_read>
<connection>
<use>core_read</use>
</connection>
</automatedstatus_read>
<automatedstatus_write>
<connection>
<use>core_write</use>
</connection>
</automatedstatus_write>
</resources>
<helpers>
<automatedstatus>
<class>VivasIndustries_AutomatedStatus_Helper</class>
</automatedstatus>
</helpers>
<blocks>
<automatedstatus>
<class>VivasIndustries_AutomatedStatus_Block</class>
</automatedstatus>
</blocks>
</global>
<crontab>
<jobs>
<automatedstatus>
<schedule>
<cron_expr>*/1 * * * *</cron_expr>
</schedule>
<run>
<model>automatedstatus/observer::setStatus</model>
</run>
</automatedstatus>
</jobs>
</crontab>
<adminhtml>
<acl>
<resources>
<all>
<title>Allow Everything</title>
</all>
<admin>
<children>
<system>
<children>
<config>
<children>
<automatedstatusadmin>
<title>Vivas - All</title>
</automatedstatusadmin>
</children>
</config>
</children>
</system>
</children>
</admin>
</resources>
</acl>
</adminhtml>
<admin>
<routers>
<adminhtml>
<args>
<modules>
<VivasIndustries_AutomatedStatus before="Mage_Adminhtml">VivasIndustries_AutomatedStatus_Adminhtml</VivasIndustries_AutomatedStatus>
</modules>
</args>
</adminhtml>
</routers>
</admin>
</config>
出于开发目的,我已将 cron 作业设置为每分钟运行一次。
这是我的observer.php
class VivasIndustries_AutomatedStatus_Model_Observer
{
public function setStatus() {
Mage::log("The order status was changed!");
}
}
像这样每分钟我都可以通过看到 The order status was changed! 消息添加到我的 system.log 文件中来看到 cron 作业完成
但是当我把它改成这样时:
<?php
class VivasIndustries_AutomatedStatus_Model_Observer
{
public function setStatus() {
$orderId = "100005082";
$order = Mage::getModel('sales/order')->load($orderId);
$order->setState(Mage_Sales_Model_Order::STATE_COMPLETE, true);
$order->save();
Mage::log("The order status was changed!");
}
}
system.log 文件中不再添加The order status was changed! 消息,订单状态也没有改变。
我很确定问题来自订单状态更改的代码。
我的错误在哪里,我该如何解决?
提前致谢!
【问题讨论】: