Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento更改总计_Magento_Events_Observers_Totals - Fatal编程技术网

Magento更改总计

Magento更改总计,magento,events,observers,totals,Magento,Events,Observers,Totals,我有一个要求,客户只需在线支付总金额的一定百分比。其余的是实物支付。因此,如果客户购买100美元的产品,那么他只需支付其中的5%,即仅需支付5美元。因此,购物车、结帐、订单、发票、信用备忘录等总共需要5美元。我试图通过创建一个新的总数来实现它,如下面的教程中所示。但后来我想我不需要添加新的总数,只需要修改总数。因此,我尝试通过观察事件sales(销售)_quote(报价)_collect(收集)_totals(总计)_,之后我根据需要更改了总计和基本总计)来实现观察者。但保存后,总计仍然更改为原

我有一个要求,客户只需在线支付总金额的一定百分比。其余的是实物支付。因此,如果客户购买100美元的产品,那么他只需支付其中的5%,即仅需支付5美元。因此,购物车、结帐、订单、发票、信用备忘录等总共需要5美元。我试图通过创建一个新的总数来实现它,如下面的教程中所示。但后来我想我不需要添加新的总数,只需要修改总数。因此,我尝试通过观察事件sales(销售)_quote(报价)_collect(收集)_totals(总计)_,之后我根据需要更改了总计和基本总计)来实现观察者。但保存后,总计仍然更改为原始总计,而不是修改后的总计。 以下是我如何实现observer的示例:

public function calculatePartialPrice($observer) {
    $quote = $observer->getEvent()->getQuote();
    $grandTotal = $quote->getGrandTotal();
    $baseGrandTotal = $quote->getBaseGrandTotal();
    $partialPrice = $grandTotal * 0.05;
    $basePartialPrice = $baseGrandTotal * 0.05;
    $quote->setGrandTotal($partialPrice);
    $quote->setBaseGrandTotal($basePartialPrice);
    $quote->save();
}
这是我的配置文件:

<events>
        <sales_quote_collect_totals_after>
            <observers>
                <partial_price_observer>
                    <type>singleton</type>
                    <class>magesage_partialprice/observer</class>
                    <method>calculatePartialPrice</method>
                </partial_price_observer>
            </observers>
        </sales_quote_collect_totals_after>
    </events>

独生子女
麦哲哲·帕蒂尔普莱斯/观察员
计算部分价格

请建议我的代码有什么问题,或者建议更好的实现方法。

尝试将grand_total&base_grand_total更改为subtotal和base_subtotal Setters我尝试了$quote->setGrandTotal($partialPrice);和$quote->setbasegrandotal($basePartialPrice);但这种变化只在观察者函数中出现,但后来总数又变回原来的总数。