我的结帐小计和格式总计显示购物车中的商品价格翻倍。
我设置了#34;允许运送到多个地址" as" No"和#34;允许运送到多个地址的最大数量" as" 0"
我还更新了cart.php文件中的代码。
但我仍然得到小计错误。
编辑:
我已更新以下代码 app / code / core / Mage / Checkout / Model / cart.php文件。
$addresses = $this->getQuote()->getAllAddresses();
if (count($addresses) > 2) {
for($i = 2; $i < count($addresses); $i++) {
$address = $addresses[$i]; $address->isDeleted(true);
}
}
但我仍然得到小计不正确的
由于
答案 0 :(得分:3)
似乎只有多个送货地址才会导致此问题。您可以拥有多个帐单邮寄地址,只有一个送货地点,总计不会翻倍。因此,客户可能在sales_flat_quote_address表中有两个发货记录而没有帐单地址(可能非常罕见)。或者前两个位置的两个送货地址(较低的address_id)和最后一个的开票。在任何一种情况下,您列出的代码都无法解决加倍问题。在第一种情况下,因为只有两个记录,所以第二个送货地址不会被删除。在第二种情况下,由于第3条记录是帐单邮寄地址,因此会将其删除,但仍会保留两个送货地址。为了使这个修复工作适用于这些罕见的情况,并且因为它似乎是更合适的修复,我将代码更改为如下所示:
$addresses = $this->getQuote()->getAllShippingAddresses();
if (count($addresses) > 1) {
for($i = 1; $i < count($addresses); $i++) {
$address = $addresses[$i];
$address->isDeleted(true);
}
}
此代码仅提取相关报价实体的送货地址。然后它将删除第一个之后的任何其他记录。