45 $customerCountryCode = $quoteAddress->getCountryId();
46 $customerVatNumber = $quoteAddress->getVatId();
48 $merchantCountryCode = $this->customerVat->getMerchantCountryCode();
49 $merchantVatNumber = $this->customerVat->getMerchantVatNumber();
51 $validationResult =
null;
52 if ($this->customerAddress->hasValidateOnEachTransaction(
55 $customerCountryCode != $quoteAddress->getValidatedCountryCode() ||
56 $customerVatNumber != $quoteAddress->getValidatedVatNumber()
59 $validationResult = $this->customerVat->checkVatNumber(
62 $merchantVatNumber !==
'' ? $merchantCountryCode :
'',
67 $quoteAddress->setVatIsValid((
int)$validationResult->getIsValid());
68 $quoteAddress->setVatRequestId($validationResult->getRequestIdentifier());
69 $quoteAddress->setVatRequestDate($validationResult->getRequestDate());
70 $quoteAddress->setVatRequestSuccess($validationResult->getRequestSuccess());
71 $quoteAddress->setValidatedVatNumber($customerVatNumber);
72 $quoteAddress->setValidatedCountryCode($customerCountryCode);
73 $quoteAddress->save();
76 $validationResult = new \Magento\Framework\DataObject(
78 'is_valid' => (
int)$quoteAddress->getVatIsValid(),
79 'request_identifier' => (string)$quoteAddress->getVatRequestId(),
80 'request_date' => (string)$quoteAddress->getVatRequestDate(),
81 'request_success' => (bool)$quoteAddress->getVatRequestSuccess(),
86 return $validationResult;
98 $configAddressType = $this->customerAddress->getTaxCalculationAddressType(
$store);
101 $additionalBillingAddressCondition = $configAddressType ==
102 \Magento\Customer\Model\Address\AbstractAddress::TYPE_BILLING ? $configAddressType !=
103 $quoteAddress->getAddressType() :
false;
106 if (!$this->customerAddress->isVatValidationEnabled(
$store) || $additionalBillingAddressCondition) {
__construct(\Magento\Customer\Helper\Address $customerAddress, \Magento\Customer\Model\Vat $customerVat)
isEnabled(\Magento\Quote\Model\Quote\Address $quoteAddress, $store)
validate(\Magento\Quote\Model\Quote\Address $quoteAddress, $store)