ProductContent AI · Updated 24 Jun 2026 · 20 min read

ProductContent AI: Magento 2 AI Product Descriptions

Generate, score, review, and publish AI-written product descriptions, SEO metadata, and images across your entire catalogue - without manual copy-editing.



Overview

ProductContent AI generates Magento 2 AI product descriptions, SEO metadata, and product images at scale. It connects to your chosen AI provider, scores every product for content completeness, generates drafts for descriptions, meta titles, FAQs, and product images, then routes those drafts through a review-approve-rollback workflow before anything goes live.

Products & Drafts grid showing content score chiclets, status badges, and draft review modal

This module helps you:

  • Automatically generate PDP copy, SEO metadata, FAQ content, and product images using OpenAI, Google, or OpenRouter
  • Score every product for content quality and identify which products need attention first
  • Review AI-generated drafts side-by-side with existing content, approve what you want, and roll back anything you don't
  • Prioritise high-traffic, low-scoring products automatically when ProfitEasy data is available
  • Keep content consistent across your catalogue with store-level tone, voice, and prompt rules

When to use this

Use ProductContent AI when you want to:

  • Launch a large import of supplier-fed products that arrive with thin or inconsistent descriptions
  • Identify which products in an existing catalogue are dragging down SEO performance
  • Generate product photography-style images without a photo studio, for product lines where you own the brand
  • Maintain a regular content-refresh cycle on high-traffic product pages
  • Enforce brand voice and forbidden claims rules across all AI-generated copy

Key capabilities for Magento 2 AI product descriptions

  • Content scoring - rates each product 0-100 across description length, metadata completeness, FAQ presence, feed consistency, and category signal; shows live chiclets in the grid
  • AI content generation - generates short description, long description, meta title, meta description, and FAQ per product using your configured provider and store prompts
  • AI image generation - creates up to 4 product images per product in two configurable visual styles; drafts sit in a staging area until you approve them
  • Draft review workflow - approve, reject, inline-edit, and rollback all content and image drafts from a single modal on the Products & Drafts grid
  • Attribute rules - define per-attribute audit and generation rules so the AI knows which fields to check, generate, or flag
  • Template Studio - build reusable product page templates that control which sections to generate and at what word count; map templates to categories for automatic resolution
  • SmartListings priority bridge - products in boosted SmartListings rules move to the front of the AI generation queue
  • ProfitEasy feedback loop - high-velocity, low-scoring products are automatically re-queued for optimisation

Installation

ProductContent AI installs via Composer, then activates with a license key from your Moogento.com account. The whole flow takes about 5 minutes.

Step 1: Get your Composer keys from Moogento.com

  1. Sign in at https://www.moogento.com and open My Plugins in your account menu.
  2. Find ProductContent AI in the list of plugins you own.
  3. Generate (or reveal) the Composer access keys for that plugin - a public key and a private key.
  4. Add your install domain to the key. Each Composer key is tied to a specific domain - if you're installing on yourstore.com, add yourstore.com to the key's allowed domains. The Composer download will be rejected on any other domain.

If you run staging and production on different domains, add both - separate keys per environment are fine too.

Step 2: Install the module with Composer

From your Magento 2 root directory:

composer require moogento/module-productcontent

When Composer asks for credentials, paste the public key as the username and the private key as the password. They'll be cached in ~/.composer/auth.json for future runs.

Step 3: Enable the module in Magento

php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento cache:clean

If you run php bin/magento module:status Moogento_ProductContent you should see it listed as enabled.

Step 4: Add your license key in the Moogento admin

  1. Still on https://www.moogento.com > My Plugins, copy the license key for ProductContent AI (separate from the Composer keys you used above).
  2. In your Magento admin, go to Stores > Configuration > Moogento > Licenses.
  3. Find the row for ProductContent AI and paste the license key.
  4. Click Save Config, then run php bin/magento cache:clean once.

The license validates within a few seconds. You should see the module's status flip to active. If it stays inactive, double-check the domain on the license matches where you've installed - domain mismatch is the most common cause.

Extra steps for ProductContent AI

ProductContent AI uses Magento's cron queue to run generation jobs. After setup:upgrade, verify that Magento cron is running on your server. Without cron, content and image jobs will sit in the queue and never process.

# Confirm cron is set up (should return active job lines)
php bin/magento cron:run --group=default

All six job schedules start automatically at their default intervals once cron is running. You can adjust schedules at Stores > Configuration > Moogento > ProductContent AI > Scheduled Jobs if needed.


Setup overview

Most setup happens in:

Stores > Configuration > Moogento > ProductContent AI

You'll mainly work with:

  • General - enable/disable the module and logging
  • AI: Providers - add API keys for OpenAI, Google, or OpenRouter and assign each a role
  • AI: Image Generation - enable image generation and set style counts, size, and auto-approve behaviour
  • Content: Generation - choose which fields (short description, long description, meta title, etc.) the AI generates
  • Store: Prompts - set the brand voice, tone, forbidden claims, SEO rules, and image style prompts applied to every product
  • Queue: Processing - control batch size and retry behaviour for background generation jobs
  • Module: Integrations - connect SmartListings and ProfitEasy/AnalyticsEasy for priority-based queue ordering
  • Module: Scheduled Jobs - adjust cron schedules and retention settings

Common setups

Connect an AI provider and start generating content

Before the module can produce any drafts, it needs at least one AI provider for the content role.

How to set it up

  1. Go to: Stores > Configuration > Moogento > ProductContent AI > AI: Providers

    AI Providers config group showing the provider table with role dropdowns and API key fields

  2. Click Add Provider in the Providers table. Set:

    • Provider = openai, google, or openrouter
    • Role = content
    • API Key = your provider API key
    • Model = the model identifier (e.g. gpt-4o-mini)
  3. Click the Validate button next to the row. A green tick confirms the key is accepted. If it shows an error, re-check the key and model name.

  4. Set the Content: Generation fields you want the AI to produce: Go to Stores > Configuration > Moogento > ProductContent AI > Content: Generation and set Generate short description, Generate long description, Generate meta title, Generate meta description, and Generate FAQ to Yes as needed.

  5. Save Config.

  6. Go to ProductContent AI > Products & Drafts in the admin left nav. Select one or more products, open the Actions menu, and choose Queue content generation. The queue cron processes the jobs within a minute.

Notes

  • Each role (content, image_prompt, image_style_1, image_style_2) can only be served by one provider at a time.
  • API keys are encrypted before storage and are never logged.
  • The content role is required. Image roles are only needed if you enable image generation.

Set your store voice and brand rules

Store prompts control how all AI-generated content reads. Set them once and every future draft respects the rules.

How to set it up

  1. Go to: Stores > Configuration > Moogento > ProductContent AI > Store: Prompts

    Store Prompts config group showing tone, forbidden claims, and SEO rules fields

  2. Set:

    • General content prompt (moogento_productcontent/store_prompts/content_prompt) = high-level instructions for every content generation (e.g. "Write in a warm, friendly tone. Emphasise quality and durability.")
    • Store tone and brand voice (moogento_productcontent/store_prompts/tone_and_voice) = brand rules applied to every draft (e.g. "Friendly, no jargon, prefer active voice")
    • Forbidden claims (moogento_productcontent/store_prompts/forbidden_claims) = comma- or newline-separated phrases the AI must never use (e.g. "doctor approved, guaranteed cure")
    • SEO rules (moogento_productcontent/store_prompts/seo_rules) = keyword density, heading structure, or other SEO instructions
    • Allowed HTML tags (moogento_productcontent/store_prompts/allowed_html) = tag whitelist for generated HTML descriptions
  3. If you use multiple store views, scope these prompts per store view - the AI uses the store-view-specific prompt when generating content for that scope.

  4. Save Config.

Notes

  • Store prompts are applied on top of per-product overrides. Product-level prompt fields (set in the ProductContent AI tab on the product edit page) take priority.
  • Changing store prompts doesn't automatically re-generate existing drafts. Queue a new generation job to pick up the updated instructions.

Review and approve AI-generated drafts

Drafts sit in a pending state until you approve them. Nothing is applied to your live product pages automatically unless you enable auto-apply.

How to set it up

  1. Go to ProductContent AI > Products & Drafts (moogento_productcontent/products/index).

  2. Find a product with the Review pending status badge. Click Review drafts in its row.

    The review modal opens with two tabs - Content and Images. Each draft card shows the original value alongside the AI-generated version.

  3. For each draft card:

    • Click Approve to apply the draft to the live product immediately.
    • Click the Edit icon to make inline changes before approving.
    • Click Reject to discard the draft.
    • If you approved a draft and want to undo it, click Rollback - the product reverts to the value it had before the draft was applied.
  4. After reviewing, close the modal. The product's status badge updates to reflect the new state.

Notes

  • Rollback works for both content drafts and image drafts. The module captures a full gallery snapshot before applying any image so the rollback is exact.
  • The Auto-apply low-risk drafts setting (moogento_productcontent/content_generation/auto_apply_low_risk) is available on Growth/Pro plans and skips the review step for drafts with no risk flags. Recommended only after you've reviewed several batches manually.

Set up AI image generation

Image generation requires a separate provider for the image_prompt, image_style_1, and optionally image_style_2 roles.

How to set it up

  1. Add image providers in the Providers table (same step as above). Assign:

    • Role image_prompt - the provider that writes the image prompt from product data
    • Role image_style_1 - the provider that generates images in your primary style
  2. Go to: Stores > Configuration > Moogento > ProductContent AI > AI: Image Generation

    Image Generation config group showing style count allocator, auto-approve, and image size settings

  3. Set:

    • Enable Image Generation (moogento_productcontent/image_generation/enabled) = Yes
    • Images per Style (moogento_productcontent/image_generation/style_count_per_job) = how many images to generate per style per job (Style 1 + Style 2 combined must be 1-4)
    • OpenAI Image Model (moogento_productcontent/image_generation/image_model) = gpt-image-1 (cost-efficient) or gpt-image-2 (higher quality, approx 3.6x more expensive)
    • Image Size (moogento_productcontent/image_generation/image_size) = your preferred output resolution
    • Draft Retention (moogento_productcontent/image_generation/draft_retention_days) = how many days unreviewed drafts are kept before automatic removal (1-365)
  4. Go to: Stores > Configuration > Moogento > ProductContent AI > Store: Prompts

  5. Set your image style prompts:

    • Style 1 image prompt (moogento_productcontent/store_prompts/image_prompt_style_1) = what the subject should look like (e.g. "A clean studio photograph of the product on a white background")
    • Style 1 visual description (moogento_productcontent/store_prompts/style_1_visual_style) = lighting, backdrop, mood (e.g. "Professional studio lighting, soft shadows, ecommerce-ready")
  6. Save Config.

  7. In ProductContent AI > Products & Drafts, select products, open Actions, and choose Queue AI image generation.

Notes

  • Generated images are stored in pub/media/moogento/productcontent/drafts/ until approved.
  • A maximum of 4 images per product (across all statuses: reserved, draft, approved, applied) can be held at once.
  • The module's SKU exclusion guard prevents the product SKU from appearing in any image prompt, which keeps prompts compliant with most provider terms.

Features reference

Attribute Rules

Define which product attributes the AI should audit, generate, or flag. Each rule targets a specific attribute and sets one of four actions: check whether the value meets quality standards, generate new content for the attribute, set a fixed value, or flag the attribute for manual editing.

  • Navigate to ProductContent AI > Attribute Rules (moogento_productcontent/attributerules/index) to manage rules.
  • Use Actions > Seed default rules to populate a standard set of rules covering the most common product attributes.
  • Config path for the grid: moogento_productcontent/attribute_rules

Template Studio

Product Page Templates let you define which sections of a product page to generate, how long each section should be, and what HTML policy applies. Templates can be mapped to categories so every product in that category uses the right template automatically.

  • Navigate to ProductContent AI > Product Page Templates (moogento_productcontent/templates/index) to create and manage templates.
  • Use Generate from samples to let the AI infer a template structure from existing well-written product pages - paste sample HTML or a URL and the module builds a draft template.
  • Template resolution order: product-level pin > category mapping (highest priority first) > store default > built-in fallback.

Content Scoring

Every product in your catalogue gets a content score from 0 to 100. The score is calculated across multiple areas: description completeness and length, metadata presence, FAQ content, feed-consistency flags (missing GTIN, MPN, ALL-CAPS, malformed HTML), and SmartListings boost signal.

  • Scores appear as colour-coded chiclets in the Products & Drafts grid: green (high), amber (mid), red (low), grey (not yet scored).
  • Scores are recalculated every 6 hours by default (moogento_productcontent/scheduled_jobs/score_recompute_cron_expr). You can also trigger a recompute from the command line: php bin/magento moogento:productcontent:score:recompute.
  • Feed-consistency score weight is set at moogento_productcontent/scheduled_jobs/feed_consistency_weight (default 10 points per flag).

Product Edit Tab

A read-only ProductContent AI tab appears on every product edit page. It shows the product's current content score, generation/image/attribute status, approval state, last-scored timestamp, and the 10 most recent drafts.

The tab also exposes per-product prompt overrides: you can add extra content instructions, image style 1 and 2 overrides, merchant notes, excluded claims, and required phrases that apply only to this product.


Queue Processing

The generation queue runs on Magento cron. The default schedule processes jobs every minute. Control queue behaviour at:

Stores > Configuration > Moogento > ProductContent AI > Queue: Processing

Setting Config path Default
Batch Size moogento_productcontent/queue/batch_size 10
Item Timeout (seconds) moogento_productcontent/queue/item_timeout_seconds 600
Stuck Threshold (minutes) moogento_productcontent/queue/stuck_threshold_minutes 15
Max Retry Attempts moogento_productcontent/queue/max_retry_attempts 3
Inter-call Delay (ms) moogento_productcontent/queue/inter_call_delay_ms 0

Batch size and retry fields are plan-gated (Growth/Pro required to change from defaults).


Module: Integrations

Connect ProductContent AI to other Moogento modules for smarter queue prioritisation.

SmartListings Priority Boost (moogento_productcontent/integrations/enable_smartlistings_priority) - when enabled, products that belong to a SmartListings boosted rule are moved to the front of the content generation queue. The boost value is set at moogento_productcontent/scheduled_jobs/sc_priority_boost (default 10 points). Requires SmartListings to be installed.

AnalyticsEasy Feedback Loop (moogento_productcontent/integrations/enable_analyticseasy_feedback) - when enabled, a daily cron job identifies products with high sales velocity (above the configured minimum) and a content score below the configured threshold, then raises their queue priority. Requires both AnalyticsEasy and ProfitEasy to be installed.

GTIN Attribute Codes (moogento_productcontent/integrations/merchant_center_attribute_csv) - comma-separated list of attribute codes checked for GTIN presence in feed-consistency scoring (default: ean,upc,isbn,gtin).

MPN Attribute Code (moogento_productcontent/integrations/mpn_attribute_code) - attribute code for Manufacturer Part Number, checked in feed-consistency scoring (default: mpn).


Advanced configuration

Scheduled Jobs

All six background jobs have configurable cron schedules. Adjust them at:

Stores > Configuration > Moogento > ProductContent AI > Module: Scheduled Jobs

Scheduled Jobs config group showing cron expression fields and retention settings

Job Config path Default
Queue Process Schedule moogento_productcontent/scheduled_jobs/queue_process_cron_expr Every minute
Score Recompute Schedule moogento_productcontent/scheduled_jobs/score_recompute_cron_expr Every 6 hours
Queue Cleanup Schedule moogento_productcontent/scheduled_jobs/cleanup_cron_expr Every 15 minutes
Feedback-Loop Refresh Schedule moogento_productcontent/scheduled_jobs/feedback_loop_cron_expr 3am daily
Score History Cleanup Schedule moogento_productcontent/scheduled_jobs/score_history_cleanup_cron_expr 3am daily
View Count Reset Schedule moogento_productcontent/scheduled_jobs/view_count_reset_cron_expr 2am daily

Score History Retention (moogento_productcontent/scheduled_jobs/score_history_retention_days, default 90, clamped 7-365) - score snapshot rows older than this value are deleted by the cleanup cron. Reduce this if the moogento_productcontent_score_history table grows too large on high-volume stores.

Notes

  • Run php bin/magento setup:upgrade before the first cron window after deploying an update. Schedule defaults are written to core_config_data at upgrade time; jobs will skip silently if that hasn't happened yet.
  • All Scheduled Jobs fields are default-scope only - they cannot be overridden per website or store view.

Developer Mode Tier Override

On a development install, the license server typically returns no valid license, which restricts the module to Seed tier and blocks Growth/Pro features. Use the developer-mode override to test higher-tier features locally without network access to the license server.

Setup

php bin/magento config:set moogento_productcontent/dev/force_tier pro

Accepted values: seed, growth, pro. Leave blank to use the live license check.

Notes

  • The override is active only when MAGE_MODE=developer. It is a no-op on production and staging, so the setting is safe to leave configured in a developer env.php.
  • This setting survives cache:clean (unlike the cache-priming snippet in the AI guide). Re-run cache:clean config after changing it so Magento picks up the new value.

Tips & best practices

  • Start with one provider, one role, and a small product batch before expanding. Validate the API key first; generation jobs that hit an invalid key fail silently and retry up to the configured max.
  • Write store prompts before generating your first batch. Drafts already in the queue use the prompt that was active when the job ran - changing prompts mid-batch produces inconsistent output.
  • Use the Preserve existing merchant content setting (moogento_productcontent/content_generation/preserve_existing) when you have products with hand-written descriptions you want to keep. The AI will create drafts for review but won't overwrite live content without your approval.
  • Map templates to categories before running bulk generation. Without a template, the module falls back to a minimal single-section built-in - category-specific templates produce significantly better output.
  • Keep Draft Retention short enough that your pub/media/moogento/productcontent/drafts/ directory doesn't grow unbounded, but long enough for your review cycle. 30 days is a reasonable default for most teams.
  • The feed-consistency score flags (missing GTIN, MPN, ALL-CAPS copy, broken HTML) are worth fixing directly in the product data rather than instructing the AI to work around them. Clean source data produces better drafts.
  • If you use multiple AI providers across roles, validate each one after adding it. A failed image_style_1 provider will queue image jobs that immediately fail, consuming retries without producing images.

Troubleshooting

Content jobs are queued but nothing is generated

Jobs sit in pending state and never move to processing or done.

  • Cause: Magento cron is not running, or the default cron group is not being processed.
  • Check: Run php bin/magento cron:run --group=default manually and watch the output. Check var/log/moogento_productcontent.log for job dispatch messages.
  • Resolution: Set up Magento cron on the server if it isn't running. Confirm that crontab -l shows a cron entry calling php bin/magento cron:run.

The AI provider Validate button shows a red message

Clicking Validate on a provider row returns a red message.

  • Cause: The API key is incorrect, the model name is wrong, or the provider endpoint is unreachable.
  • Check: Copy the exact error text from the response - the module normalises provider errors and usually includes the provider's own message. Verify the key has the right permissions (for OpenAI, the key needs models:read and images:generate access; for Google, the Vertex AI or Generative Language API must be enabled on the project).
  • Resolution: Correct the key or model, save, and validate again.

Image drafts are not appearing in the review modal

Image generation jobs complete successfully but the Images tab in the review modal is empty.

  • Cause: The maximum of 4 images per product is already reached (counting reserved, draft, approved, and applied images combined), or the image provider role is not assigned.
  • Check: Check moogento_productcontent_generated_image for rows with this product_id. If four or more rows exist with status reserved, draft, approved, or applied, the cap is hit.
  • Resolution: Reject or delete existing draft/applied images for the product to free up capacity, then re-queue.

Content scores are not updating

Products show the same score after you update their descriptions.

  • Cause: The score recompute cron hasn't run since the change, or the module is disabled.
  • Check: Check the schedule at moogento_productcontent/scheduled_jobs/score_recompute_cron_expr (default: every 6 hours). Check whether the module is enabled at moogento_productcontent/general/enable.
  • Resolution: Run php bin/magento moogento:productcontent:score:recompute to trigger a manual recompute, then reload the Products & Drafts grid.

Drafts were applied but the product page hasn't changed

An approved draft shows status applied but the storefront still shows the old content.

  • Cause: Magento's full-page cache is serving the old cached version.
  • Resolution: Run php bin/magento cache:clean full_page or flush the cache for the affected product pages from the Cache Management admin page.

FAQs

How do I generate product descriptions automatically in Magento 2?

ProductContent AI generates product descriptions automatically by connecting to an AI provider (OpenAI, Google, or OpenRouter), queuing generation jobs from the Products & Drafts grid, and producing drafts for short description, long description, meta title, meta description, and FAQ content. See the "Connect an AI provider and start generating content" section above for the step-by-step setup.

Which AI providers does ProductContent AI support?

ProductContent AI supports OpenAI (GPT-4o, GPT Image 1, GPT Image 2), Google (Imagen 3, Gemini 2.5 Flash), and OpenRouter (a single API key routing to multiple backing models). You assign each provider to a role - content, image prompt, or image style - from the AI: Providers config group.

Can I review AI-generated content before it goes live?

Yes - every draft created by ProductContent AI sits in review state until you approve it. The Products & Drafts grid shows each product's pending draft count; clicking "Review drafts" opens a modal where you can approve, reject, inline-edit, or rollback each draft individually. Nothing is published automatically unless you enable the Auto-apply low-risk drafts option (Growth/Pro plans).

Does ProductContent AI work with Hyvä, Luma, and Porto themes?

Yes. ProductContent AI is an admin-only module. It writes content to standard Magento product attributes (description, short_description, meta_title, meta_description, and the product gallery) and adds images through the standard gallery API. The output is stored in Magento's native data layer, so it renders correctly on Hyvä, Luma, Porto, and any other theme.

How does the content score work?

The content score rates each product from 0 to 100 across several checks: description length and quality, meta title and description presence, FAQ content, feed-consistency flags (missing GTIN or MPN, ALL-CAPS copy, malformed HTML), and whether the product has an active SmartListings boost rule. Scores are recalculated every 6 hours by default and displayed as colour-coded chiclets in the Products & Drafts grid.

What happens to existing product descriptions when I run generation?

If Preserve existing merchant content (moogento_productcontent/content_generation/preserve_existing) is set to Yes (the recommended default), the AI creates drafts for every configured field but does not overwrite any field that already has manually-entered content without your review. You'll see a draft alongside the existing value in the review modal and can approve or reject at your discretion.

Can I use ProductContent AI to generate product images?

Yes. The image generation feature connects to OpenAI (GPT Image 1 or GPT Image 2), Google Imagen 3, or OpenRouter to create product images in up to two visual styles. You set store-level style prompts, queue image generation from the Products & Drafts grid, and review the generated drafts before applying them to the product gallery. A maximum of 4 images per product can be held at any one time.

What happens if I disable ProductContent AI?

Disabling the module (moogento_productcontent/general/enable = No) stops new generation jobs from being processed and hides the ProductContent AI menu items. Any content that has already been applied to products remains in place - the module does not reverse applied changes on disable. Draft images in pub/media/moogento/productcontent/drafts/ are also retained.

How much does ProductContent AI cost / which plan do I need?

ProductContent AI has three plan tiers: Seed, Growth, and Pro. The Seed tier gives you basic content generation and scoring. Growth and Pro unlock higher queue batch sizes, auto-apply for low-risk drafts, auto-approve for images, and the SmartListings/AnalyticsEasy integration settings. Visit https://www.moogento.com for current pricing.

Does ProductContent AI work with Trustblock?

ProductContent AI and Trustblock cooperate via a shared attribute code selection rather than code coupling. If you use Trustblock to display trust badges sourced from a custom product attribute, you can point that attribute at content generated and managed by ProductContent AI. The two modules operate independently - ProductContent AI handles generation and admin workflows, Trustblock handles storefront display.

How do I reset content scores without waiting for the cron?

Run php bin/magento moogento:productcontent:score:recompute from the command line. This queues a score job for every product that hasn't been scored in the last 24 hours and processes it in the next cron window. Alternatively, select products in the Products & Drafts grid and use the Rescore selected mass action.


  • CategoryContent AI - AI-generated category descriptions, hero content, and FAQ sections at the category level using the same provider configuration pattern
  • Trustblock - display trust signals and badges sourced from product attributes on the storefront; cooperates with ProductContent AI via the attribute code dropdown

Need help?

  • moo@moogento.com
  • Include:
    • Magento version
    • Module name
    • What you're trying to do
Was this guide helpful?