The first part of our tutorial series on WooCommerce dealt with all the General Options and Product Options. This section will describe how to correctly create Taxes and how to make use of the Tax Classes. The topic “Taxes” and Sales Tax is something not many online shop operators like dealing with. The topic is, however, of central importance as nobody would like to experience any nasty surprises with the tax office. You will definitely have to know about the various tax rates in WooCommerce if you are selling goods with a reduced sales tax rate (e.g. – in Germany – books, specific food types or some services), or if you deliver to foreign countries.
General Tax Options in WooCommerce
WooCommerce for WordPress offers a variety of options to satisfy all these different requirements. You will find these options in the WordPress backend at -> WooCommerce -> Settings -> Tax. The subsection Tax Options will be opened first: The following settings are available:
- You will specify in Enable Taxes whether or not WooCommerce should deal with tax calculations. You won’t get around it if you are operating a commercial shop in Germany, Austria, or Switzerland. The only exception here is if the so-called “small business operator regulations” apply. Even then you will still have to observe some specific legal requirements. For more info have a look at our plugin WooCommerce German Market.
- Prices Entered With Tax must then be selected to specify whether the gross price (incl. tax) or the net price (excl. tax) should be stated, when importing your products. WooCommerce will then calculate the associated price with or without tax. Generally, shops in the B2C environment (sales to private end customers) will use the setting “Yes, I will enter prices inclusive of tax”. Important: Pre-existing products will not be modified automatically if this setting is amended.
- The option Calculate Tax Based On: specifies which address is to be used as basis for calculation of the automatically selected tax rate if an order from another country requires a different taxation (more on that later). The following options are available: “Customer Shipping Address”, “Customer Billing Address”, or “Shop Base Address”. In most cases, the customer shipping address will be used. You should discuss this point with your tax advisor, as a variety of different regulations may apply.
- The Default Customer Address will be used if taxes are displayed in the shop before the potential buyer enters his address. In this case the option Shop Base Address should be selected (instead of No Address), to ensure that the legally required tax information is stated alongside your products. An automatic tax correction can be applied if the customer enters a foreign country as his address during the course of the order process.
- The Shipping Tax Class specifies, whether the shipping costs will be taxed automatically in the shopping cart depending on the product tax rate (usual default setting), or if the default tax rate, a reduced rate, or no tax at all should be applied. The shipping costs will be taxed with the relevantly highest rate if the shopping cart contains products with differing tax rates and the option Shipping tax class based on cart items is selected.
- Taxes will be calculated and rounded as needed for each position when the option Rounding is deactivated, and not only when calculating a subtotal in the cart (default setting).
Note: Our plugin WooCommerce German Market will implement some basic settings automatically during installation. These include – with regards to taxes – the options “Show prices and cart prices including tax”, “Show item total including tax”, and the setting for the currently valid tax rates (more on that later on). In this case, some of the options mentioned in this section have been preset to match.
Create New Tax Class
A tax class specifies, which of your products will be calculated with which tax rate. New classes with their own tax rates can be created using the menu item Additional Tax Classes. Simply add a new row with the name of the new class in the field Additional Tax Classes (Don’t forget to Save Changes): These classes – in our example the newly created tax class “User-defined” – can then be assigned to an individual product via the selection box Tax Class during product creation: WooCommerce allows you to manage and assign tax classes individually. This will be very helpful – in particular for web shops with very different product types and/or target markets. Individual classes can be specified for “Exceptions”, which will then include regional tax rates. WooCommerce will then automatically calculate the correct tax rate combined with the tax class selected for the product, taking into account the delivery region.
At the time of installation, WooCommerce will automatically create two new tax classes: Reduced Rate (for example for the reduced rate sales tax of currently 7 percent in Germany) and Zero Rate (for non taxable products). The sub-settings for these tax classes can be edited via the relevant tab under the menu item Tax: The tax classes newly defined by you will appear as a separate tab after saving (just like our “User-Defined Rate”).
Adding Custom Tax Rates to Tax Classes
The basic principle of the tax classes is easily understood when using the functions behind each of the tabs – as a look at Reduced Rates will demonstrate: You can add new tax rates broken down to country level – or even individual states in foreign countries, for post code areas or individual locations or special tax zones via the button Insert row. For the example Reduced Rate, these would therefore be additional reduced tax rates for various delivery regions.
In addition to the relevant tax rate and name, you can specify the following attributes:
- Use Priority to specify which tax rate should be applied in overlapping regions. Here an example: The shipping address is in a post code region with tax rate A. The shipping city, however, which is located in the same post code region, has its own separate tax rate B. The higher priority setting (post code or city) will govern which tax rate will be applied.
- Taxes with the attribute Compound will be calculated in addition to other applicable taxes (“On Top”).
- The check box Shipping determines, whether the tax rate will also be applied to the shipping costs (this would generally be the case in Germany; please consult your tax advisor regarding deliveries to other countries).
Price Display in the Shop
Let’s finally have a look at all the other setting options below the Additional Tax Classes of the tab Tax Options: These options define the way WooCommerce will handle price displays in your online shop:
- You can control via Display prices in the shop whether or not the price will be shown Including tax or Excluding tax. (Please see the explanations regarding the menu point “Enable Taxes” at the top of the section.)
- Price display suffix specifies whether a specific text should be shown after the price in your shop (e.g. the suffix “incl. VAT”).
- The same applies for the WooCommerce option Display prices during cart/checkout.
- Display tax totals specifies, whether the tax totals of all the individual tax rates should be listed separately in the order overview (“Itemized” is recommended for shops in Germany, Austria, and Switzerland) or as one total (“Summarized”).
Note: Our plugin WooCommerce German Market will do all the legal labeling of additional product information for you. This can be the tax component, or information about shipping costs and delivery times. We continuously adapt the relevant issues to the latest legal requirements. We therefore recommend not to amend the information provided there via the additional options in WooCommerce if you use the WooCommerce German Market plugin.
The effects of the individual options are easy to demonstrate in a demo shop. Simply adjust the option settings, reload the relevant page in the demo shop, and you can clearly see the in some instances a bit abstract concepts. Remember to always do these tests in a test system and not in your live shop!
You have some questions or comments about some of the points in this section or about the setup of WooCommerce? Please use the comment function to leave us your feedback. (Please use the Support Forum for specific enquiries about our own plugins.)
New Plugin: Slack Connector - Connect WordPress, WooCommerce and Slackby Michael Firnkes
Initially we merely wanted to optimize our own Slack-processes. With automated notifications from our MarkettPress shop, the blog and our forums. The resul ...Read more
Role Based Prices for WooCommerce is available again: Different prices for different customer groupsby Michael Firnkes
You want different prices for different customers and users of your online shop? E.g. for subscribers or wholesaler? Or do you need bulk prices? A lot of o ...Read more
WooCommerce Weekly Review #7: Woo vs Magento, shop security and customer confidenceby Michael Firnkes
What is a WooCommerce shop in practice? And how do you protect it against external attacks? This and more in our Weekly Review. WooCommerce vs Magento: ...Read more
WooCommerce Weekly Review #6: Translations, WordCamp Switzerland & avoiding legal warningsby Michael Firnkes
WooCommerce was a hot topic at WordCamp in Switzerland. Progress is being made with the system translations and there are lots of useful new extensions. Th ...Read more