UPCOMING: Magento 2 Bootcamp of four days in The Netherlands (April 29th - May 2nd)
background

June 16, 2020

Updating Magento tax rates for Germany's temporary tax relief

Yireo Blog Post

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?

The essentials

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?

Posted on June 16, 2020

About the author

Author Jisse Reitsma

Jisse Reitsma is the founder of Yireo, extension developer, developer trainer and 3x Magento Master. His passion is for technology and open source. And he loves talking as well.

Sponsor Yireo

Looking for a training in-house?

Let's get to it!

We don't write too commercial stuff, we focus on the technology (which we love) and we regularly come up with innovative solutions. Via our newsletter, you can keep yourself up to date on all of this coolness. Subscribing only takes seconds.

Do not miss out on what we say

This will be the most interesting spam you have ever read

We don't write too commercial stuff, we focus on the technology (which we love) and we regularly come up with innovative solutions. Via our newsletter, you can keep yourself up to date on all of this coolness. Subscribing only takes seconds.