2016-07-25 56 views
0

我的結帳小計和grandtotal顯示將購物車中的商品價格加倍。Magento 1.9.1.1結帳小計顯示價格的兩倍

我設置爲「允許運到多個地址」爲「無」和「最大數量允許裝運到多個地址」爲「0」

我也有更新cart.php文件中的代碼。

但我仍然得到小計錯誤。

編輯:

我在 應用程序/代碼/核心/法師/結帳/型號/ cart.php文件更新下面的代碼。

$addresses = $this->getQuote()->getAllAddresses(); 
if (count($addresses) > 2) { 
for($i = 2; $i < count($addresses); $i++) { 
$address = $addresses[$i]; $address->isDeleted(true); 
} 
} 

但是還是我得到的小計不正確

感謝

+0

顯示您的代碼! – Enigmativity

+0

@Enigmativity - 我已經更新了app/code/core/Mage/Checkout/Model/cart.php文件中的以下代碼。 $ addresses = $ this-> getQuote() - > getAllAddresses(); \t \t \t \t 如果(計數($地址)> 2){ 爲($ i = 2; $ I <計數($地址); $ I ++){ $地址= $地址[$ i]於; $ address-> isDeleted(true); } } 但我仍然得到小計不正確 – SKP

+0

不作爲評論 - 編輯你的問題,並把它放在那裏。 – Enigmativity

回答

2

看來,這僅僅是導致此問題的多個送貨地址。您可以擁有多個帳單地址,並且只有一個運費,而總計似乎不會加倍。因此,客戶可能在sales_flat_quote_address表中有兩個運輸記錄,並且沒有帳單地址(可能極爲罕見)。或者前兩個地點中的兩個送貨地址(地址ID較低),最後一個賬單。無論哪種情況,您列出的代碼都不能解決雙倍問題。在第一種情況下,因爲只有兩個記錄,所以第二個送貨地址不會被刪除。在第二種情況下,由於第三條記錄是賬單地址,它將被刪除,仍然留下兩個寄送地址。爲了使這一修復工作,對這些情況非常少見,因爲它只是似乎是更合適的修復,我改變了代碼看起來像這樣:

$addresses = $this->getQuote()->getAllShippingAddresses(); 

    if (count($addresses) > 1) { 
     for($i = 1; $i < count($addresses); $i++) { 
      $address = $addresses[$i]; 
      $address->isDeleted(true); 
     } 
    } 

此代碼只會拉送貨地址有問題的報價實體。然後它會在第一個記錄之後刪除任何其他記錄。