New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Handling of EU-VAT / strategy not flexible enough? #3933
Comments
Hey @laf0rge We have been able to solve this in our own stack So in the strategy you do have the user: We have a one-step checkout which makes it that every time the customer changes something on their address / payment method or whatever the prices are updated. We actually set a META key on the request with the shipping country selected by the customer. We actually assign zero VAT when it's intra VAT or outside Europe. This way you will only do some logic in your get_rate method. Also keep the shipping methods in mind. For Belgium for example the shipping rate is always 6% where the products can be something completely different. After that you will also have the following problem: When using prices including tax and intra-eu with VAT case is going on you can do two things.
|
Adding to this, I think there can be some improvements in Oscar to make it easier to do this but I don't think there is a good out of the box solution for this. There are so many edge cases which can be different per customer. I think the Europe got in way over their head with this, a lot of my customer complain about this being way to much work and way to complicated to work with bookkeeping wise. |
thanks for your feedback. Regarding the "complexity": I actually find EU vat rules super simple compared to the many other administrative challenges of running a small business [like creating+filing customs declarations for export of IT stuff], and it was very easy to implement all of that even in our ancient Odoo 9 ERP system (predating any of the new OSS rules). In any case, I'm currently looking at alternative options than django-oscar again. It would have been nice to stay in a decent python codebase.... |
Sorry to hear you're looking at other options. You can keep track of the This does not solve anything up to the ordering part but we do not lose the information after the order has been placed. You do have to understand Oscar is a webshop framework, not a SaaS solution or ERP system where al these things are accounted for. |
I'm currently exploring the option of setting up a django-oscar based webshop in the EU. I'm an experienced software developer myself, so extending oscar is generally not a problem, and I'm happy to do so.
However, I think the core infrastructure is insufficient to cover the requirements (which IMHO are identical for any online shop operating in any EU member country).
Depending on the shipping address, there are the following cases:
In the context of the oscar 'strategy', the logical conclusion would be to use DeferredTax, i.e. not compute any taxes until very late in the checkout process. However, this is not in line with consumer laws, as the pricing in the shop, at least towards consumers must always be displayed including of taxes.
So far I'm working on the following:
Conceptually, this works for the "19% VAT inside Germany" case, and for the "0% VAT cases (outside EU; intra-EU with VAT-ID).
However, it doesn't work for the intra-EU with VAT case. There is a get_rate() method, but the get_rate only gets the product and the stockrecord as parameter, but not the user. Without knowing the user, we don't know the default shipping address, and hence have no clue where the product goes, so we cannot return a destinatin-country specific tax rate.
Did anyone already solve this problem? I'd be surprised if I'm the first person to set up a webshop in the EU using oscar... Thanks!
The text was updated successfully, but these errors were encountered: