我正在观察小计和总计为 0 的订单的奇怪情况,但其中包含产品。产品行有价格,没有使用促销规则或折扣。这种情况偶尔会发生,而且不仅发生在一个站点上。Magento 的版本是 1.7.0.2。也没有安装其他扩展。system.log 和 exception.log 不包含可能与此问题有关的错误痕迹。
起初我认为这可能是因为服务器过载。我认为这可能与它有关,但最后一个“0”小计订单发生在服务器根本没有加载时。
有任何想法吗?谢谢!
我正在观察小计和总计为 0 的订单的奇怪情况,但其中包含产品。产品行有价格,没有使用促销规则或折扣。这种情况偶尔会发生,而且不仅发生在一个站点上。Magento 的版本是 1.7.0.2。也没有安装其他扩展。system.log 和 exception.log 不包含可能与此问题有关的错误痕迹。
起初我认为这可能是因为服务器过载。我认为这可能与它有关,但最后一个“0”小计订单发生在服务器根本没有加载时。
有任何想法吗?谢谢!
我和你们有同样的问题,这真的很烦人,因为我无法重现它并且找不到合适的解决方案。我开始相信这只是另一个由数据库操作中的一些错误时机引起的 Magento 错误。
Anthony 的帖子确实帮助了我并指导我找到了一个实用的解决方法。
所以就在这里。实际上,该错误是由在 markQuotesRecollect 中设置的触发器重新收集标志引起的(例如,当产品被保存时)并导致所有活动报价重新收集它们的总数。
我不得不花费大量时间来调试 IWD OnepageCheckout 代码,以了解 Geo.php 中的 saveBilling 函数通过克隆账单地址(如果运输与账单相同)创建一个新的送货地址并传递(几乎)来自账单的所有数据地址到稍后保存的送货地址(通过父报价保存)。这样设置了 cached_items_* 数据,并且当 Geo.php 保存付款时,即使您有意设置报价以重新收集总计(即通过将收集的标志设置为 false),运输总计也不会正确计算。
最终,我不得不在 saveBilling 方法中添加这行代码,然后写:
$ship->addData($bill->getData());)
$ship->setSameAsBilling(1)->setShippingMethod($ship_method)->setCollectShippingRates(true);
$ship->unsetData('cached_items_nominal');
$ship->unsetData('cached_items_nonnominal');
$ship->unsetData('cached_items_all');
到目前为止(经过 10 天和大约 1000 个订单)没有随机的零总订单。
希望这对大家有帮助
亲切的问候
左撇子
我曾经也有过一样的问题。我在这里做了一些研究。我使用了 IWD onepagecheckout 模块。问题出在这个模块内部。
让我们考虑情况。您正在管理面板中做某事,或者 cron 正在执行此产品的某些任务,或者您可以应用一些目录规则。在任何类型的这些操作中都将被称为事件catalog_product_status_update或catalog_product_save_after。
因此,每次您更改产品时,所有当前报价都会按事件更新。
好的,在这里你会问我 - 这是什么意思?
这意味着每个报价都会更改sales_flat_quote表中的trigger_recollect字段。您可以在此处找到它 app/code/core/Mage/Sales/Model/Resource/Quote.php::[markQuotesRecollectOnCatalogRules 和 markQuotesRecollect 方法] 以获取更多详细信息。
trigger_recollect字段是一个触发/信号,用于重新收集整个报价总和。您可以在app/code/Mage/Sales/Model/Quote.php::_afterLoad找到此步骤 。
protected function _afterLoad()
{
// collect totals and save me, if required
if (1 == $this->getData('trigger_recollect')) {
$this->collectTotals()->save();
}
return parent::_afterLoad();
}
并且此时所有当前报价总和准确为 0。接下来的步骤是获取地址集合,由于某种原因,我们现在还没有将其产品项目作为地址对象。Magento 在这里无法正确回忆。但只有当您或系统正在处理产品并且同时客户按下“发送订单”按钮时才会发生这种情况。为什么-我还不知道。由问题发生并被抓住。
只需检查 Configuration->Advanced->advanced->Disabled Module Outputs Mage_Tax 选项是否启用。