Php 如何为Magento 2订单编程应用税后折扣?
我已经在Magento 2中以编程方式创建了一个订单。 我获得了以下数据:Php 如何为Magento 2订单编程应用税后折扣?,php,magento,magento2,magento2.2,Php,Magento,Magento2,Magento2.2,我已经在Magento 2中以编程方式创建了一个订单。 我获得了以下数据: 物品价值:10美元 税率:20% 折扣:2美元 总计:10美元 现在,税收包含了产品价格,因此在Magento 2中默认情况下: 物品价格:$10 折扣后的商品价格:$8 税款:8美元的20%=1.6美元 总计:8美元+1.6美元=9.6美元 总计与提供的不相同。 我想添加税后折扣计算。对于税务配置,有两种方法可以解决此问题。 在后端配置中: 申请客户税->设置“折扣前”;我想这应该能解决你的问题 您也可以为以下
- 物品价值:10美元
- 税率:20%
- 折扣:2美元
- 总计:10美元
- 物品价格:$10
- 折扣后的商品价格:$8
- 税款:8美元的20%=1.6美元
- 总计:8美元+1.6美元=9.6美元
我想添加税后折扣计算。对于税务配置,有两种方法可以解决此问题。 在后端配置中: 申请客户税->设置“折扣前”;我想这应该能解决你的问题 您也可以为以下内容自定义代码: 在di.xml中,添加如下内容:
<preference for="Magento\Tax\Model\Sales\Total\Quote\Tax" type="<yournamespace>\<yourModule>\Model\Sales\Total\Quote\Tax"/>
现在创建类文件Tax.php并添加以下代码:
namespace <yournamespace>\<yourModule>\Model\Sales\Total\Quote;
class Tax extends \Magento\Tax\Model\Sales\Total\Quote\Tax
{
/* override code here */
public function __construct(
/* add dependency classes here */ ) {
parent::__construct(
/* parent class objects here */
);
}
/**
* Custom Collect tax totals for quote address
*
* @param Quote $quote
* @param ShippingAssignmentInterface $shippingAssignment
* @param Address\Total $total
* @return $this
*/
public function collect(
\Magento\Quote\Model\Quote $quote,
\Magento\Quote\Api\Data\ShippingAssignmentInterface $shippingAssignment,
\Magento\Quote\Model\Quote\Address\Total $total
) {
/* your calculation here goes here */
$total->setTaxAmount($set_your_tax_here);
return $this;
}
}
namespace\\Model\Sales\Total\Quote;
类别税扩展\Magento\Tax\Model\Sales\Total\Quote\Tax
{
/*在这里重写代码*/
公共函数构造(
/*在此处添加依赖项类*/){
父项::u构造(
/*这里的父类对象*/
);
}
/**
*报价地址的自定义征税总额
*
*@param Quote$Quote
*@param shippingAssignment接口$shippingAssignment
*@param Address\Total$Total
*@return$this
*/
公共功能收集(
\Magento\Quote\Model\Quote$Quote,
\Magento\Quote\Api\Data\shippingAssignment接口$shippingAssignment,
\Magento\Quote\Model\Quote\Address\Total$Total
) {
/*你的计算在这里*/
$total->setTaxAmount($set\u your\u tax\u here);
退还$this;
}
}
希望这有帮助 对于税务配置,有两种方法可以解决此问题。 在后端配置中: 申请客户税->设置“折扣前”;我想这应该能解决你的问题 您也可以为以下内容自定义代码: 在di.xml中,添加如下内容:
<preference for="Magento\Tax\Model\Sales\Total\Quote\Tax" type="<yournamespace>\<yourModule>\Model\Sales\Total\Quote\Tax"/>
现在创建类文件Tax.php并添加以下代码:
namespace <yournamespace>\<yourModule>\Model\Sales\Total\Quote;
class Tax extends \Magento\Tax\Model\Sales\Total\Quote\Tax
{
/* override code here */
public function __construct(
/* add dependency classes here */ ) {
parent::__construct(
/* parent class objects here */
);
}
/**
* Custom Collect tax totals for quote address
*
* @param Quote $quote
* @param ShippingAssignmentInterface $shippingAssignment
* @param Address\Total $total
* @return $this
*/
public function collect(
\Magento\Quote\Model\Quote $quote,
\Magento\Quote\Api\Data\ShippingAssignmentInterface $shippingAssignment,
\Magento\Quote\Model\Quote\Address\Total $total
) {
/* your calculation here goes here */
$total->setTaxAmount($set_your_tax_here);
return $this;
}
}
namespace\\Model\Sales\Total\Quote;
类别税扩展\Magento\Tax\Model\Sales\Total\Quote\Tax
{
/*在这里重写代码*/
公共函数构造(
/*在此处添加依赖项类*/){
父项::u构造(
/*这里的父类对象*/
);
}
/**
*报价地址的自定义征税总额
*
*@param Quote$Quote
*@param shippingAssignment接口$shippingAssignment
*@param Address\Total$Total
*@return$this
*/
公共功能收集(
\Magento\Quote\Model\Quote$Quote,
\Magento\Quote\Api\Data\shippingAssignment接口$shippingAssignment,
\Magento\Quote\Model\Quote\Address\Total$Total
) {
/*你的计算在这里*/
$total->setTaxAmount($set\u your\u tax\u here);
退还$this;
}
}
希望这有帮助 是的,你可以。。。。您可以使用默认FPT,并可以根据需要修改税额。 您可以在事件后使用“销售”\u“报价”\u“收集”\u“总计”\u以编程方式更改产品税额
这个答案您也可以在上面覆盖的税务模型中尝试,它工作得很好。是的,您可以。。。。您可以使用默认FPT,并可以根据需要修改税额。 您可以在事件后使用“销售”\u“报价”\u“收集”\u“总计”\u以编程方式更改产品税额
您也可以在上面覆盖的税务模型中尝试这个答案,它工作正常。hi@Pallavi,我们可以为报价项目设置自定义税务价格吗?hi@Pallavi,我们可以为报价项目设置自定义税务价格吗?