我正在觀察小計和總計爲0的訂單的奇怪情況,但產品在其中。產品行有價格,沒有促銷規則或折扣正在使用。偶爾會發生這種情況,而不僅僅是一個站點。 Magento的版本是1.7.0.2。也沒有安裝額外的擴展。 system.log和exception.log不包含可能與此問題有關的錯誤的痕跡。Magento與小計和總計的訂單0
起初我以爲這可能是因爲服務器超載。我認爲這可能與它有關,但最後的「0」 - 小數順序發生在服務器根本沒有加載時。
任何想法?謝謝!
我正在觀察小計和總計爲0的訂單的奇怪情況,但產品在其中。產品行有價格,沒有促銷規則或折扣正在使用。偶爾會發生這種情況,而不僅僅是一個站點。 Magento的版本是1.7.0.2。也沒有安裝額外的擴展。 system.log和exception.log不包含可能與此問題有關的錯誤的痕跡。Magento與小計和總計的訂單0
起初我以爲這可能是因爲服務器超載。我認爲這可能與它有關,但最後的「0」 - 小數順序發生在服務器根本沒有加載時。
任何想法?謝謝!
我有同樣的問題。我在這裏做了一些研究。 我使用IWD onepagecheckout模塊。問題出在這個模塊裏面。
讓我們考慮一下情況。您在adminpanel中執行操作,或者cron正在執行此產品的某些任務,或者您可以應用一些目錄規則。在這些行爲中的任何一種將被稱爲事件catalog_product_status_update或catalog_product_save_after。
因此,每當您更改產品的平價時,所有當前報價都將根據事件進行更新。
好的,在這裏你會問我 - 這是什麼意思?
這意味着每個引號改變字段trigger_recollect在sales_flat_quote表。 您可以在這裏找到 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在這裏無法回憶正確。但是,只有當您或系統對產品採取行動並且客戶正在按下「發送訂單」按鈕時纔會發生。爲什麼 - 我還不知道。由這個問題發生和捕捉。
這聽起來很合理。我正在使用相同的模塊。你找到了解決方案嗎?你爲什麼認爲這個問題在模塊中。這不是全球性問題嗎? –
我假定原因在模塊中。讓我們比較一下saveOrder操作中的IWD_OnepageCheckout_IndexController和Mage_Checkout_OnepageController。 Mage_Checkout_OnepageController在此步驟中沒有保存付款數據,而不是IWD_OnepageCheckout_IndexController。有關更多詳細信息,請參閱IWD_OnepageCheckout_IndexController中的_saveOrderPurchase方法。此步驟發生此錯誤。因此IWD checkout是在產品在管理面板中更改的時刻進行的初始報價回憶。如果我在這裏錯了,請糾正我。 – Anthony
我的解決方案是一個黑客) - 我只是忽略recollect的情況下調用saveOrder操作。不是很好的解決方案,但它的工作原理) – Anthony
只需檢查配置 - >高級 - >高級 - >禁用模塊輸出 Mage_Tax選項是否啓用。
Mage_Tax處於活動狀態,即未禁用。但我不明白這與這個問題有什麼關係? –
如果您禁用它,則不計算小計和總計。 – Ashlesha
我和你們有過同樣的問題,它真的很煩人,因爲我無法重現它,也找不到合適的解決方案。 我開始相信這只是另一個由於數據庫操作時間不合適而導致的Magento錯誤。
安東尼的帖子真的幫了我,並指導我找到一個實際的修復。
所以它就是這樣。 事實上,錯誤是由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號令)沒有隨機零個訂單總數。
希望這有助於大家
親切的問候
Lefteris
這發生兩次以上。我真的無法弄清楚。 –
我遇到了同樣的問題。任何線索? – kiatng
我還沒有任何解決方案。問題依然存在,偶爾發生。 –