首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在漏电结帐中重新计算项目价格

在漏电结帐中重新计算项目价格
EN

Stack Overflow用户
提问于 2016-01-17 22:05:11
回答 1查看 773关注 0票数 0

我使用的付款方法,接受处理付款在分期付款。在使用分期付款时,需要使用未折扣的价格,因此我已经向sales_quote_collect_totals_before注册了一个观察者,以便在选中prices选项时强制重新计算项目价格(代码如下)。

  1. 遍历单页签出过程
  2. 到达付款信息部分
  3. 选择付款方式
  4. 检查installments选项
  5. 单击“继续”
  6. 到达手推车复习
  7. 注意,价格没有更新(即使观察者已经被执行)
  8. 退回到付款方法的选择
  9. 再次单击“继续”
  10. 到达手推车复习
  11. 现在价格已经更新了

有人能解释原因吗?并可能给出一个解决方案,说明我如何可以跳过步骤6-11 :-)?

代码语言:javascript
复制
$installments = /* has the option been checked */

/** @var Mage_Sales_Model_Quote_Item $item */
foreach ($quote->getAllItems() as $item) {
    $product = $item->getProduct();
    $qty = $item->getQty();

    $price = $installments ? $product->getPrice() : $product->getFinalPrice($qty);

    if ($price == $item->getOriginalCustomPrice()) {
        continue;
    }

    $item->setPrice($price);
    $item->setCustomPrice($price);
    $item->setOriginalCustomPrice($price);

    $item->calcRowTotal();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-20 22:52:27

好的,我自己找到了答案。

显然,Mage_Sales_Model_Quote_Payment::importData在分配新的支付数据之前执行Mage_Sales_Model_Quote::collectTotals,然后totals_collected_flag阻止重新计算。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34844313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档