【问题标题】:PayPal gateway has rejected request. the totals of the cart item amounts do not match order amounts. MagentoPayPal 网关已拒绝请求。购物车项目总金额与订单金额不匹配。 Magento
【发布时间】:2014-11-27 10:42:27
【问题描述】:

我很清楚发生了什么。我不知道如何解决它。由于我要求贝宝包含订单项,它会计算订单项总数,但它们与总计不匹配。

config.xml

    <sales>
        <quote>
            <totals>
                <biddiscount>
                    <class>winints/biddiscount</class>
                    <before>subtotal</before>
                </biddiscount>
                <globaldiscount>
                    <class>winints/globaldiscount</class>
                    <before>subtotal</before>
                </globaldiscount>
            </totals>
        </quote>
    </sales>

GlobalDiscount 类

<?php
/**
 * Created by PhpStorm.
 * User: numerical25
 * Date: 5/17/14
 * Time: 7:49 PM
 */

class Superior_WinInts_Model_Globaldiscount extends Mage_Sales_Model_Quote_Address_Total_Subtotal {

    protected  $amount = 0;
    protected  $set = 0;

    public function collect(Mage_Sales_Model_Quote_Address $address) {
        if ($address->getData('address_type') == 'billing')
            return $this;
        $discount = Mage::app()->getRequest()->getParam('global_discount_amount');
        $grandTotal = $address->getGrandTotal();
        $baseGrandTotal = $address->getBaseGrandTotal();
        if(Mage::getSingleton('customer/session')->isLoggedIn() && $discount) {

            $customer =  Mage::getModel('customer/customer')->load(Mage::getSingleton('customer/session')->getId());
            $credit =  Mage::getModel("winints/wallet")
                ->getCustomerStoreCreditTotal($customer->getId());
            if($credit >= $discount) {
                $this->amount = $discount;
            }
            Mage::getSingleton('core/session')->setGlobalDiscount($discount);

            $totals = array_sum($address->getAllTotalAmounts());
            $baseTotals = array_sum($address->getAllBaseTotalAmounts());
            //You have to set Grand and Base Grand Total for this crap to work
            $address->setDiscountAmount(-$discount);
            $address->setBaseDiscountAmount(-$discount);
            $address->setGrandTotal($grandTotal - $discount);
            $address->setBaseGrandTotal($baseGrandTotal - $discount);
            $address->setSubtotal($baseGrandTotal - $discount);

        } else if (Mage::getSingleton('core/session')->getGlobalDiscount()) {
            $discount = Mage::getSingleton('core/session')->getGlobalDiscount();
            $this->amount = Mage::getSingleton('core/session')->getGlobalDiscount();
            $address->setDiscountAmount(-$discount);
            $address->setBaseDiscountAmount(-$discount);
            $address->setGrandTotal($grandTotal - $discount);
            $address->setBaseGrandTotal($baseGrandTotal - $discount);
            $address->setSubtotal($baseGrandTotal - $discount);
        }
        return $this;
    }

    public function fetch(Mage_Sales_Model_Quote_Address $address)
    {
        if(Mage::getSingleton('core/session')->getGlobalDiscount()) {
            if(!$this->set) {
                $address->addTotal(array(
                    'code'=>$this->getCode(),
                    'title'=>Mage::helper('catalog')->__('Global Discount (-)'),
                    'value'=> $this->amount
                ));
                $this->set = 1;
            }
        }
        return $this;
    }
}

我已经完成了教程告诉我的所有事情,我尝试更新基本总计、总计、小计等所有内容。它仍然没有正确匹配

我做错了什么??

还有其他帖子,但不清楚。显然,行项目从总计中计算不正确。 .

【问题讨论】:

    标签: php mysql magento zend-framework paypal


    【解决方案1】:

    想通了,是的,网上的参考资料不正确。

    在你的配置 xml 中

                <globaldiscount>
                    <class>winints/globaldiscount</class>
                    <before>subtotal</before>
                </globaldiscount>
    

    将标签中的之前更改为和值应为“grand_total”

    <after>grand_total</after>
    

    如果您将其放在小计之前或之后,您的折扣将不会考虑总计,因为总计是最后计算的。

    因此您的代码可能会计算小计,但不会计算总计,这可能会给贝宝提供不准确的估计

    【讨论】:

      猜你喜欢
      • 2014-05-25
      • 2012-11-29
      • 2021-01-20
      • 2013-01-08
      • 2012-05-21
      • 1970-01-01
      • 2016-05-05
      • 2016-10-13
      相关资源
      最近更新 更多