Magento 1 - 小计和总计为 0 的订单

问题描述 投票:0回答:4

我正在观察订单小计和总计为0但其中有产品的奇怪情况。产品行有价格,并且没有使用促销规则或折扣。这种情况偶尔发生,而且不仅仅发生在一个站点。 Magento的版本是1.7.0.2。也没有安装额外的扩展。 system.log 和Exception.log 不包含可能与此问题有关的错误痕迹。

起初我以为可能是因为服务器过载。我认为这可能与此有关,但最后一个“0”小计订单发生在服务器根本没有加载的情况下。

有什么想法吗?谢谢!

magento magento-1.7 magento-1.8
4个回答
3
投票

我和你们遇到了同样的问题,这真的很烦人,因为我无法重现它,也找不到合适的解决方案。 我开始相信这只是另一个 Magento bug,是由数据库操作的一些错误时机引起的。

安东尼的帖子确实帮助了我并指导我找到了实际的解决方案。

所以就在这里。 事实上,该错误是由 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 个订单)没有随机的零总订单。

希望对大家有帮助

亲切的问候

左夫特里


1
投票

我也遇到过同样的问题。我在这里做了一些研究。 我使用了 IWD onepagecheckout 模块。问题出在这个模块内部。

让我们考虑一下情况。您正在管理面板中执行某些操作,或者 cron 正在执行该产品的某些任务,或者您可以应用一些目录规则。在任何类型的这些操作中,都将称为事件 catalog_product_status_updatecatalog_product_save_after

因此,每次您更改产品时,所有当前报价都会根据事件进行更新。

好吧,你会问我 - 这是什么意思?

这意味着每个报价都会更改 sales_flat_quote 表中的 trigger_recollect 字段。 你可以在这里找到它 app/code/core/Mage/Sales/Model/Resource/Quote.php::[markQuotesRecollectOnCatalogRules 和 markQuotesRecollect 方法] 以获取更多详细信息。

trigger_recollect 字段是重新收集整个报价总额的触发器/信号。您可以在这里找到此步骤 应用程序/代码/法师/销售/模型/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 无法记住这里的正确性。但只有当您或系统正在处理产品并且同时客户按下“发送订单”按钮时,才会发生这种情况。为什么 - 我还不知道。由于问题发生并被捕获。


-2
投票

只需检查配置->高级->高级->禁用模块输出 Mage_Tax 选项是否启用。


-2
投票

零小计结帐

使用这个

系统 > 配置 > 付款方式 > 零小计结帐

更多信息请听

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.