Build a tax matrix from a spreadsheet

WooCommerceAdvanced~30 min

Before you start

A connected store with the WooCommerce integration enabled, its read abilities on, and the tax write abilities switched on for the build pass. Confirm your rates with an accountant first; tax is applied at checkout.

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.

The prompt
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 my
rows up against them and give me one table with three groups: tax classes I
need to create, rates to add, and existing rates that need updating to match
my sheet. Flag any rate on the store that my sheet does not mention so I can
decide about it. Change nothing.
Only after I approve the plan, create the missing tax classes first, then add
and 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 or
changed.

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.

How it works

  1. Read the tax classes and every tax rate already on the store.
  2. Line your spreadsheet up against what exists: new classes, new rates, and rates that need updating.
  3. Show you the full plan as a table, and change nothing yet.
  4. After you approve, create any missing tax classes, then add or update rates one batch at a time, showing each batch.
  5. Return every class and rate it created or changed.

Questions

Will it delete a tax rate that is wrong?
No. This recipe can add a new rate or update an existing one, but it has no ability to delete a rate. If your spreadsheet drops a region, the plan will flag the leftover rate so you can remove it yourself in WooCommerce, which keeps a mistaken delete off the table.
How do I paste the rates in?
Paste the spreadsheet straight into the chat, one row per region with columns for country, state, rate, name, priority, and tax class. The agent reads your rows, matches them to what exists, and builds the plan from there before writing anything.