PHPackages                             mage-os/module-catalog-data-ai - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mage-os/module-catalog-data-ai

ActiveMagento2-module[Utility &amp; Helpers](/categories/utility)

mage-os/module-catalog-data-ai
==============================

Generate product descriptions and similar content with the help of AI.

1.0.0(1y ago)39293↓86.7%9[8 issues](https://github.com/mage-os-lab/module-catalog-data-ai/issues)[5 PRs](https://github.com/mage-os-lab/module-catalog-data-ai/pulls)MITPHPPHP ^8.1CI passing

Since Mar 25Pushed 2mo ago5 watchersCompare

[ Source](https://github.com/mage-os-lab/module-catalog-data-ai)[ Packagist](https://packagist.org/packages/mage-os/module-catalog-data-ai)[ RSS](/packages/mage-os-module-catalog-data-ai/feed)WikiDiscussions main Synced today

READMEChangelog (8)Dependencies (2)Versions (22)Used By (0)

MageOS AI Catalog Data Generation
=================================

[](#mageos-ai-catalog-data-generation)

[![Latest Stable Version](https://camo.githubusercontent.com/c066cfaa1f7f094e7934dfe2e542cbe9144387f84a8fdc16e466e6722bd5d93d/68747470733a2f2f706f7365722e707567782e6f72672f6d6167652d6f732f6d6f64756c652d636174616c6f672d646174612d61692f762f737461626c65)](https://packagist.org/packages/mage-os/module-catalog-data-ai)[![License](https://camo.githubusercontent.com/e47259f8a06d32a7f6f96c9253926af9cfb7ede7eb7bc839a02daf1fdbd8f15f/68747470733a2f2f706f7365722e707567782e6f72672f6d6167652d6f732f6d6f64756c652d636174616c6f672d646174612d61692f6c6963656e7365)](https://packagist.org/packages/mage-os/module-catalog-data-ai)[![Total Downloads](https://camo.githubusercontent.com/ae6a985746f31a8f8f837961eea9c2a07d989ff2e38e0d9c28cc82b03ca079fa/68747470733a2f2f706f7365722e707567782e6f72672f6d6167652d6f732f6d6f64756c652d636174616c6f672d646174612d61692f646f776e6c6f616473)](https://packagist.org/packages/mage-os/module-catalog-data-ai)

Automatically generate compelling product descriptions, meta titles, keywords, and SEO content using OpenAI's powerful language models. This Magento 2 extension seamlessly integrates AI content generation into your product workflow, improving SEO performance and customer experience while saving time on content creation.

🚀 Features
----------

[](#-features)

### **Automatic Content Generation**

[](#automatic-content-generation)

- **Product Descriptions**: Generate both short and detailed product descriptions
- **SEO Meta Data**: Auto-create meta titles, descriptions, and keywords
- **Smart Prompts**: Customizable prompts with product variable substitution
- **Bulk Processing**: Mass enrich existing products with AI-generated content

### **Flexible Processing Options**

[](#flexible-processing-options)

- **Real-time Generation**: Generate content immediately when products are saved
- **Asynchronous Processing**: Queue-based background processing for better performance
- **Safe Mode**: Only fill empty fields, preserving existing content
- **Override Mode**: Replace all content with fresh AI-generated versions

### **Advanced Configuration**

[](#advanced-configuration)

- **OpenAI Model Selection**: Support for all OpenAI chat completion models (GPT-3.5, GPT-4, GPT-4o, etc.)
- **Customizable Prompts**: Tailor generation prompts for each content type
- **Rate Limiting**: Built-in backoff mechanisms for API rate limits
- **Fine-tuning Controls**: Temperature, frequency penalty, and presence penalty settings

### **Review &amp; Approval Workflow**

[](#review--approval-workflow)

- **Enrichment Cache**: Hash-based lookup prevents duplicate API calls for identical inputs, saving cost and time
- **Admin Review Grid**: "AI Enrichment Review" page listing all generated content with filters, sorting, and mass actions
- **Approval Mode**: Optionally hold AI-generated content for admin review before it's written to products
- **Product Edit Indicators**: Inline status notes below enriched fields (Pending / Approved / Modified / Denied) with "View details" links

### **Also**

[](#also)

- **Mass Actions**: Bulk enrich products from admin grid
- **Queue Management**: Scalable async processing with Magento's queue system
- **Error Handling**: Robust error handling with retry mechanisms
- **Multi-store Support**: Configure different settings per store scope

📋 Requirements
--------------

[](#-requirements)

- **PHP**: 8.1 or higher
- **Magento**: 2.4.x (compatible with both Magento 2 and Mage-OS)
- **OpenAI Account**: Active OpenAI account with API access
- **Composer**: For installation

🔧 Installation
--------------

[](#-installation)

```
composer require mage-os/module-catalog-data-ai
php bin/magento setup:upgrade
```

⚙️ Configuration
----------------

[](#️-configuration)

### 1. Basic Setup

[](#1-basic-setup)

Navigate to **Admin Panel → Stores → Configuration → Catalog → AI Data Enrichment**

#### Essential Settings

[](#essential-settings)

- **Enable Module**: Turn on/off the extension
- **OpenAI API Key**: Your OpenAI API key (required)
- **OpenAI Organization ID**: Your organization ID (optional)
- **OpenAI Project ID**: Your project ID (optional)
- **Processing Mode**: Choose between real-time or asynchronous processing

#### Model Configuration

[](#model-configuration)

- **OpenAI Model**: Select your preferred model (recommended: `gpt-4o`)
- **Max Tokens**: Maximum tokens per request (default: 1000)

### 2. Content Field Configuration

[](#2-content-field-configuration)

Under **Product Fields Auto-Generation**, configure any text-compatible product attribute for AI enrichment. The dynamic table lets admins add rows, pick a target attribute, and define its prompt. No code changes needed to enrich custom attributes.

**Attribute dropdown** is filtered to `text`, `textarea`, and `texteditor` frontend inputs.

**Default prompts** ship for `short_description` and `description`:

AttributeDefault Prompt`short_description`"write a very short product description for {{name}} to highlight reasoning for purchase, under 100 words"`description`"write a detailed product description for {{name}} with features in bullet list, under 1000 words"Add rows for `meta_title`, `meta_keyword`, `meta_description`, or any custom attribute to extend coverage.

### 3. Advanced Settings

[](#3-advanced-settings)

Fine-tune AI behavior:

- **System Prompt**: Instructions for AI behavior (default: "Be a content generator, just reply with the content, skip all introductions.")
- **Temperature**: Creativity level (0.0-1.0)
- **Frequency Penalty**: Reduce repetitive content (-2.0 to 2.0)
- **Presence Penalty**: Encourage variety (-2.0 to 2.0)

### 4. Asynchronous Processing Setup

[](#4-asynchronous-processing-setup)

For better performance with high-volume stores:

1. Enable **"Asynchronous enrichment"** in configuration
2. Run the queue consumer: `bin/magento queue:consumers:start mageosEnrichProductProcessor`

### 5. Enrichment Cache &amp; Approval Workflow

[](#5-enrichment-cache--approval-workflow)

Under **Settings**, two options control the review workflow:

- **Enrichment Cache**: When enabled, every generation is logged to `mageos_catalogai_product_enrichment` and keyed by a SHA-256 hash of the prompt + system prompt + attribute + store. Subsequent calls with identical input reuse the cached result instead of calling the API.
- **Approval Workflow**: Depends on the cache being enabled. Choose between `auto-approve` (apply immediately) and `require-approval` (hold generated values until an admin reviews them in **Catalog → AI Enrichment Review**).

In `require-approval` mode, new enrichments are recorded with `pending` status and are not written to products until an admin approves them from the review grid.

📖 Usage
-------

[](#-usage)

### Automatic Generation (New Products)

[](#automatic-generation-new-products)

Once configured, the extension automatically generates content for new products when saved, based on your settings:

- **Real-time Mode**: Content generated immediately during product save
- **Async Mode**: Content generated in background via queue system

### Mass Content Generation (Existing Products)

[](#mass-content-generation-existing-products)

For existing products without AI-generated content:

1. Go to **Catalog → Products**
2. Select products to enrich
3. Choose from Actions dropdown:
    - **AI Enrich**: Replace all content (overwrites existing)
    - **AI Enrich (Safe)**: Only fill empty fields

### Reviewing Generated Content

[](#reviewing-generated-content)

When the enrichment cache is enabled, go to **Catalog → AI Enrichment Review** to see every generation. The grid supports:

- Filtering by product SKU, attribute, status, timestamps
- Opening a record to see the full prompt, edit the applied value, add notes, and change status
- Mass-approve, mass-deny, and mass-delete actions

### Product Edit Status Indicators

[](#product-edit-status-indicators)

On the product edit form, enriched attribute fields show an inline status note beneath them:

- **Pending review** (orange): AI-generated, awaiting approval
- **Approved** (green): AI-generated and applied
- **Modified** (blue): AI-generated value was manually edited after the fact
- **Denied** (gray): Rejected by an admin

Each note includes a **View details** link that opens the full enrichment record in a new tab.

🤖 Supported OpenAI Models
-------------------------

[](#-supported-openai-models)

### Recommended Models

[](#recommended-models)

ModelBest ForSpeedCostQuality**gpt-4o**Production useFastMediumExcellent**gpt-4-turbo**High-quality contentMediumHighExcellent**gpt-3.5-turbo**Budget-consciousVery FastLowGood### Model Requirements

[](#model-requirements)

- Must support **Chat Completions API**
- Must support **developer** role messages
- Recommended: Models with function calling capability

🎯 Prompt Customization
----------------------

[](#-prompt-customization)

### Using Product Variables

[](#using-product-variables)

Prompts support dynamic variables from product data:

```
Write a description for {{name}} priced at {{price}}. Key features: {{short_description}}

```

### Available Variables

[](#available-variables)

Any product attribute code can be referenced as `{{attribute_code}}` and will be substituted with that attribute's current value at generation time. Common examples:

- `{{name}}`: Product name
- `{{price}}`: Product price
- `{{sku}}`: Product SKU
- `{{short_description}}`: Existing short description
- `{{meta_keyword}}`: Existing keywords
- Custom attributes: any EAV attribute on the product

### Best Practices for Prompts

[](#best-practices-for-prompts)

1. **Be Specific**: Include detailed instructions about tone, length, and format
2. **Use Context**: Reference product attributes to create relevant content
3. **Set Constraints**: Specify word/character limits
4. **Define Format**: Request bullet points, paragraphs, or specific structures

Example optimized prompt:

```
Create a compelling product description for {{name}}:
- Target audience: [your customer type]
- Tone: Professional yet engaging
- Length: 150-200 words
- Include key benefits and features
- End with a call-to-action
- Focus on {{category}} category specifics

```

🔧 Troubleshooting
-----------------

[](#-troubleshooting)

### Common Issues

[](#common-issues)

**API Key Errors**

- Verify your OpenAI API key is correct and active
- Check your OpenAI account has sufficient credits
- Ensure API key has appropriate permissions

**Rate Limiting**

- The extension includes automatic backoff mechanisms
- Consider using async processing for bulk operations
- Monitor your OpenAI usage dashboard

**Content Not Generating**

- Ensure the module is enabled in configuration
- Check that product fields are empty (in safe mode)
- Verify prompts are configured for the desired attributes

**Queue Processing Issues**

- Ensure queue consumers are running
- Check Magento cron is functioning
- Monitor queue status in admin panel

### Performance Optimization

[](#performance-optimization)

1. **Use Async Processing** for bulk operations
2. **Optimize Prompts** or choose a faster model to reduce token usage
3. **Configure Rate Limits** appropriately
4. **Monitor API Costs** regularly

🤝 Contributing
--------------

[](#-contributing)

We welcome contributions! Please:

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests if applicable
5. Submit a pull request

📄 License
---------

[](#-license)

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

🙏 Credits
---------

[](#-credits)

- **Author**: Ryan Sun ()
- **Website**: [Sunmerce](https://www.sunmerce.com/)
- **Repository**: [mage-os-lab/module-catalog-data-ai](https://github.com/mage-os-lab/module-catalog-data-ai)

🆘 Support
---------

[](#-support)

- **Issues**: [GitHub Issues](https://github.com/mage-os-lab/module-catalog-data-ai/issues)
- **Documentation**: This README and inline code comments
- **Community**: [Mage-OS Discord](http://chat.mage-os.org)

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance62

Regular maintenance activity

Popularity27

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 51.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~50 days

Recently: every ~73 days

Total

8

Last Release

479d ago

Major Versions

0.3.1 → 1.0.02025-03-12

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/100189073?v=4)[Mage-OS](/maintainers/mage-os-ci)[@mage-os-ci](https://github.com/mage-os-ci)

---

Top Contributors

[![ryansunxl](https://avatars.githubusercontent.com/u/1762391?v=4)](https://github.com/ryansunxl "ryansunxl (27 commits)")[![rhoerr](https://avatars.githubusercontent.com/u/13335952?v=4)](https://github.com/rhoerr "rhoerr (12 commits)")[![DavidLambauer](https://avatars.githubusercontent.com/u/1841317?v=4)](https://github.com/DavidLambauer "DavidLambauer (4 commits)")[![SamueleMartini](https://avatars.githubusercontent.com/u/40766441?v=4)](https://github.com/SamueleMartini "SamueleMartini (4 commits)")[![nikolalardev](https://avatars.githubusercontent.com/u/3015908?v=4)](https://github.com/nikolalardev "nikolalardev (1 commits)")[![LS-Myron](https://avatars.githubusercontent.com/u/10085633?v=4)](https://github.com/LS-Myron "LS-Myron (1 commits)")[![Vinai](https://avatars.githubusercontent.com/u/72463?v=4)](https://github.com/Vinai "Vinai (1 commits)")[![sprankhub](https://avatars.githubusercontent.com/u/930199?v=4)](https://github.com/sprankhub "sprankhub (1 commits)")[![ProxiBlue](https://avatars.githubusercontent.com/u/4994260?v=4)](https://github.com/ProxiBlue "ProxiBlue (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/mage-os-module-catalog-data-ai/health.svg)

```
[![Health](https://phpackages.com/badges/mage-os-module-catalog-data-ai/health.svg)](https://phpackages.com/packages/mage-os-module-catalog-data-ai)
```

###  Alternatives

[maestroerror/laragent

Power of AI Agents in your Laravel project

639159.9k](/packages/maestroerror-laragent)[eliashaeussler/typo3-solver

Solver - Extends TYPO3's exception handling with AI generated solutions. Problems can also be solved from command line. Several OpenAI parameters are configurable and prompts and solution providers can be customized as desired.

302.1k](/packages/eliashaeussler-typo3-solver)[kambo/langchain

 ⚡ Building applications with LLMs through composability in PHP ⚡

3224.9k](/packages/kambo-langchain)[mfd/ai-filemetadata

Automatically generates FAL metadata for files by means of public LLMs

1255.0k](/packages/mfd-ai-filemetadata)[ercogx/filament-openai-assistant

Create chat page with OpenAI Assistant

175.8k](/packages/ercogx-filament-openai-assistant)[mage-os/module-automatic-translation

Automatic AI content translation for Mage-OS.

3017.9k](/packages/mage-os-module-automatic-translation)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
