- Products can be classified by Product Tax Classes or left without any tax class.
- Product Tax Classes can be administrated in the Admin.
- If a product has no tax class it won't add specific taxes to the order.
- Customers can be classified by Customer Tax Classes or left without any tax class.
- Customer Tax Classes can be administrated in the Admin.
- If a customer as no tax class it won't add specific taxes to the order.
- The taxes are calculated according to the Tax Rules set up in the admin.
- The Tax Rules specify:
- The Tax to be applied (required).
- The Product Tax Code that the Tax is applied to (required).
- The Customer Tax Code that the Tax is applied to (required).
- The geographic Zone that the Tax is applied to (required).
- The Tax has a porcentage that applies to the item total. If other taxes also applies to the same item(s), all of them are calculated over the initial total without affecting the amount of each other1.
- The products without Product Tax Code will not have taxes applied.
- The customers without Customer Tax Code will not have taxes2.
- The geographic zone to apply a customer is compared against the store address3.
- As a conclusion of the previous rules, taxes to an order item will be applies only if there are at least one Tax Rule which:
- Its Product Tax Code matches the one set to the product item.
- Its Customer Tax Code matches the one set to the customer item (requires logged in customer2).
- Its Zone matches the store address3.
- Global taxes applies to the order are not supported4.
- Shipping taxes are not supported4.
1 This tax calculation squema is the first one implemented because of its simplicity, but it could be extended in the future.
2 In a future version it will be added support to assign a default Customer Tax Class for guest customers, to taxes can be applied to their orders as well.
3 In future versions, it will be added support for other schemas such as: Calculate taxes by order shipping address, or by billing address, and not only by store address.
4 Support to be added in the future.