End of May, the German government made a decision to relieve their taxes a bit to help businesses get through the Corona crisis. This starts on July 1st and stops at the end of 2020. How to modify Magento for changes like these?
Tax rates in Magento (both Magento 2 and the now end-of-life Magento 1) are managed either manually or by importing tax rates from a CSV file. Each rate has a reference to a country, optional region, optional ZIP code and obviously the percentage rate itself: The percentage rate is applied to a specific product group (because different products have different taxes in different countries) through a tax rule.
The unfortunate thing is that these tax rates change. For instance, the German standard VAT rate for wooden clogs and bicycles (I'm Dutch) is currently 19% but it will drop to 16% per July 1st 2020. Additionally, the reduced German rate for cheese is currently 7% but it will drop on the same day to 5%. To be complying to this change fully, you would need to apply this rate to the very first order from a German customer that comes in on the morning of July 1st.
To automate such a change is key. But how?
Open source to the rescue (well, partially)
For years now, I've been maintaining a fairly accurate listing of tax rates that could be directly imported into Magento. The listing is open source and placed on GitHub: github.com/yireo/Magento_EU_Tax_Rates. There are various tax rates maintained, but the main file is tax_rates_eu.csv which holds all the rates of countries within the EU (hence the name of the repository).
You can simply download the CSV file and upload it again to Magento and this solves the issue. The only thing is that you need to wake up early on July 1st to do so. Or at least earlier than the earliest customer.
The rates are maintained by me personally. And to anticipate the change a cronjob will be running to pick up on a
diff file in the same repository, apply it to the
tax_rates_eu.csv file, commit the changes, push and done. If you want, you can test this locally yourself as well (
git apply x.diff).
Full automation with Yireo TaxRatesManager
Still, this requires a manual action: You need to login to the Magento Admin Panel, upload the CSV file and apply the rules. This is where the Yireo TaxRatesManager extension comes to the rescue (Magento 1, Magento 2). For a price that equals hiring a professional developer for one hour (around 100 USD), the extension simply monitors the GitHub repository mentioned above and automatically applies any change in the Magento tax rules.
I'm personally using the extension for about three years now and haven't had any issues with tax changes. Any numerous customers also experience the same thing. Perhaps, that's how good extensions work the best: By running in the background, without you needing to worry about it.
How are you managing your tax rates?