gwharton / module-autocustomergroup
Requires
- magento/framework: *
- magento/module-catalog: *
- magento/module-checkout: *
- magento/module-customer: *
- magento/module-directory: *
- magento/module-quote: *
- magento/module-sales: *
- magento/module-store: *
- magento/module-tax: *
- psr/log: *
README
Magento 2 模块 - 根据税制验证自动分配客户组
功能
- 提供针对英国、欧盟、挪威VOEC、澳大利亚GST和新西兰GST方案的特定国家模块插件
- 在前端结账时验证客户税号,包括向客户反馈验证状态。
- 根据订单内容、税号和国家自动更改客户组。
- 管理员创建客户 - 税号将在订单地址中验证并保存,但组变更功能禁用(仅在下单时可用)。
- 管理员创建订单 - 使用“验证”链接在创建订单时验证税号,如果适用,则分配新组。
- 可选择将方案货币添加到基本货币列表以自动下载汇率,或使用硬编码的汇率。
- 可以禁用模块,以恢复旧版Magento功能。模块可以在每个店铺的基础上启用/禁用,一个店铺使用旧功能,另一个店铺使用新功能。
- 扩展税率功能,允许将税率链接到税制。
- 包括代码以允许检索订单税率和关联的税制,例如在生成发票PDF时,可以根据订单上使用的税率向PDF添加税制详情。(以下示例代码)
- 将订单上使用的税制详情记录到新表 sales_order_tax_scheme。
- 销售订单网格列以显示订单的税制详情。
特定国家模块
要使此模块生效,您需要安装一个或多个特定国家模块。安装适用于您销售的国家(不是销售给)的所有模块。如果您为AutoCustomerGroup编写了模块,请告诉我,以便我可以在此处列出。
可用模块
- composer require gwharton/module-autocustomergroup-australia
- composer require gwharton/module-autocustomergroup-eu
- composer require gwharton/module-autocustomergroup-newzealand
- composer require gwharton/module-autocustomergroup-norway
- composer require gwharton/module-autocustomergroup-uk
概述
全球各国针对各种税制进行的更改,以更好地支持在线购物,并不被Magento税系统很好地支持。这些更改是紧急需要的,在Magento考虑这些更改并努力寻找永久解决方案的同时,此模块可以作为临时措施使用。
该模块应被视为BETA版本。我鼓励用户分析代码,提出改进建议,并在适用的情况下生成PR。
一旦客户被放置到合适的组中,就可以配置税则,根据需要为每个组应用不同的税。
启用时,此模块将用新的、更可扩展的系统替换现有的Magento VIV功能。禁用模块时,将恢复现有Magento功能。
如果将价格范围设置为每个网站,则模块允许每个网站使用不同的基本货币。
配置选项
- 启用模块 - 此选项激活和停用模块。关闭时,将使用现有的Magento设置处理订单,并在前端使用现有的VAT控制。可以在每个网站上启用和停用模块。
- 每次交易验证 - 如果客户正在放置具有存储在他们的送货地址中的现有税号验证数据的订单,则可以在每个后续订单中重用它,或者每次都可以重新验证。此选项仅适用于具有存储送货地址的账户的客户。对于访客结账,此选项没有任何作用。
- 增值税/税号前端标签 - 结账时增值税/税号输入框的标签。Magent的默认值为“增值税号”。本模块的默认值为“税号”,但您可以将其设置为任何您喜欢的名称。
- 启用下载附加基础货币 - 要启用使用Magent货币子系统进行进口门槛的货币转换,需要将启用的方案货币配置为Magent中的附加基础货币。启用此设置后,需要触发货币下载。这允许下载正确的汇率以供本模块使用,前提是您没有在插件模块中选择使用手动汇率。这可以在“商店”->“货币汇率”中进行验证。
- 启用记录税方案详细信息到sales_order_tax_scheme表 - 当下单并触发与税方案关联的税规则时,税方案信息将记录在数据库中的sales_order_tax_scheme表中。
- 访客订单的默认客户组 - 如果订单是访客订单,并且没有方案生成组变更,则应使用哪个组。(现有客户在由本模块更改之前将分配其正确的客户组)。
前端验证反馈
当启用时,此模块将替换前端VAT/税号输入框的表单元素。如果当前选定的国家/地区与一个相关的税方案相关联,并且启用了税方案,并在前端输入有效的格式增值税/税号,则该ID将通过相关税方案进行验证,并将结果显示给客户。一旦选择了一个与有效税方案相关联的国家/地区,客户就会在输入字段上方看到一个提示,通知他们需要输入什么。
有效的爱尔兰增值税号
格式正确但无效
格式错误
有效的英国增值税号
税规则到税方案的链接
本模块允许您将每个税规则链接到特定的税方案。在顺序函数中,这允许您使用订单详情查询此模块,并获得适用于订单的税规则列表,并返回与这些规则链接的税方案注册号。这在例如生成发票时很有用。
可以在现有的税规则屏幕下设置链接
销售订单网格
本模块引入了一个新的销售订单网格列,将显示订单使用的税方案详情。
获取订单上使用的税方案信息
每当下单触发与税方案链接的税规则时,本模块都会将附加信息存储到sales_order_tax_scheme表中。
可以轻松访问这些信息,以便将订单上使用的税方案信息包括在发票PDF等中。
以下代码显示了如何实现此功能。
use Gw\AutoCustomerGroup\Model\ResourceModel\OrderTaxScheme\CollectionFactory;
/**
* @var CollectionFactory
*/
private $orderTaxSchemeCollectionFactory;
...
...
...
$orderTaxSchemes = $this->orderTaxSchemeCollectionFactory->create()->loadByOrder($order);
foreach ($orderTaxSchemes as $orderTaxScheme) {
$storeCurrency = $this->currencyFactory->create()->load($orderTaxScheme->getStoreCurrency());
$schemeCurrency = $this->currencyFactory->create()->load($orderTaxScheme->getSchemeCurrency());
$baseCurrency = $this->currencyFactory->create()->load($orderTaxScheme->getBaseCurrency());
output("TAX Summary - " . $orderTaxScheme->getName());
output("Registration Number - " . $orderTaxScheme->getReference());
}
已知限制
以下Magent中的总计收集器在评估是否需要任何组更改之前运行。
- Magento\Quote\Model\Quote\Address\Total\Subtotal
- Magento\Tax\Model\Sales\Total\Quote\Subtotal
- Magento\Weee\Model\Total\Quote\Weee
- Magento\SalesRule\Model\Quote\Discount
如果订单包含折扣或weee费用,则这些费用将在评估任何订单门槛之前包含在订单总和中。虽然这意味着订单将包括折扣和weee费用进行正确评估,但如果此模块确定客户组应更改,则在组更改后不会重新评估订单上的折扣和weee费用。例如,如果您有一个应用于默认客户组的订单的折扣,并且该模块将客户组调整为一个不适用折扣的组,则该折扣仍将应用于订单。