This page is part of the ProductContent AI guide. Start there for what the extension does, installation and the frequently asked questions.
Content Scoring
ProductContent AI can score enabled catalogue products from 0 to 100. Scored areas cover descriptions, product titles, SEO metadata, technical SEO, images, identifiers, price and stock, attributes, buyer questions, buyer information, structured data, uniqueness, internal links and fact checking. The available checks depend on your plan and product data. Feed consistency, review summaries, SmartListings and AI discovery are advisory reports and do not add or remove score points.
- 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 - the command needs a target:php bin/magento moogento:productcontent:score:recompute --allfor the whole enabled catalogue, or--product-id=123for one product. Add--store-id=to pick a store view. - Feed-consistency findings flag identifier and copy issues for review. They are report-only and do not add or subtract points from the content score. SmartListings signals are also report-only; they can inform queue priority when the integration is enabled.
- When a draft estimate is available, compare the current score with the proposed score before publishing. A dimmed earlier score can show the copy before ProductContent AI first changed it, measured using today's scoring rules. An estimate covers only the areas the preview can assess. A partial estimate is not a promise that every image, attribute or storefront result has been checked. Read a no-gain note before regenerating just to raise a number.
Product Edit Tab
A ProductContent AI tab appears on every product edit page. Its status fields are read-only: Status, Content score, Generation status, Image status, Attribute status, Approval state, Last scored, Latest drafts (the 10 most recent) and Verified evidence sources. A Create with ProductContent button opens the guided workflow for that product.
Below those, six editable fields hold per-product prompt overrides that apply only to this product: Content prompt addendum, Style 1 image prompt addendum, Style 2 image prompt addendum, Merchant notes, Excluded claims and Required phrases.
Visitor view-count tracking
ProductContent AI counts storefront product page views over a rolling 30 days (view_count_30d) as a lightweight traffic signal for the feedback loop, using a first-party cookie named pcai_vc to avoid over-counting repeat visits from the same browser within the cooldown window.
- Cooldown length is
moogento_productcontent/general/view_count_cooldown_seconds(default 300). It has no admin field - change it withbin/magento config:set. - The cookie is never set or read when your store's Stores > Configuration > General > Web > Default Cookie Settings > Cookie Restriction Mode is enabled and the visitor hasn't consented. View counting still increments server-side in that case - only the per-visitor cooldown falls back to a request-level guard.
- Stale view counts reset automatically: any product not viewed in 30 days has its counter zeroed by the View Count Reset schedule (see Advanced configuration below).
Queue Processing
The generation queue runs on Magento cron. The default schedule processes jobs every minute. Queue behaviour has no admin screen - these are module defaults, changed with bin/magento config:set <path> <value> followed by bin/magento cache:clean config:
| 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 |
Background queue processing itself needs a Growth or Pro plan. The values above are not individually restricted.
Module: Integrations
Connect ProductContent AI to other Moogento modules for smarter queue prioritisation.
SmartListings Priority Boost (moogento_productcontent/integrations/enable_smartlistings_priority, off by default, Growth/Pro) - 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/feedback_loop_enabled, off by default, Growth/Pro) - 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).
Photos found during research
Photos found during research are used as references for generated images and for writing copy; they are never added to the product gallery. Photos that include a person, or that show another colourway, are not used as references.
Advanced configuration
Scheduled Jobs
Background jobs use configurable cron schedules. They have no admin screen - change one with bin/magento config:set <path> "<cron expression>" then bin/magento cache:clean config.
| 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 |
| Image Draft Purge Schedule | moogento_productcontent/scheduled_jobs/image_purge_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 |
| Queue Purge Schedule | moogento_productcontent/scheduled_jobs/queue_purge_cron_expr |
4am daily |
| Usage Reservation Cleanup Schedule | moogento_productcontent/scheduled_jobs/usage_reservation_cleanup_cron_expr |
Every 30 minutes |
| Attribute Suggestion Purge Schedule | moogento_productcontent/scheduled_jobs/attribute_suggestion_purge_cron_expr |
5am daily |
| Fact Check Re-check Schedule | moogento_productcontent/scheduled_jobs/fact_check_recheck_cron_expr |
6am daily |
| Fact Check Purge Schedule | moogento_productcontent/scheduled_jobs/fact_check_purge_cron_expr |
6:30am 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.
Queue Row Retention (moogento_productcontent/scheduled_jobs/queue_retention_days, default 14, clamped 1-365) - done and failed queue rows older than this many days are deleted by the Queue Purge cron. The Image Draft Purge cron uses Draft Retention (moogento_productcontent/image_generation/draft_retention_days) instead, covered under "Set up AI image generation" above.
Notes
- Schedules are read straight from the module's
config.xml, so nothing needs to be written to the database for a job to start running. Runphp bin/magento setup:upgradeandcache:clean configafter deploying an update so Magento picks up any changed defaults. - Scheduled job settings 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 developerenv.php. - This setting survives
cache:clean(unlike the cache-priming snippet in the AI guide). Re-runcache:clean configafter changing it so Magento picks up the new value.
Tips & best practices
- Start with a small product batch. If you use your own provider, validate its API key and required roles before generating.
- 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.
- Leave Preserve existing merchant content (
moogento_productcontent/content_generation/preserve_existing, on by default) set to Yes when you have products with hand-written descriptions you want to keep. It only matters once Publish without review is on: a field that already holds content is then held back for your review instead of being published automatically. It does not stop the AI drafting for that field - you still get a draft to compare. - 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 providers across roles in own-provider mode, validate each connection after adding it.
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
defaultcron group is not being processed. - Check: Run
php bin/magento cron:run --group=defaultmanually and watch the output. Checkvar/log/moogento_productcontent.logfor job dispatch messages. - Resolution: Set up Magento cron on the server if it isn't running. Confirm that
crontab -lshows a cron entry callingphp 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: Read the validation message and confirm the key has access to the selected model and any image roles.
- 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: Your plan's per-product image cap is already reached - 6 on Growth and Pro, 1 on Seed - counting reserved, draft, approved and applied images combined. Or the image provider role is not assigned.
- Check: Check
moogento_productcontent_generated_imagefor rows with thisproduct_id. If the number of rows with statusreserved,draft,approvedorappliedhas reached your plan's cap, no new draft can be created. - 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 atmoogento_productcontent/general/enable. - Resolution: Run
php bin/magento moogento:productcontent:score:recompute --all(or--product-id=123for a single product) to queue a manual recompute, then let cron run and 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_pageor flush the cache for the affected product pages from the Cache Management admin page.
Template changes do not need this: saving or deleting a template, changing which products use it, or accepting a template suggestion refreshes the cached product pages for you.
Tiny description
The tiny description is a single line of product copy, capped at 60 characters and 8 words, for places where a full short description will not fit - a cart panel, a comparison row, a compact listing tile.
It is on by default and is written in the same request as the rest of the page copy. To stop it, remove Tiny description under Stores > Configuration > Moogento > ProductContent AI > Content: Images & copy > Fields to generate.
By default the approved text is written to a product attribute called tiny_description, which the module
creates for you. If you already have your own text or textarea attribute for this, pick it in Tiny description
attribute in the same section. Only your own text and textarea attributes are offered - the product name, SKU,
URL key, prices, stock fields, and the fields that already receive their own drafts can never be selected, and a
value written directly into the database rather than through this form is refused the same way.
Every tiny description is checked before it can be approved or applied. It must be one line of plain text within the caps, must not use marketing words like "premium" or "best", and must only repeat facts already on the product. Anything that fails stays in the review queue with the reason shown on the draft, and cannot be applied until it is edited into shape. Changing the attribute mapping later affects new drafts only: an existing draft keeps writing to - and reverting on - the attribute it was generated for.
Configuration overview
From ProductContent AI > Config., get a quick readiness check and links to all setup areas in one place.
The top section shows readiness for content generation, research, and image generation. In managed mode the guided provider step reads Moogento AI is ready; in own-provider mode, connection readiness reflects the configured provider roles. The overview also shows when connections were last checked.
The separate usage panel on Products & Drafts and in the Stores > Configuration > Moogento > ProductContent AI header shows remaining monthly generations. In managed mode it includes the reset date and an as of time if the snapshot is stale. In own-provider mode it shows local counters and limits.
Below that, the configuration sections link to:
- Templates - create and map product page templates to categories
- Attribute rules - manage which attributes the AI audits and generates
- Feature highlights - turn key attributes into reusable selling points (if enabled)
- System configuration - open the full admin config screen for providers, generation behaviour, budgets, and logging
Click Reopen setup to restart the first-time setup wizard. In own-provider mode, Manage connections opens the providers table.
Monthly plan allowances
| Plan | Moogento AI products | Moogento AI images | Own-provider products | Own-provider images | Images per product | Product audits |
|---|---|---|---|---|---|---|
| Seed | 15 | 3 | 25 | 10 | 1 | 100 |
| Growth | 60 | 10 | 100 | 40 | 6 | 500 |
| Pro | 150 | 25 | 250 | 100 | 6 | 2,000 |
All allowances are monthly on monthly and annual subscriptions. There are no yearly pools.
AI data privacy
Moogento AI uses zero data retention. Prompts are not logged and are not used for training. If you use your own provider, review that provider's privacy terms for its processing of your requests.
