Hi, I come from BSS Commerce, we have many B2B Apps like https://apps.shopify.com/b2b-solution-custom-pricing
This problem happens too much with Draft Order. Steps:
1. Customers login (this customer is tax-exempt
2. Add to cart
3. Checkout. Tax is not exempt (although we checked the return API, Shopify set True on Tax Exempt)
This case is very important to B2B Customers
Shopify checkout default order works well, the problem happens with Draft Order
I think that this is the CORE bug from Shopify
Shopify recently changed the way tax calculation works at checkout. If you set the checkbox "Include or exclude tax based on your customer's country" in tax settings, Shopify will deduct VAT at checkout for customers that are not taxable according to their country, even if you're using VAT-inclusive prices. Previously Shopify only set the tax amount to zero but didn't actually deduct the amount from the total, effectively meaning the total was the same with and without VAT.
However, this doesn't extend to customers who are set to tax exempt via the respective checkbox in the customer's tax settings. So if you're using VAT-inclusive prices and a logged-in customer who is marked as being tax-exempt goes to checkout, the customer will get the same prices as if he were not tax-exempt unless he is also from a non-taxable country. The tax-exempt flag does not cause the VAT to be deducted in this case, the VAT amount just changes to zero and prices stay the same.
Why Shopify chose this solution I don't know, it doesn't make much sense from a user perspective. So if you want tax-exempt customers to pay ex-VAT prices there's probably no other option than to switch to prices that don't include taxes. But if you have to show VAT-inclusive prices in the store (i. e. your an EU store that sells to consumers), you would have to modify the theme to calculate VAT-inclusive prices, which is more or less impossible now that the applicable VAT rate is determined by the customer's country (which you don't know before they check out) rather than your store's country (as it used to be until the VAT reform that came into effect on July 1, 2021).
It's not just an issue with the draft orders, the issue is that the tax-exempt flag on the customer isn't applied at checkout to deduct taxes from the total if prices are set to include taxes. It's the same if a customer set to be tax-exempt goes to the checkout from the cart.
Thank you for joining the thread!
I understand that the tax exempt isn't being deducted for your draft orders. While it looks like you haven't selected a customer before putting the draft together in the first set of screenshots, I was able to replicate the problem in test store. However, I've also found that by adding the customer details to the draft order first allowed the draft to calculate the tax more accurately. Though I can't explain why this happens, I can confirm that the system can only calculate the taxes after the customer information has been entered - without this, the system will default the tax using the local tax rates.
Can you confirm if the tax calculates properly if you add the customer details first on your end?
Thank you for following up!
I'm unable to help with API-related issues, as I am not a developer. However, I'd recommend posting these questions to our Shopify APIs and SDKs board, so that someone from our developing team can assist you.
That being said, did you get a chance to test adding the customer details before building the draft order?
Glad to hear that it's working through the draft order in the admin!
Have you posted the issues with GraphQL API in the Shopify APIs and SDKs forums?
Feel free to keep us posted!