Magento 一段时间后付款会话中未设置报价

Magento 一段时间后付款会话中未设置报价,magento,magento-1.5,Magento,Magento 1.5,我在以编程方式创建订单时遇到问题。 它工作得很好,但几天之后,由于出现错误,它停止了: '致命错误:在第165行的/home/clubecaf/public_html/app/code/core/Mage/Sales/Model/Quote/Payment.php中对非对象调用成员函数getStore' 它位于: public function getMethodInstance() { $method = parent::getMethodInstance(); ret

我在以编程方式创建订单时遇到问题。 它工作得很好,但几天之后,由于出现错误,它停止了:

'致命错误:在第165行的/home/clubecaf/public_html/app/code/core/Mage/Sales/Model/Quote/Payment.php中对非对象调用成员函数getStore'

它位于:

    public function getMethodInstance()
{
    $method = parent::getMethodInstance();
    return $method->setStore($this->getQuote()->getStore());
}
位于Mage_Sales_Model_Quote_Payment

在付款报价表具有一定大小或状态后,magento是否有理由停止将报价会话正确地处理为quote_付款

调试过程和背景:

该错误清楚地表明my quote实例未正确设置

但是,在调试过程中,我看到quote在Magnet上保存了自己的实例后,在quote的方法aftersave上,他调用了一个名为this->getPaymentsCollection->save的函数,其中sales\u flat\u quote\u payment将其quote设置为数据库和支付会话

在数据库中,填写“销售”和“公寓”付款的“报价id”字段

在这之后,我制作了一个商店的本地安全副本,删除了sales\u flat\u quote\u payment内容,纠正了错误

但由于我无法删除旧的付款报价,我必须更准确地定义问题


提前谢谢。

更新:我做了一个测试,删除了一半的销售、付款登记簿。结果也一样。所以,我想问题在于表的大小。更新:如果我删除了付款id最低的一半,它就不起作用了。但当我用更高的部分做的时候,它是有效的。