由于税收,Magento总价格不正确

时间:2016-10-03 16:11:32

标签: php magento

我有magento纳税计数的自定义问题。在商店里,我得到的价格包括税率,例如:

  1. 我想订购一些价格为4的产品(不含税:3.28)。
  2. 我想订购数量37。
  3. 小计(不含税)是:121.36(正确),
  4. 总计是148.00,这是不正确的(37 * 3.28 * 1.22 = 148.0592,所以支付148.06)。
  5. 我尝试了很多关于税收的不同设置,也尝试搜索哪部分代码对其负责,但无法通过magento结构找到它。

    任何想法如何解决这个问题?我使用Magento v.1.9.2.4

    编辑: 最后,我发现了问题所在,但仍然没有对好的解决方案有所了解。我已为测试目的更改了2个文件:

    1. \应用\代码\核心\法师\核心\模型\ Store.php
      
       public function roundPrice($price)
              {
                  return round($price, 4);
              }
      
    2. \应用\代码\核心\法师\ SALES \模型\报价\地址\总\ Subtotal.php

      
      if ($quoteItem->getParentItem() && $quoteItem->isChildrenCalculated()) {
              $finalPrice = $quoteItem->getParentItem()->getProduct()->getPriceModel()->getChildFinalPrice(
                 $quoteItem->getParentItem()->getProduct(),
                 $quoteItem->getParentItem()->getQty(),
                 $quoteItem->getProduct(),
                 $quoteItem->getQty()
              );
              $item->setPrice($finalPrice)
                  ->setBaseOriginalPrice($finalPrice);
              $item->calcRowTotal();
          } else if (!$quoteItem->getParentItem()) {
              $finalPrice = $product->getFinalPrice($quoteItem->getQty()); $finalPrice = 4.0016;
              $item->setPrice($finalPrice)
                  ->setBaseOriginalPrice($finalPrice);
              $item->calcRowTotal();
              $this->_addAmount($item->getRowTotal());
              $this->_addBaseAmount($item->getBaseRowTotal());
              $address->setTotalQty($address->getTotalQty() + $item->getQty());
          }
      
      所以新的疑惑:

      1. 我想知道我是否可以"就像那样"把这轮改成4?我已经看到一些信息表明它可能有问题,例如Paypal

      2. 如何获得商品的基本价格+添加税,以便在" magento automagic"上将其四舍五入为4办法?

    3. 现在(当然这是一种狡猾的方式来实现价值 - 仅仅是为了测试)在我的购物车中我能看到正确的值 - 总计148.06

1 个答案:

答案 0 :(得分:0)

如果您正在使用自定义布局或在app / design / frontend / rwd /中,您正在寻找的代码将位于app / design / frontend / rwd / your_layout / template / catalog / product / price.phtml中默认/模板/目录/产品/ price.phtml如果没有。

这是一个非常令人困惑的文件,因为它包含一大堆条件来帮助它决定使用哪组定价规则,因此找出它实际对您网页上出现的价格负责的代码行可能很棘手。 为了影响我们网站上各个地方显示的价格,我用来隔离要修改的正确行的技巧是在price.phtml中的各个跨度中添加一些任意类名,看起来它们包含价格。(它们中有很多,我想是40左右。

因此,例如,我为“价格”类的每个连续范围分配了一个新的任意类,它只包含一个数字,从1开始。

当我使用元素检查器从前端查看页面时,我发现产品页面上显示的所有可配置产品价格都为“28”类,因此发现我需要修改的行在我已经指定了28级的范围

<span class="price 28">
          //change whatever code is here to get the result you want   
</span>

希望这有帮助。