Import automation for VAT-compliant WooCommerce order imports, using custom logic and cached tax data to avoid slow manual workflows.
This import automation project solved a technical and compliance problem at the same time. The store relied on bulk order imports from a third-party system, but the incoming CSV data did not include enough information to calculate correct totals under EU OSS VAT rules.
What They Needed
They needed the import process to calculate accurate tax and order totals automatically, without turning each import into a manual clean-up job.
Country-specific VAT handling during order imports.
Automatic calculation of gross, net, and tax totals from incomplete CSV data.
Compatibility with WC All Import and WooCommerce tax handling.
A maintainable solution that avoided unnecessary plugin bloat.
The underlying issue was that the import data and WooCommerce’s expected order structure did not line up cleanly.
I built a lightweight plugin to pull VAT rate data from Vatstack and cache it in the WordPress database.
That avoided slow or rate-limited API lookups during each import run.
Inside WP All Import’s function editor, I added custom PHP logic to strip VAT from product and shipping prices based on destination country.
I mapped the VAT rates back into WooCommerce’s own tax handling so imported orders stayed consistent with the rest of the store.
I automated recalculation of order totals so the client no longer had to correct imports by hand.
When the client later confirmed Germanized already maintained the needed rates, I adapted the logic to use that data instead and simplify the stack.
This was a good example of custom code being used to reduce complexity rather than add more of it.
Results
The import workflow became much more reliable and much less manual.
Imported orders now reflect correct gross, net, and tax amounts.
OSS VAT logic applies automatically during import.
The customisation only affects import templates, not normal store orders.
The final setup stayed lightweight and easier to maintain than a more plugin-heavy alternative.
The biggest gain was that compliance and automation no longer pulled in opposite directions.
“Everything is running smoothly now, thank you so much for your excellent work! For future tasks and projects, I’ll definitely reach out to you again.“
— Denise H.
Why It Worked
This worked because the import process was treated as a real data-handling problem instead of just a plugin configuration job.
The main decisions that mattered were:
caching tax-rate data instead of relying on repeated live lookups
using custom logic only where WP All Import and WooCommerce needed help joining up
keeping the behaviour limited to the import process rather than affecting the whole store
simplifying the stack further when an existing plugin could sensibly provide part of the solution
That is what kept the result both practical and maintainable.
Related Work
If you want to see more project work, my Portfolio is the best place to continue.
For work involving third-party systems, data movement, or API-driven store logic, WordPress Integrations is a good place to start.
If the job depends on tailored code inside WordPress or WooCommerce rather than standard plugin behaviour, Custom WordPress Development is also worth a look.
Tired of bloat and flashy nonsense? I build websites that work. That’s it.
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional
Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.