🇹🇷 Türkçe: Bu yazının Türkçesini oku →

Writing product descriptions for 500+ WooCommerce products is a grind. Each product needs a unique, compelling description that includes key specs, addresses customer pain points, and is SEO-optimized. AI doesn’t eliminate the work, but it transforms weeks of copywriting into days of editing.

Let me be blunt about where the value actually sits, because the marketing around this gets it backwards. The generation is the cheap part. The discipline around the generation — the structured input, the house rules, the human proof at the end — is the part that decides whether you ship a catalog you’re proud of or 500 near-identical paragraphs that all open with “Introducing.” I have run this exact production line before it had an API, and the shape has not changed in thirty years.

I ran this line before it was called a “pipeline”

In the CorelDRAW-and-print-catalog years, a large product catalog was produced the same way: someone pulled the specs from a card index or an early database, the copy was drafted against a house style, and a copy chief sat at the end of the line with a red pen. That copy chief kept a list of words you were forbidden to use — the tired, salesy adjectives that made every entry sound the same. Break the list and your page came back bleeding red. The banned-words list in the prompt below is that copy chief, ported into a system prompt. Nothing about the job is new; only the drafting got faster. What has never gotten faster, and never will, is the proof at the end. Skip it and you are just printing 500 mistakes at machine speed instead of one.

The Workflow

The process is not “press a button and publish.” It’s a structured pipeline:

Product Data (CSV/ERP) → AI Generation → Human Review → Bulk Upload → QA

Step 1: Prepare Your Product Data

AI is only as good as its input. For each product, gather:

  • Product name and SKU
  • Category and subcategory
  • Key specifications (dimensions, weight, material, color)
  • Target audience
  • Unique selling points
  • Competitor comparison points (optional)

Export this as a structured CSV:

sku,name,category,material,dimensions,weight,features,target_audience

WD-001,"Walnut Dining Table",Furniture,Solid Walnut,"180x90x76cm",45kg,"Extendable to 240cm; seats 6-8; oil finish",Homeowners with mid-century modern taste

Step 2: Craft Your Prompt Template

The prompt is everything. A generic “write a product description” prompt produces generic output. Be specific about tone, length, structure, and SEO requirements.

You are a product copywriter for a premium furniture ecommerce store.

Write a product description for:

  • Product: {name}
  • Category: {category}
  • Material: {material}
  • Dimensions: {dimensions}
  • Key Features: {features}
  • Target Audience: {target_audience}

Requirements:

  • Length: 150-200 words
  • Tone: Warm but professional, not salesy
  • Structure: Opening hook (1 sentence), key benefits (2-3 sentences), specifications paragraph, care/maintenance note
  • Include the primary keyword "{name}" in the first sentence
  • Do not use the words "stunning", "exquisite", "elevate", or "transform"
  • Do not start with "Introducing" or "Meet the"
  • Write in second person ("you", "your")

The banned words list is not a nice-to-have — it is the single highest-leverage line in the whole prompt. Without it, every AI description starts with “Introducing the stunning…” and sounds identical. I would rather ship a plain description than a purple one, and so should you: search engines and shoppers both punish sameness, and a catalog where every entry reaches for the same three adjectives reads as machine output even when a human wrote it. Add to the banned list every time you catch a new crutch word slipping through review.

Step 3: Generate at Scale

Process your CSV through the AI API in batches:

const Anthropic = require('@anthropic-ai/sdk');

const fs = require('fs');

const csv = require('csv-parser');

const client = new Anthropic();

async function generateDescription(product) {

const prompt = buildPrompt(product); // Your template

const response = await client.messages.create({

model: 'claude-sonnet-4-20250514',

max_tokens: 500,

messages: [{ role: 'user', content: prompt }],

system: 'You are a product copywriter. Return ONLY the product description, no preamble.'

});

return response.content[0].text;

}

async function processCSV(inputFile, outputFile) {

const products = [];

// Read CSV

await new Promise((resolve) => {

fs.createReadStream(inputFile)

.pipe(csv())

.on('data', (row) => products.push(row))

.on('end', resolve);

});

// Process in batches of 10

const results = [];

for (let i = 0; i < products.length; i += 10) {

const batch = products.slice(i, i + 10);

const descriptions = await Promise.all(

batch.map(p => generateDescription(p))

);

batch.forEach((product, idx) => {

results.push({

...product,

description: descriptions[idx]

});

});

console.log(Processed ${Math.min(i + 10, products.length)}/${products.length});

// Rate limiting

await new Promise(r => setTimeout(r, 1000));

}

// Write output

// ... save to CSV or directly update WooCommerce

}

Step 4: Human Review

Never auto-publish AI descriptions. Build a review workflow:

  • Output to a spreadsheet with columns: SKU, Product Name, AI Description, Status (Approved/Edit/Reject)
  • Assign reviewers by category — someone who knows the products
  • Edit for accuracy — AI may hallucinate specs or features
  • Check for duplicates — AI can produce similar descriptions for similar products

Review typically takes 1-2 minutes per description vs. 10-15 minutes to write from scratch. That’s an 80-85% time reduction.

Step 5: Bulk Upload

Use WooCommerce’s built-in CSV importer or the REST API batch endpoint:

// Batch update via WooCommerce API

const batchSize = 100;

for (let i = 0; i < approved.length; i += batchSize) {

const batch = approved.slice(i, i + batchSize);

await wooApi.post('products/batch', {

update: batch.map(p => ({

id: p.woocommerce_id,

description: p.description

}))

});

}

Quality Control Checklist

Before publishing, verify each description:

  • ☐ Factually accurate (specs match the actual product)
  • ☐ No banned/overused words
  • ☐ Correct length (not too short, not bloated)
  • ☐ Primary keyword appears naturally
  • ☐ Unique (not too similar to other products in the same category)
  • ☐ Appropriate tone for the brand
  • ☐ No AI hallucinations (features the product doesn’t have)

Cost Estimate

For a 500-product catalog:

Item Cost
AI generation (Claude Sonnet) ~$7.50
Human review (8 hours @ $25/hr) $200
Bulk upload and QA (2 hours) $50
Total ~$260

Compare this to traditional copywriting at $10-20 per description: $5,000-$10,000 for 500 products.

Where I would not reach for this

The economics are lopsided in AI’s favour, but the tool has a shape, and it is worth knowing the edges. I would not run this pipeline on your top 20 hero products — the ones that carry the brand and the paid traffic. Those earn a human writer’s full attention; the money you saved on the long tail is exactly what pays for it. I would also not point it at a catalog whose source specs are dirty. AI cannot invent a dimension it was never given, but it will happily fabricate one to fill the gap, and that fabrication is indistinguishable from a real spec until a customer measures the doorway. Clean the CSV first. Garbage in is not neutral here — it is a confident, well-written lie out.

One more: do not let the batch job overwrite descriptions a human already tuned. Gate on an empty-description filter, or you will quietly regress six months of hand-edited copy in a single run. I have watched that exact accident wipe a client’s best-performing product pages.

Conclusion

AI product description generation is one of the most practical, highest-ROI applications of AI for WooCommerce stores. The key is treating AI as a first-draft generator, not a replacement for human judgment. Invest time in your prompt template, build a structured review workflow, and always verify factual accuracy before publishing. The 80%+ time savings is real and repeatable — but it is real only because a human still owns the last mile. That is the part I would never automate away.

Leave a Reply

Your email address will not be published. Required fields are marked *

Close Search Window