我创建了自定义送货模块并收到以下错误:
致命错误:在 /home/devjoand/public_html/includes/src/Mage_Shipping_Model_Shipping.php 上的非对象上调用成员函数setStore() 421
我删除了此发货模块的所有文件,包括.xml,它仍然给我同样的错误。它不会将我发送到送货方式并停止执行savebilling控制器并出现上述错误。我已经清除缓存/会话并重新编译但没有任何作用。任何帮助,将不胜感激。提前谢谢!
注意:它在我的本地计算机上运行正常,但不能在生产服务器上运行。
答案 0 :(得分:2)
正如评论中部分所述,错误来自此代码:
$obj = Mage::getModel($className);
if ($storeId) {
$obj->setStore($storeId);
}
在上面的代码中,$obj
设置为null
您声明已移除了运输公司。
我认为问题出现是因为您没有首先停用运营商
因此在配置表中,运营商似乎已启用,但没有与之关联的模型,因此上述代码失败。
要解决此问题,请在表格core_config_data
中查看包含此路径列的记录:carriers/CARRIER_CODE_HERE/active
,其中CARRIER_CODE_HERE
是您刚刚删除的送货方式的代码。
找到该行后,将其删除。实际上删除所有包含carriers/CARRIER_CODE_HERE/%
之类路径的内容
如果我错了,请务必先备份您的数据库。