结账时价格加倍Magento - sales_order_flat_quote_address

时间:2013-04-17 16:58:54

标签: magento magento-1.7 checkout

我们目前在Magento社区1.7上遇到一个问题,其中一些客户在结账时的总数翻了一番。

调查显示,对于这些客户报价,他们在sales_order_flat_quote_address表中有四个条目。该表看起来应该只包含两行,一行用于计费,另一行用于发货。

我们难以理解为什么要创建四行,并且通过严格的测试无法找到问题的原因。

以下测试用例已经完成,没有问题:

1)创建报价然后登录。登出。创建新报价然后登录。

2)确保客户没有先前的报价。登录。登出。添加产品。登录。

3)登录时创建报价。保持登录状态。访问单独的浏览器,添加产品,使用相同的客户帐户登录。

4)创建报价,登录。通过代理/新IP打开网站。添加产品。登录。

在上述所有情况下,问题都不会发生。

以前有没有人曾经听过或听说过这个问题?

提前致谢。

3 个答案:

答案 0 :(得分:2)

我们在企业1.12上遇到过这个问题。跟踪非常困难,我们用提供补丁的magento提出了它。

您是否在自己的网站上使用OneStepCheckout?或任何其他第三方模块?

答案 1 :(得分:0)

我们遇到过同样的问题。

经过调查,我们确定这是已安装主题的问题。

为了确定这一点,我们执行了以下步骤:

  1. 创建一个新的Magento新实例。
  2. 不添加任何主题
  3. 安装产品的子集(甚至是单个产品)进行测试。
  4. 结帐时查看价格。
  5. 我感觉主题开发人员使用了包含此错误的旧基本模板。当我发现更多信息时,会更新这篇文章的更多信息。

答案 2 :(得分:0)

我通过覆盖Mage_Sales_Model_Quote::_beforeSave

解决了重复地址的问题
public function _beforeSave()
{
    $addresses = $this->getAllAddresses();
    if (count($addresses) > 2) {
      for($i = 2; $i < count($addresses); $i++) {
        $address = $addresses[$i];
        $address->isDeleted(true);
      }
    }

    parent::_beforeSave();
}

代码会删除任何导致购物车价格翻倍的重复地址。

感谢http://www.daveboyce.com/double-order-totals-in-magento/获得答案。