product-content-enrichment

Use AI to auto-generate product descriptions, extract attributes, and tag images to enrich your catalog at scale using platform tools and AI writing apps

11 stars

Best use case

product-content-enrichment is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use AI to auto-generate product descriptions, extract attributes, and tag images to enrich your catalog at scale using platform tools and AI writing apps

Teams using product-content-enrichment should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/product-content-enrichment/SKILL.md --create-dirs "https://raw.githubusercontent.com/finsilabs/awesome-ecommerce-skills/main/skills/catalog-inventory/product-content-enrichment/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/product-content-enrichment/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How product-content-enrichment Compares

Feature / Agentproduct-content-enrichmentStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use AI to auto-generate product descriptions, extract attributes, and tag images to enrich your catalog at scale using platform tools and AI writing apps

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Product Content Enrichment

## Overview

Rich product content — compelling descriptions, complete attributes, and well-tagged images — drives both conversion and SEO. When a catalog is imported from a supplier with sparse content, enrichment is the next step. AI tools can generate descriptions, extract attributes, and suggest tags at scale. Platform-native AI features and dedicated apps handle the common cases without custom development.

## When to Use This Skill

- When importing a supplier catalog that has only product names, SKUs, and sparse descriptions
- When product descriptions are inconsistent in style or missing SEO keywords
- When image metadata (alt text, tags) is missing and needs to be generated at scale
- When a catalog refresh requires rewriting hundreds of product descriptions in a new brand voice

## Core Instructions

### Step 1: Determine platform and choose the right tool

| Platform | Built-in AI | Recommended App/Tool |
|----------|------------|---------------------|
| **Shopify** | Shopify Magic (AI description generation, built-in) | Jasper for Shopify, or ChatGPT for bulk generation via CSV |
| **WooCommerce** | None native | ChatGPT + WP All Import for bulk import; Hypotenuse AI WooCommerce plugin |
| **BigCommerce** | None native | Feedonomics for feed enrichment; Jasper or ChatGPT for descriptions |
| **Any platform (bulk)** | Claude / ChatGPT / Gemini | Generate descriptions in bulk via CSV, then import using platform tools |

---

### Step 2: Platform-specific setup

---

#### Shopify

**Option A: Shopify Magic (built-in, free)**

Shopify Magic is available to all merchants on any plan.

1. Go to **Admin → Products → [Product]**
2. In the product description editor, click the **sparkle icon** (✨) at the top right
3. Enter a prompt or let Shopify Magic generate from the product title and existing details
4. Review the generated text — edit to match your brand voice
5. Click **Save** when satisfied

Limitations: Shopify Magic works one product at a time; not suitable for bulk enrichment.

**Option B: Bulk generation with CSV + AI**

For enriching hundreds of products at once:

1. **Export current catalog**: Admin → Products → Export (download as CSV)
2. **Generate descriptions in bulk**: Paste your product data into ChatGPT, Claude, or another AI tool with a prompt like:

```
For each of the following products, write a product description in this format:
- Opening sentence: 1 compelling benefit sentence (max 20 words)
- 2-3 sentence paragraph: features and use cases
- 4-6 bullet points: key specifications

Brand voice: [describe your brand voice]
Do not invent specifications not present in the product data.

Products:
[paste your CSV rows]
```

3. **Import back into Shopify**: Use **Matrixify** (App Store) to import the enriched CSV with updated descriptions; map the description column to the Shopify body HTML field

**Option C: Hypotenuse AI or Jasper (App Store)**

These apps integrate directly with Shopify:

1. Install from the Shopify App Store
2. Connect to your product catalog
3. Select products to enrich and click generate
4. Review drafts in the app's editor before publishing
5. Publish approved descriptions directly to Shopify

---

#### WooCommerce

**Bulk generation workflow:**

1. **Export products**: WooCommerce → Products → Export (CSV)
2. **Generate descriptions** using an AI tool of your choice (ChatGPT, Claude, Jasper)
3. **Import enriched data**: Use **WP All Import Pro** to import the updated CSV back into WooCommerce, mapping the description column to the product description field

**Hypotenuse AI for WooCommerce:**
- Install the Hypotenuse AI plugin from WooCommerce.com
- Select multiple products from your product list
- Click **Generate Content** to create descriptions in bulk
- Review and approve before publishing

**For attribute extraction:**
- Use AI to extract structured attributes (material, dimensions, weight, care instructions) from existing descriptions
- Add extracted attributes to WooCommerce product attributes under the **Attributes** tab
- These become filterable facets in your navigation

---

#### BigCommerce

**Bulk description generation:**

1. Go to **Products → Export** and download the product catalog CSV
2. Generate enriched descriptions using an AI tool
3. Re-import using **Products → Import**

**Feedonomics for feed enrichment:**
- Install Feedonomics from the BigCommerce App Marketplace
- Feedonomics can use AI to optimize product titles and descriptions specifically for Google Shopping, Amazon, and other channels
- Particularly useful for enriching attributes required by feed destinations (GTIN, brand, MPN)

---

#### Custom / Headless

For headless platforms with a custom database, build an enrichment pipeline with a human review gate:

```typescript
// lib/productEnrichment.ts
import Anthropic from '@anthropic-ai/sdk';

const client = new Anthropic();

const DESCRIPTION_PROMPT = `You are a product copywriter. Generate a product description with:
1. A compelling opening sentence (max 20 words) highlighting the main benefit
2. A 2-3 sentence paragraph describing features
3. 4-6 key feature bullet points

Brand voice: {brandVoice}
Constraints:
- Use only the provided attributes — do not invent specifications
- Target: 80-120 words for the paragraph, plus bullets
- Include the product name and 1-2 SEO keywords naturally
- Do not use superlatives like "best" or "amazing"

Product: {name}
Category: {category}
Attributes: {attributes}`;

// Generate description for a single product
export async function generateProductDescription(product: Product, brandVoice: string): Promise<string> {
  const attributeText = Object.entries(product.attributes ?? {})
    .filter(([, v]) => v !== null)
    .map(([k, v]) => `${k}: ${v}`)
    .join('\n');

  const prompt = DESCRIPTION_PROMPT
    .replace('{brandVoice}', brandVoice)
    .replace('{name}', product.name)
    .replace('{category}', product.category)
    .replace('{attributes}', attributeText || 'Not provided');

  const message = await client.messages.create({
    model: 'claude-opus-4-5',
    max_tokens: 400,
    messages: [{ role: 'user', content: prompt }],
  });

  return message.content[0].type === 'text' ? message.content[0].text : '';
}

// Batch enrichment with human review gate — saves drafts, never auto-publishes
export async function enrichProductsBatch(productIds: string[], brandVoice: string) {
  const CONCURRENCY = 5;
  const results = [];

  for (let i = 0; i < productIds.length; i += CONCURRENCY) {
    const chunk = productIds.slice(i, i + CONCURRENCY);
    const batchResults = await Promise.all(chunk.map(async productId => {
      const product = await db.products.findUnique({ where: { id: productId }, include: { attributes: true } });
      try {
        const description = await generateProductDescription(product, brandVoice);
        // Save as draft — requires human approval before going live
        await db.productEnrichmentDrafts.upsert({
          where: { productId },
          create: { productId, description, status: 'pending_review' },
          update: { description, status: 'pending_review', updatedAt: new Date() },
        });
        return { productId, status: 'success' };
      } catch (err) {
        return { productId, status: 'error', error: err.message };
      }
    }));
    results.push(...batchResults);
  }

  return results;
}

// Approve a draft and publish to the product
export async function approveDraft(productId: string, approvedBy: string) {
  const draft = await db.productEnrichmentDrafts.findUnique({ where: { productId } });
  if (!draft) throw new Error('Draft not found');

  await db.$transaction([
    db.products.update({ where: { id: productId }, data: { description: draft.description } }),
    db.productEnrichmentDrafts.update({
      where: { productId },
      data: { status: 'approved', approvedBy, approvedAt: new Date() },
    }),
  ]);
}
```

---

### Step 3: Review and approve AI-generated content

**Never auto-publish AI-generated content without human review.** AI can:
- Invent specifications not in the source data (hallucination)
- Use a tone inconsistent with your brand
- Include legally problematic claims

**Review workflow:**
1. Generate descriptions as drafts
2. Use a simple spreadsheet or your platform's product edit screen to review each one
3. Edit tone, accuracy, and brand voice before approving
4. Track approval rate — if you're rejecting more than 30% of drafts, refine your prompt

**Prioritize which products to enrich first:**
- High-traffic, low-conversion products (check Analytics)
- Products with zero or very short descriptions
- New arrivals that need SEO content to start ranking

---

### Step 4: Enrich product images with alt text

Alt text serves both accessibility and image SEO.

**Shopify:**
- Go to **Products → [Product] → Images**
- Click the **...** menu on any image → **Edit alt text**
- Enter a descriptive alt text (e.g., "Blue cotton t-shirt with round neck, men's size M")
- For bulk alt text: use Matrixify with a column for `Image Alt Text`

**WooCommerce:**
- Upload an image and click **Edit** in the media library
- Fill in the **Alt Text** field
- For existing images: go to **Media Library → [Image] → Edit**

**For bulk alt text generation:**
1. Export a list of product images with their product titles
2. Use an AI tool to generate descriptive alt text for each image
3. Import back using your platform's bulk tools

## Best Practices

- **Always use human review before publishing AI descriptions** — never auto-publish; track approval rate and use it to iterate on your prompts
- **Store AI-generated content as drafts separate from live content** — never overwrite the published description in-place until reviewed and approved
- **Use lower temperature settings for product descriptions** (0.3–0.5 in ChatGPT/Claude) — consistent, on-brand output is more valuable than creative variation
- **Include your brand voice guidelines in every prompt** — "Professional yet approachable, focus on quality, no superlatives" produces far better output than prompting without brand context
- **Enrich highest-priority products first** — start with your top 20% revenue products before tackling the long tail

## Common Pitfalls

| Problem | Solution |
|---------|----------|
| AI invents specifications not in the source data | Add explicit constraints to the prompt: "Use only the provided attributes — do not invent or assume values"; verify output against the product spec |
| All AI descriptions sound identical | Add product-type-specific instructions (e.g., different prompts for footwear vs. electronics vs. apparel) |
| Descriptions miss SEO keywords | Include "naturally incorporate these SEO keywords: [list]" in the prompt; check with a keyword tool after generation |
| Bulk import overwrites good existing descriptions | Filter your import to only products with empty or very short descriptions; don't overwrite manually written descriptions |
| AI image tagging quality is poor | Use AI image analysis (GPT-4 Vision, Claude) for alt text generation rather than keyword-based tools; provide the product name as context |

## Related Skills

- @catalog-import-export
- @product-data-modeling
- @product-categorization

Related Skills

recently-viewed-products

11
from finsilabs/awesome-ecommerce-skills

Show shoppers the products they recently browsed using browser storage so they can easily pick up where they left off on your store

product-page-design

11
from finsilabs/awesome-ecommerce-skills

Design high-converting product detail pages with image galleries, variant selectors, social proof, and clear calls-to-action that drive add-to-cart

product-comparison

11
from finsilabs/awesome-ecommerce-skills

Let shoppers select multiple products and compare them side-by-side in a table with highlighted differences to help them make the right buying decision

product-launch-campaigns

11
from finsilabs/awesome-ecommerce-skills

Plan and execute multi-channel product launches with pre-launch waitlists, early access for VIPs, launch day orchestration, and post-launch momentum

content-commerce

11
from finsilabs/awesome-ecommerce-skills

Turn your blog into a sales channel by embedding shoppable product cards in editorial content and tracking content-influenced revenue

product-information-management

11
from finsilabs/awesome-ecommerce-skills

Centralize product data in a PIM system like Akeneo or Salsify and syndicate enriched content to all your sales channels automatically

product-analytics

11
from finsilabs/awesome-ecommerce-skills

Track product performance with sell-through rates, views-to-purchase conversion, dead stock identification, and category-level reporting

user-generated-content

11
from finsilabs/awesome-ecommerce-skills

Let customers upload photos, ask and answer product questions, and share social proof that increases trust and conversion for new visitors

product-reviews-ratings

11
from finsilabs/awesome-ecommerce-skills

Collect, moderate, and display customer reviews with star ratings, aggregate scores, and structured data markup for Google rich results

product-data-modeling

11
from finsilabs/awesome-ecommerce-skills

Structure your product catalog using your platform's native data model for variants, attributes, metafields, and product relationships

product-categorization

11
from finsilabs/awesome-ecommerce-skills

Build a clean product hierarchy with collections, categories, tags, and breadcrumb navigation using your platform's native tools

digital-products

11
from finsilabs/awesome-ecommerce-skills

Sell software, ebooks, and other downloads with secure delivery, license key generation, download limits, and expiration controls using platform apps