gwharton/autocustomergroup

此软件包已被废弃且不再维护。作者建议使用 gwharton/module-autocustomergroup 软件包。

GWharton AutoCustomerGroup

安装: 633

依赖: 0

建议者: 0

安全: 0

星标: 17

关注者: 8

分支: 4

开放问题: 1

类型:magento2-module

v0.7.1 2024-07-11 13:00 UTC

README

Magento 2 模块 - 基于 Tax Scheme 验证自动分配客户组

功能

  • 适用于 UK、EU、挪威 VOEC、AU GST 和 NZ GST 方案
  • 在前端结账时验证客户 Tax ID,包括向客户反馈验证状态。
  • 根据订单内容、Tax ID 和国家自动更改前端订单的客户组。
  • 管理员创建客户 - Tax ID 将在订单地址中验证并保存,但组更改功能被禁用(仅在下单时可用)。
  • 管理员创建订单 - 使用“验证”链接在创建订单时验证 Tax ID,如果适用,则将客户分配到新组。
  • 可选择将方案货币添加到基础货币列表以自动下载汇率,或使用硬编码的汇率。
  • 模块可以被禁用,从而恢复旧版 Magento 功能。模块可以在每个商店的基础上启用/禁用,一个商店使用旧功能,另一个商店使用新功能。
  • 扩展税率功能,允许将税率链接到税方案
  • 包含代码以允许检索订单税率和链接的税方案,例如在生成发票 PDF 时,可以根据订单上使用的税率添加税方案详细信息。(以下为示例代码)
  • 记录订单上使用的税方案详细信息到新的表 sales_order_tax_scheme。
  • 销售订单网格列显示订单的税方案详细信息。

概述

引入的 UK 和 EU 增值税税制变更需要修改 Magento 税制。这些变更需要紧急处理,在 Magento 考虑所需的变更并努力找到永久解决方案的同时,此模块可以作为临时措施使用。

应将此模块视为测试版。我鼓励用户分析代码,提出改进建议,在适用的情况下生成 PR。

一旦客户被放置在合适的组中,就可以配置税则,为每个组应用不同的税。

启用时,此模块替换现有的 Magento VIV 功能,以使用一个更可扩展的新系统。禁用时,将恢复现有的 Magento 功能。

如果将价格范围设置为每个网站,则模块允许每个网站使用不同的基础货币。

通用

  • 启用自动分配到客户组 - 激活和停用模块。关闭时,将使用现有的 Magento 设置处理订单,并在前端使用现有的 VAT 控制。
  • 每次交易验证 - 如果订单是由存储在客户送货地址中的现有 Tax ID 验证数据存储的客户提交的,则可以将其用于每个后续订单,或者每次都可以重新验证。
  • VAT/Tax Identifier 前端标签 - 结账时 VAT/Tax Id 输入框的标签。
  • 启用下载额外的基础货币 - 将方案货币(对于启用的方案)添加到 Magento 基础货币列表中。这允许下载正确的汇率用于本模块。这可以在“商店”>“货币汇率”中验证。
  • 启用将税制详情记录到sales_order_tax_scheme表 - 当下单时,如果触发了与税制相关的税则,则税制信息将被记录在数据库的sales_order_tax_scheme表中。
  • 访客订单的默认客户组 - 将访客订单分配给哪个客户组。

前端验证反馈

当启用时,此模块将替换前端表单元素中的VAT/税号输入框。如果当前选定的国家与一个税制相关联,并且该税制已启用,且在前端输入有效的VAT/税号格式,则该ID将通过相关税制进行验证,并将结果显示给客户。一旦选择了具有有效税制的国家,客户将在输入字段上方看到一个提示,通知他们需要输入的内容。

有效的爱尔兰VAT号码

格式正确但无效

格式错误

有效的英国VAT号码

英国VAT方案

  • 启用 - 启用/禁用此方案。
  • 税号字段 - 在使用此方案时显示给客户。
  • 环境 - 是否使用沙盒或生产服务器进行HMRC VAT验证服务。
  • VAT登记号 - 商家的英国VAT登记号。在所有验证检查完成后,此号将提供给HMRC。
  • 进口VAT阈值 - 如果订单价值超过VAT阈值,则不应收取VAT。
  • 使用Magento汇率 - 将GBP阈值转换为商店货币阈值时,我们应该使用Magento汇率还是我们自己的汇率。
  • 汇率 - 用于将GBP阈值转换为商店货币阈值的汇率。
  • 客户组 - 国内 - 商家国家位于英国/IM,商品将被运送到英国/IM。
  • 客户组 - 欧盟内部B2B - 商家国家位于欧盟,商品将被运送到北爱尔兰,已提供验证的英国VAT号码。
  • 客户组 - 欧盟内部B2C - 商家国家位于欧盟,商品将被运送到北爱尔兰,未提供验证的英国VAT号码。
  • 客户组 - 进口B2B - 商家国家不在英国/IM,商品将被运送到英国/IM,已提供验证的欧盟VAT号码。
  • 客户组 - 进口征税 - 商家国家不在英国/IM,商品将被运送到英国/IM,订单价值低于或等于进口VAT阈值。
  • 客户组 - 进口免税 - 商家国家不在英国/群岛,商品将被运送到英国/群岛,订单价值超过进口VAT阈值。

欧盟OSS/IOSS方案

  • 启用 - 启用/禁用此方案。
  • 税号字段 - 在使用此方案时显示给客户。
  • VIES登记国家 - 可选。必须是有效的欧盟国家,如果完成,它将与验证请求一起传递给VIES,并将返回一个唯一的验证码,并将作为验证证明与订单一起存储。
  • VIES登记号 - 可选。必须是有效的欧盟VAT号码,如果完成,它将与验证请求一起传递给VIES,并将返回一个唯一的验证码,并将作为验证证明与订单一起存储。
  • VAT登记号 - 商家的方案登记号。
  • 环境 - 是否使用沙盒或生产服务器进行VIES VAT验证服务。
  • 进口VAT阈值 - 如果订单价值超过VAT阈值,则不应收取VAT。
  • 使用Magento汇率 - 将EUR阈值转换为商店货币阈值时,我们应该使用Magento汇率还是我们自己的汇率。
  • 汇率 - 用于将EUR阈值转换为商店货币阈值的汇率。
  • 客户组 - 国内 - 商家国家位于欧盟,商品将被运送到同一国家。
  • 客户群体 - 欧盟内部B2B - 商家所在国位于欧盟或北爱尔兰,商品被运往欧盟,商家所在国和发货国不相同,已提供验证的欧盟增值税号。
  • 客户群体 - 欧盟内部B2C - 商家所在国位于欧盟或北爱尔兰,商品被运往欧盟,商家所在国和发货国不相同,未提供验证的欧盟增值税号。
  • 客户群体 - 进口B2B - 商家所在国不在欧盟,商品被运往欧盟,已提供验证的欧盟增值税号。
  • 客户群体 - 进口征税 - 商家所在国不在欧盟,商品被运往欧盟,订单金额低于或等于进口增值税门槛。
  • 客户群体 - 进口免税 - 商家所在国不在欧盟,商品被运往欧盟,订单金额高于进口增值税门槛。

挪威VOEC方案

  • 启用 - 启用/禁用此方案。
  • 税号字段 - 在使用此方案时显示给客户。
  • VOEC注册号码 - 商家的挪威VOEC注册号码。该模块目前不使用此号码。
  • 进口增值税门槛 - 如果订单中任何单个商品的金额超过增值税门槛,则不应收取增值税。
  • 使用Magento汇率 - 从NOK门槛转换为商店货币门槛时,应使用Magento汇率还是我们自己的汇率。
  • 汇率 - 用于将NOK门槛转换为商店货币门槛的汇率。
  • 客户群体 - 国内 - 商家所在国位于挪威,商品被运往挪威。
  • 客户群体 - 进口B2B - 商家所在国不在挪威,商品被运往挪威,提供了挪威企业编号。
  • 客户群体 - 进口征税 - 商家所在国不在挪威,商品被运往挪威,所有商品的价值均低于或等于进口增值税门槛。
  • 客户群体 - 进口免税 - 商家所在国不在挪威,商品被运往挪威,订单中有一个或多个商品的价值高于进口增值税门槛。

澳大利亚非居民GST方案

  • 启用 - 启用/禁用此方案。
  • 税号字段 - 在使用此方案时显示给客户。
  • ABN API GUID - 澳大利亚商业注册网站提供的API访问GUID。
  • ATO注册号码 - 商家的ATO注册号码。该模块目前不使用此号码。
  • 进口GST门槛 - 如果订单金额超过GST门槛,则不应收取GST。
  • 使用Magento汇率 - 将AUD门槛转换为商店货币门槛时,应使用Magento汇率还是我们自己的汇率。
  • 汇率 - 用于将AUD门槛转换为商店货币门槛的汇率。
  • 客户群体 - 国内 - 商家所在国位于澳大利亚,商品被运往澳大利亚。
  • 客户群体 - 进口B2B - 商家所在国不在澳大利亚,商品被运往澳大利亚,提供了验证的GST ABN号码。
  • 客户群体 - 进口征税 - 商家所在国不在澳大利亚,商品被运往澳大利亚,订单金额低于或等于进口GST门槛。
  • 客户群体 - 进口免税 - 商家所在国不在澳大利亚,商品被运往澳大利亚,订单金额高于进口GST门槛。

新西兰GST方案

  • 启用 - 启用/禁用此方案。
  • 税号字段 - 在使用此方案时显示给客户。
  • 在线验证 - 是否应在线验证客户的NZBN号码以进行GST注册。(请注意,并非所有企业的GST注册状态都记录在NZBN检查网站上,因此应谨慎使用此设置。如果记录注册状态成为强制性的,则此设置可能会在未来发生变化。)
  • 环境 - 是否使用沙箱或生产服务器进行NZBN验证服务。
  • API访问令牌 - NZBN商业注册网站提供的API访问令牌。
  • GST注册号码 - 商家的GST注册号码。该模块目前不使用此号码。
  • 进口GST门槛 - 如果订单金额超过GST门槛,则不应收取GST。
  • 使用 Magento 汇率 - 从新西兰元阈值转换为商店货币阈值,我们应该使用 Magento 汇率还是我们自己的。
  • 汇率 - 用于将新西兰元阈值转换为商店货币阈值的汇率。
  • 客户组 - 国内 - 商家国家位于新西兰,商品正在运往新西兰。
  • 客户组 - 进口B2B - 商家国家不在新西兰,商品正在运往新西兰,已提供GST号码。
  • 客户组 - 进口征税 - 商家国家不在新西兰,商品正在运往新西兰,所有商品的价值均不超过进口GST阈值。
  • 客户组 - 进口免税 - 商家国家不在新西兰,商品正在运往新西兰,订单中有一个或多个商品的价值超过进口GST阈值。

税务规则到税务方案链接

该模块允许您将每个税务规则链接到特定的税务方案。在后序功能中,这允许您使用订单详情查询此模块,获取适用于订单的税务规则列表,并返回与这些规则链接的税务方案注册号。这在生成发票时很有用。

这些链接可以在现有的税务规则屏幕下设置

销售订单网格

该模块引入了一个新的销售订单网格列,将显示订单所使用的税务方案详情。

获取订单使用的税务方案信息

每当订单触发与税务方案链接的税务规则时,该模块都会将附加信息存储到 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());
}

集成测试

要运行集成测试,您需要澳大利亚ID检查服务的凭据。请将它们添加到 config-global.php。针对英国(沙盒)、欧盟和澳大利亚的测试使用实时API。

  • autocustomergroup/australiagst/apiguid
  • autocustomergroup/newzealandgst/accesstoken