Account created on 26 August 2015, about 9 years ago
#

Merge Requests

Recent comments

🇪🇸Spain Pandepoulus

I do have IGI configured just for the Andorran store. Anyway, in the Spanish store, when someone buys from outside the EU where there is no appliable tax, as the "prices includes tax" is selected, the resolver tries to look for a "default tax" to substract to the price. And it selects the andorran IGI.

When there is no tax, getDefaultTaxType from StoreTax is called.
the code, which i add here:

  public function getDefaultTaxType(StoreInterface $store) {
    $store_id = $store->id();
    if (!array_key_exists($store_id, $this->storeTaxTypes)) {
      $store_address = $store->getAddress();
      $tax_types = $this->getTaxTypes();
      $this->storeTaxTypes[$store_id] = NULL;
      foreach ($tax_types as $tax_type) {
        /** @var \Drupal\commerce_tax\Plugin\Commerce\TaxType\LocalTaxTypeInterface $tax_type_plugin */
        $tax_type_plugin = $tax_type->getPlugin();
        $matching_zones = $tax_type_plugin->getMatchingZones($store_address);
        if ($matching_zones) {
          $this->storeTaxTypes[$store_id] = $tax_type;
          break;
        }
      }
    }

    return $this->storeTaxTypes[$store_id];
  }

Just iterates for al taxes ($this->getTaxTypes()) and checks for addresses. As IGI is a universal tax, its zone matches and is returned as the default tax for the spanish tax to subsctract the price when there is no tax configured. (outside EU).
There is no validation that the tax is appliable for the store.
Hope i have explained it better.

🇪🇸Spain Pandepoulus

Hello, i can confirm i had some 3ds2 verification fails before applying the patch for big transactions.
Same people could buy after applying the patch at #13.
Kind regards.

Production build 0.71.5 2024