Setting up tax by hand in WooCommerce is slow and easy to fumble. You are copying rows from a spreadsheet an accountant sent, one region at a time, and by row twelve you are not sure whether you already added California or whether the standard class and the reduced-rate class both need this line. The screen does not help you see the whole matrix at once.
This takes the spreadsheet as the source, reconciles it against the rates already on the store, and shows you the full plan before it writes a thing. Tax hits real money at checkout, so the whole flow is built around you approving the matrix first.
I want to load a tax matrix into this WooCommerce store from a spreadsheet.Here are the rows:
[paste your spreadsheet: one row per region, with country, state, rate, name,priority, and the tax class it belongs to]
Work in two passes and write nothing in the first. First pass, reads only:list the tax classes and every tax rate already on the store. Then line myrows up against them and give me one table with three groups: tax classes Ineed to create, rates to add, and existing rates that need updating to matchmy sheet. Flag any rate on the store that my sheet does not mention so I candecide about it. Change nothing.
Only after I approve the plan, create the missing tax classes first, then addand update the rates a few at a time, showing me each batch before it saves.Do not delete anything. At the end, list every class and rate you created orchanged.Why this is safe to run
The first pass reads your existing tax classes and rates and matches them against your spreadsheet, all without writing. You approve the full matrix, grouped into what is new and what changes, before anything is created.
The write pass is additive by design. It can create a tax class, add a rate, or update a rate, but it cannot delete one, so a bad row can never wipe a rate you meant to keep, and a region dropped from your sheet surfaces as a flag for you rather than a silent removal. The tax write abilities stay off until you enable them, work goes out in small batches you approve, each call is checked against the capability of the user you bound the agent to, and every write lands in the Activity Log. If a rate comes out wrong, the log tells you which one to correct.
Already connected? You do not have to paste this at all. Ask your agent for the “build a tax matrix from a spreadsheet” recipe, hand it the sheet, and it runs the same reconcile-then-approve flow on your own store.