Magento-显示含税产品的奖励积分

Magento-显示含税产品的奖励积分,magento,discounts,Magento,Discounts,我们经营一个基于Magento的电子商务网站。它正在运行Magento Enterprise 1.10 我们在英国-所以我们喜欢显示所有价格,包括税(增值税)。我们的商店是以包含增值税的价格建立的,Magento在结账时反算增值税 该网站使用内置的企业奖励积分功能,每消费1英镑,即可为客户提供10点积分 显示奖励点数(当前在目录和购物篮中使用函数“echo$this->getRewardPoints()”)显示包含税的奖励点数(因此,15英镑=150点),但在结账时,使用相同的函数显示项目的潜在

我们经营一个基于Magento的电子商务网站。它正在运行Magento Enterprise 1.10

我们在英国-所以我们喜欢显示所有价格,包括税(增值税)。我们的商店是以包含增值税的价格建立的,Magento在结账时反算增值税

该网站使用内置的企业奖励积分功能,每消费1英镑,即可为客户提供10点积分

显示奖励点数(当前在目录和购物篮中使用函数“echo$this->getRewardPoints()”)显示包含税的奖励点数(因此,15英镑=150点),但在结账时,使用相同的函数显示项目的潜在点数,计算项目的奖励点数减去税(因此,15英镑=120点)

下单时,奖励积分将添加到客户帐户中减去税款。这显然让用户感到困惑

作为一项临时措施,我已停止在屏幕上显示不正确的点数

我们正在寻找以下任何一种:

a)让Magento始终显示包括增值税在内的积分,并在下订单时添加正确数量的积分(并保持积分与英镑的比例不变) b)让Magento始终显示和添加不含增值税的积分-因此我们会将积分与英镑的比例提高以进行补偿


非常感谢您在这方面提供的任何帮助或建议。

我有一个客户也需要它,因此我编写了一个自定义模块,该模块覆盖了仅在税前计算奖励的函数,允许它也计算价格+税收。我刚刚在奖励配置区域添加了一个新选项,以允许计算包括税是或否

我不想经历描述如何创建自定义模块的过程(这方面有大量的资源),但实际执行计算的函数在此文件中: 代码/core/enterprise/reward/model/action/OrderExtra.php

如果您想快速、准确地执行此操作,请找到getPoints函数并将$monetaryAmount计算更改为(如果有$quote):

和(如果没有$quote)

希望有帮助

编辑:getPoints函数的实际代码应该如下所示:

if ($this->_quote) {
        $quote = $this->_quote;
        // known issue: no support for multishipping quote
        $address = $quote->getIsVirtual() ? $quote->getBillingAddress() : $quote->getShippingAddress();
        // use only money customer spend - shipping & tax
        $monetaryAmount = $quote->getBaseGrandTotal() - $address->getBaseShippingAmount();

        // *****CALCULATE POINTS INCLUDING TAX
        $monetaryAmount -= $address->getBaseTaxAmount();

        // set points to 0 if calcualtion is negative
        $monetaryAmount = $monetaryAmount < 0 ? 0 : $monetaryAmount;
    } else {
      // use only money customer spend - shipping
        $monetaryAmount = $this->getEntity()->getBaseTotalPaid() - $this->getEntity()->getBaseShippingAmount();

        // *****CALCULATE POINTS INCLUDING TAX
        $monetaryAmount -= $this->getEntity()->getBaseTaxAmount();
    }
if($this->\u quote){
$quote=$this->\u quote;
//已知问题:不支持多装运报价
$address=$quote->getIsVirtual()?$quote->getBillingAddress():$quote->getShippingAddress();
//仅使用客户花费的资金-运输和税务
$monetaryAmount=$quote->getBaseGrandTotal()-$address->getBaseShippingAmount();
//****计算含税点数
$monetaryAmount-=$address->GetBaseTashAmount();
//如果计算为负,则将点设置为0
$monetaryAmount=$monetaryAmount<0?0:$monetaryAmount;
}否则{
//仅使用客户花费的资金-运输
$monetaryAmount=$this->getEntity()->getBaseTotalPaid()-$this->getEntity()->getBaseShippingAmount();
//****计算含税点数
$monetaryAmount-=$this->getEntity()->getBaseTaxAmount();
}

遇到了同样的问题,但是发现仅仅取消运输税更简单

$monetaryAmount = $quote->getBaseGrandTotal()
- $address->getBaseShippingAmount()
- $address->getBaseShippingTaxAmount();
以及对else函数的更改。完美地工作

$monetaryAmount = $this->getEntity()->getBaseTotalPaid()
- $this->getEntity()->getBaseShippingAmount()
- $this->getEntity()->getBaseShippingTaxAmount();

非常感谢您,这非常有帮助。
$monetaryAmount = $quote->getBaseGrandTotal()
- $address->getBaseShippingAmount()
- $address->getBaseShippingTaxAmount();
$monetaryAmount = $this->getEntity()->getBaseTotalPaid()
- $this->getEntity()->getBaseShippingAmount()
- $this->getEntity()->getBaseShippingTaxAmount();