Back to all tutorials
MasterAI

Write 800 WooCommerce product descriptions in an afternoon with Claude

14 June 2026·5 min·MasterAI, Claude, WooCommerce, WordPress, E-Commerce, SEO
Write 800 WooCommerce product descriptions in an afternoon with Claude

Open almost any WooCommerce store with more than a few dozen products and you'll find the same thing: half the descriptions are empty, the other half are the manufacturer's copy pasted in — the exact text on a hundred other shops. Both are quietly costing you. Empty descriptions don't convert and don't rank. Duplicated ones get flagged by Google as non-original. And nobody fixes it, because writing a unique, on-brand, SEO-structured description for 800 products by hand is a month of work nobody has.

Claude does the whole catalog in an afternoon — and not as generic "AI slop," because you ground it in your real product data and your own voice. Here's the setup I use.

Why it's the highest-leverage AI task in a shop

Product descriptions are the one place where SEO and conversion meet. The same paragraph has to contain the keywords a buyer searches AND the sentence that makes them add to cart. Get it right across the whole catalog and you lift organic traffic and conversion at the same time — on inventory you already have. That's why this is the first thing I automate in any store.

The trick: ground it, don't free-style it

Generic AI descriptions read like AI because the model was given nothing to work with. The fix is to feed Claude the structured facts it should never invent — title, attributes, category, materials, dimensions — plus a strict template and your brand voice. Now it's not making things up; it's turning your data into copy that sounds like you.

How to set it up

The pragmatic route is export → generate → re-import. No plugin lock-in, full control.

  1. Export your products to CSV: WooCommerce → Products → Export (or WP Sheet Editor / WP All Export for more fields). You want at least SKU, Name, Categories, and your attributes.
  2. Write one system prompt that locks the voice and structure — this is where the quality comes from:
import csv, anthropic
client = anthropic.Anthropic()

SYSTEM = """You write WooCommerce product descriptions for <Brand>.
Voice: confident, concrete, no fluff, no "in today's world".
Structure every description as: one hook sentence, 3 benefit bullets,
a short specs line, one closing line. 80–120 words. Weave the product's
main keyword in naturally. Use ONLY the facts given — never invent specs."""

rows = list(csv.DictReader(open("products.csv")))
for r in rows:
    msg = client.messages.create(
        model="claude-opus-4-8",
        max_tokens=400,
        system=SYSTEM,
        messages=[{"role": "user", "content":
            f"Name: {r['Name']}\nCategory: {r['Categories']}\nAttributes: {r.get('Attributes','')}"}],
    )
    r["Description"] = msg.content[0].text

csv.DictWriter(open("out.csv","w"), fieldnames=rows[0].keys()).writerows(rows)
  1. Re-import out.csv (Products → Import, map Description). Run it on 10 products first, eyeball them, then the full catalog.
  2. Even cleaner — skip the CSV: connect your store to Claude over MCP and let it read and update products directly. That's its own short tutorial: the WooCommerce MCP connector.

Add prompt caching on the system prompt and the whole run costs a few euros for hundreds of products.

Why it matters

The work was never hard — it was just too big to ever start, so it never got done. That's the pattern with most store maintenance: not difficult, just endless. Hand the endless part to Claude and you get a catalog that's fully written, consistent in voice, and structured for search — in the time it takes to drink a coffee. Your competitors still have empty description fields. That's the gap.

Built with AI — the newsletter

Hands-on AI tutorials and the tools I actually use — straight to your inbox. Free, no hype.

Powered by Substack. Unsubscribe anytime.

Back to all tutorials