One Stop Shop for WooCommerce


One Stop Shop for WooCommerce adds compliance with the new One Stop Shop procedure of the european union to WooCommerce.
With the help of this little plugin you may easily monitor the delivery threshold (10.000 €) for B2C exports to other EU countries. Furthermore you may generate tax reports (e.g. quarterly, monthly, yearly) applicable to the OSS procedure and export them as CSV to easily notify your local tax authorities about your sales.

  • Delivery Threshold Observation – The plugin may automatically observe the yearly delivery threshold and send notices by email and via the admin panel in case the threshold is close to being reached.
  • Detailed Tax Reports – Generate detailed tax reports (e.g. per tax rate, per country) of your WooCommerce orders and export them as CSV.
  • Refresh Tax Rates – Automatically refresh your EU tax rates based on scheduled changes, e.g. (new/updated) tax rates for Estonia starting 01-01-2024.
  • Import Tax Rates – Import tax rates based on current EU VAT rates.
  • Tax Classes per Country – Depending on the product, different tax classes may apply for different EU countries. Choose tax classes per country for your WooCommerce products.


  • General settings screen
  • Reports UI
  • Create a new report


Minimal Requirements

  • WordPress 4.9 or newer
  • WooCommerce 3.9 (newest version recommended)
  • PHP Version 5.6 or newer

Automatic Installation

We recommend installing One Stop Shop for WooCommerce through the WordPress Backend. Please install WooCommerce before installing our plugin.
After the installation you may easily adapt the settings to your own needs.


Where can I find the documentation?

One Stop Shop Documentation

Need help?

You may ask your questions regarding One Stop Shop for WooCommerce within our free WordPress Support Forum.

The reports never finish

Reports are created with the help of the WooCommerce Action Scheduler. Batch requests are used to make sure that your server may incrementally generate reports for all applicable orders.
You will need to make sure the WP Cron (which is being used by the WooCommerce Action Scheduler) works within your setup.

Want to file a bug or improve the plugin?

Bug reports may be filed via our GitHub repository.


3. April 2023
I used a different plugin in the past, but needed a new one as the old wasn’t under development anymore. Thus, I stumbled over this one. I like it, because it integrates with the other plugins of Germanized for WooCommerce. Thanks!
19. Mai 2022
If you’re struggling with OSS implementation, this plugin will sort you out. Not only is it easy to track everything and create reports, it also helps to set up the appropriate tax rates for all countries and special post code exceptions. Great plugin all around!
25. Juni 2021
I’ve been looking for a convenient way to add correct tax information for different countries and this plugin sure delivers! The plugin is in active development and it seems like its author is commited to fix bugs and add or improve features. One thing that would make it even better is the ability to automatically use «VAT X%» as a Tax Name instead of «VAT COUNTRYCODE», but it’s just a small thing.
16. Juni 2021 1 reply
I’ve been testing this plugin for a bit and it looks very promising! The reports feature will help small merchants figure out if and when they are exceeding the 10K threshold. The ability to set a different tax class for certain countries is an absolute killer feature and something that I have been searching for years! We’ll see how well the export function will work for bookkeeping or filing VAT reports with the OSS. At the current stage, the plugin seems very well thought out and working smoothly. Many thanks, and keep up the great work!
Read all 5 reviews

Contributors & Developers

“One Stop Shop for WooCommerce” is open source software. The following people have contributed to this plugin.


“One Stop Shop for WooCommerce” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “One Stop Shop for WooCommerce” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Fix: Revert (default) exclusion of (potential) b2b orders without vat id as it is highly controversial
  • Improvement: Added woocommerce_eu_tax_helper_exclude_b2b_without_vat_id_from_oss filter to allow b2b exclusion


  • Fix: Apply base taxes for EU-wide b2b orders (without UID/vat exempt) only


  • Improvement: Exclude b2b orders (without and with UID, e.g. non-taxes) from OSS
  • Improvement: Calculate base location taxes for b2b checkouts


  • Improvement: Refresh luxembourg tax rate


  • New: Automatically refresh tax rates once per day based on changesets


  • New: Added Woo HPOS report compatibility
  • Improvement: Exclude local pickup orders


  • Fix: Tax rate type detection (standard vs. reduced)
  • Fix: Tax class formatting during import


  • Improvement: Prevent tax rate cache under certain circumstances


  • Fix: Do only adjust country-specific product tax class for EU VAT countries


  • Fix: Include recipient field in admin threshold notification email settings


  • Improvement: Updated LU tax rates
  • Improvement: Tax rate filtering while recalculating order totals


  • Fix: Update textdomain to reflect plugin slug
  • Fix: Fallback language file path


  • Improvement: Switch plugin locale to de_DE when using de_CH or de_AT


  • Fix: Jetpack autoloader version constraint in composer.json


  • Fix: Explicitly exclude base country in reports


  • Improvement: Refactored EU VAT checks to shared library
  • Fix: Use EL instead of GR for BOP exports


  • Improvement: PHP Code sniffer refactoring


  • Improvement: Harden URL escaping


  • Improvement: Fallback to standard tax class for countries which are missing the reduced tax class.


  • Feature: Added BOP (BZSt-Online-Portal) export for Germany


  • Improvement: Do not skip refunded parent orders


  • Improvement: BOP CSV export (new format with Satzart)


  • Fix: Decimal tax rates within reports


  • Fix: Tax rate import for disabled OSS status


  • Improvement: Allow choosing relevant date type for reports
  • Improvement: Experimental BOP compatible CSV Exporter for Germany via oss_experimental_use_de_bop_csv_exporter filter
  • Improvement: Shipping package invalidation check
  • Fix: Date paid range


  • Fix: Prevent calling missing refund order getters


  • Improvement: Query optimization


  • Improvement: Explicitly check whether WC_Tax::get_rate_percent_value() is available


  • Improvement: Report cleanup
  • Improvement: OSS VAT exempts (calculate net price based on base address)


  • Improvement: Report deletion and queue cancelling
  • Improvement: Added wpml-config.xml to support copying meta data for translated products


  • Feature: Allow disabling fixed gross prices
  • Improvement: Use custom SQL query instead of wc_get_orders
  • Improvement: Treat refunds as separated orders and respect their dates
  • Improvement: Feature plugin load management
  • Improvement: Added postcode VAT exemptions as tax rates (e.g. canary islands)
  • Improvement: Added conditional rates for Portugal (e.g. Madeira)
  • Improvement: By default do not force gross prices for third countries
  • Improvement: Backdate the observer to 7 days in the past to allow orders to complete in between


  • Improvement: Remove docs from release
  • Improvement: Filters for tax rate name and location price


  • Improvement: Woo 5.5 support
  • Improvement: Tax rate import
  • Improvement: Admin order tax (re) calculation
  • Fix: Admin note removal


  • Improvement: Support Norther Ireland via postcode
  • Improvement: Action Scheduler search args
  • Improvement: Do only remove EU VAT rates during import
  • Improvement: Added status tool to (re-) import EU VAT rates


  • Improvement: Reduce query batch size
  • Fix: NOT EXISTS taxable country query


  • Improvement: Setting URL
  • Improvement: Tax class name detection
  • Fix: Germanized integration detection


  • Initial commit