medusajs / medusa

The world's most flexible commerce platform.
https://medusajs.com
MIT License
25.85k stars 2.59k forks source link

Don't add tax to shipping cost, it should already be included #762

Closed inallermunde closed 11 months ago

inallermunde commented 3 years ago

I've noticed that medusa, when calculating the total of an order, also adds tax to the shipping costs set in the backend. Should'nt shipping costs always include the tax already? As far as I know, that's the case in most countries? Or there could be an option to turn it on or off.

srindom commented 3 years ago

Hi @inallermunde! You a touching on an area that we still have to figure out how to tackle in the best way - we have a more advanced Tax API planned that will also allow you to integrate with tools like Avalara.

As far as I understand the question of taxes on shipping really differs between regions - in the US, for example, shipping is taxable in some states and not others. I don't know where you are based, but within the EU (+UK) shipping is taxable. See this article: https://mygermany.com/ufaqs/why-do-i-need-to-pay-vat-value-added-tax-on-the-shipping-charge-or-the-number-of-goods/#:~:text=You%20only%20pay%20VAT%20if,listed%20on%20the%20shipping%20bill.&text=You%20only%20pay%20VAT%20when%20you%20purchase%20goods%20within%20the%20European%20Union.

inallermunde commented 3 years ago

Hi @srindom, thanks for the quick answer. I'm based in Germany. I just researched it more and I'm kinda confused, since when I just use the cost from i.e. DHL as shipping costs, then that is only taxed, when the package is above a certain size. In my case, that would mean probably never. In which case I would need to add tax at the checkout. But when one would want to calculate a flat rate for shipping costs, with i.e. costs for packaging and tape included, that value would probably already have tax included, in which case the tax wouldn't need to be added again? The manual shipping method for example says flat rate for the shipping costs, at least in the admin ui, which I interpret as tax already included. So a setting for shipping options where you can enable or disable tax for that shipping option might be the best option. Please correct me if I'm wrong, though.

srindom commented 3 years ago

So just to be clear: the confusing part is that Medusa Admin shows "Flat rate" you enter 10 EUR and the customer is asked to pay 12 EUR because there is a 2 EUR tax addition?

This is how it is expected to work and would love to do something to make that more clear! :) The alternative to "Flat rate" is a "calculated" price which we haven't implemented yet but it will essentially allow you to instead of specifying the price ask the configured fulfillment provider to calculate the price of shipping for a cart's contents. So "Flat Rate" is not really referring to taxes in this case, but rather to the fact that the price is not dynamically calculated.

Now in regards to the shipping cost, I am not 100% sure about what is the correct approach - it looks like other e-commerce solutions allow you to say if shipping costs are taxable or not depending on the region you are selling to so it may make sense to add that in Medusa. E.g. having tax_shipping: boolean in the Region model and then having the TotalsService include/exclude shipping when calculating taxes based on this?

What do you think about this?

inallermunde commented 3 years ago

So just to be clear: the confusing part is that Medusa Admin shows "Flat rate" you enter 10 EUR and the customer is asked to pay 12 EUR because there is a 2 EUR tax addition?

Exactly.

This is how it is expected to work and would love to do something to make that more clear! :) The alternative to "Flat rate" is a "calculated" price which we haven't implemented yet but it will essentially allow you to instead of specifying the price ask the configured fulfillment provider to calculate the price of shipping for a cart's contents.

Would the fulfillment provider calculate the taxes on shipping costs as well? Or would the TotalsService still do that? In this case if you would like the shipping cost to also include the packaging and tape, you would need a custom fulfillment provider, instead of one for DHL, for example. Or could it be possible to let the backend user add additional costs onto the "calculated" price, like tape or packaging?

So "Flat Rate" is not really referring to taxes in this case, but rather to the fact that the price is not dynamically calculated.

Ok, that makes sense.

Now in regards to the shipping cost, I am not 100% sure about what is the correct approach - it looks like other e-commerce solutions allow you to say if shipping costs are taxable or not depending on the region you are selling to so it may make sense to add that in Medusa. E.g. having tax_shipping: boolean in the Region model and then having the TotalsService include/exclude shipping when calculating taxes based on this?

What do you think about this?

Sounds like a great idea to me. In my use case this would probably be enough already, but the above mentioned calculated price seems like a great feature as well, especially for more complicated shop setups.

adrien2p commented 11 months ago

Hi there. We highly appreciate you filing an issue and showing an interest in improving Medusa.

I apologize for the delayed response.

Moving forward, we aim to do better. But we would like to start fresh. Therefore, we are considering all older issues as stale and closing them, even though they might still be relevant.

Please don't hesitate to re-open the issue (or create a new one) if you still need a resolution or an answer.

Thanks ❤️