Magento 欧盟增值税税验证失败,未应用客户组更改

Magento EU VAT tax validation fails, customer group change not applied

我们公司已注册增值税,并在提供有效增值税号的情况下从欧盟 B2B 销售中免除增值税。 Magento 版本是 1.9,其中包括对这个税务问题的支持,一旦验证了增值税号,就会自动分配客户组。

最初有一个问题,Magento 显示了两个增值税号输入表单实例,其中一个有效,另一个无效,因此结果不可靠。我随后隐藏了不起作用的增值税表格,但似乎一切正常。如果客户没有阅读从增值税号中删除国家代码的说明,仍然存在问题,这会阻止验证增值税号,但总体而言它是有效的。 最近欧盟VAT reg 客户的VAT 没有被取消,即使手动调整客户账户组到VAT 免税组也没有取消VAT。

似乎没有根据相应的增值税数据库检查增值税税号。我们已尝试使用我们所知的有效增值税号和错误 "Your Tax ID cannot be validated. If you believe this is an error, please contact us at [email address]"

想必每个使用欧盟增值税规则功能的人都遇到了同样的问题,原因可能是超链接被更改这样简单的问题,但搜索没有发现最近有其他类似问题。

有人可以告诉我增值税检查和授权代码在 Magento 的哪个位置吗?

在此先感谢您的帮助。 罗布

Magento 中有 2 个增值税号字段。第一个与客户实体相关,不会针对增值税验证服务进行检查 "VIES"。它只具有一定的信息性,对客户群分配没有影响。

第二个增值税 ID 字段与客户地址实体相关,将针对 VIES 服务进行检查。如果增值税号有效,您的客户将被分配到您定义的客户组(例如 "Valid VAT ID" 等)。重要提示:Magento 不接受带有国家代码前缀的增值税 ID。例如。 "ATU69014309" 不是 Magento 的有效税号。相反,没有国家/地区前缀 "U69014309" 的增值税 ID 是有效的。如果扩展 class Mage_Customer_Helper_Data 的以下方法,您可以轻松解决此问题:

/**
 * Send request to VAT validation service and return validation result
 *
 * @param string $countryCode
 * @param string $vatNumber
 * @param string $requesterCountryCode
 * @param string $requesterVatNumber
 *
 * @return Varien_Object
 */
public function checkVatNumber($countryCode, $vatNumber, $requesterCountryCode = '', $requesterVatNumber = '')
{

    // Remove the country code prefix from the vat number
    $vatNumber = preg_replace("/^[a-z]{2}/i", "", $vatNumber); 

    ...

同样重要:用户在结帐时在地址内输入的增值税 ID 也将被忽略(已知的 Magento 问题)。

亲切的问候, 罗伯特

我必须安装 php_soap 扩展程序才能正常工作。

使用以下命令在 PHP7 上安装 php_soap:

sudo apt install php7.0-soap

在php.ini中找到extension=php_soap.dll,去掉分号(;)

重新启动网络服务器

sudo systemctl restart apache2.service