AI Babel EnchanterDocs

AI Babel Enchanter Documentation

Rewrite, improve and translate your whole Magento catalog with reusable profiles — with a dry-run preview and full rollback, so nothing is a one-way door.

View as Markdown
The
The "Enrichments & Translations" grid — every generated field for every product and language, editable inline.

Installation

Requirements

Magento 2.4.x — tested on 2.4.9, compatible with previous 2.4.* releases. PHP 8.1–8.5. Works with both the default Luma theme and the Hyvä theme — the module runs entirely in the admin and writes standard catalog attributes, so your storefront renders the improved content with no template changes. Depends on the free codingrow/module-core module, installed automatically. Requires an API key from at least one AI provider for the improve/rewrite step (Anthropic, OpenAI, Google or OpenRouter) and, for translation, either a machine-translation key (DeepL) or an LLM used as the translator. All AI and translation usage is billed to you directly by the provider — Codingrow never marks it up.

Setup steps

  1. Add the credentials you'll receive by email to auth.json in your Magento project root: { "http-basic": { "repo.codingrow.com": { "username": "...", "password": "..." } } }
  2. composer config repositories.codingrow composer https://repo.codingrow.com
  3. composer require codingrow/module-ai-babel-enchanter
  4. bin/magento module:enable Codingrow_BabelEnchanter
  5. bin/magento setup:upgrade && bin/magento setup:di:compile && bin/magento cache:flush (setup:di:compile is required on a production deployment; you can skip it on a developer setup)
  6. Paste your license key into Admin → Stores → Configuration → Codingrow → AI Babel Enchanter → License → License Key, save, then flush the cache.

Configuration

Stores → Configuration → Codingrow → AI Babel Enchanter.

SettingWhat it doesDefaultNotes
License KeyThe license key issued for this domain.Accepts a single-module key or a Codingrow subscription key. Without a valid license the module does not run.
EnableMaster switch for the module.NoRequires a valid license and at least one provider API key.
Enhancement providerProvider, model and API key that rewrite and improve the text (the improve/rewrite engine).Use Load models next to the Model field instead of typing an id.
Translation providerHow target languages are produced: a machine-translation service (DeepL) or an LLM used as the translator, with its model and key.Translate with the same LLM as the improve step, or with a dedicated MT key for lower per-character cost.
SEO optionsToggles for what gets generated: meta title, meta description, meta keywords, URL key.Turn off anything you don't want the module to touch.
ResilienceCircuit-breaker: auto-retry on transient failures, cooldown hours before retrying, pause after N consecutive errors.Protects a long run when the provider is out of credit or rate-limiting.

Uninstallation

Set Enable to No and save to stop all processing immediately — your catalog content stays exactly as it is. If you want to revert to the original text first, run a rollback (see the User guide). To remove the module entirely: bin/magento module:disable Codingrow_BabelEnchanter then composer remove codingrow/module-ai-babel-enchanter.

Providers & cost

Choosing providers

AI Babel Enchanter has two independent provider slots: one for the improve/rewrite step (an LLM) and one for translation (an LLM or a dedicated machine-translation service such as DeepL). You bring your own keys, and all usage is billed to you directly by the provider you pick — Codingrow never marks it up. Pick the improve model for quality, and translate with either the same LLM or a cheaper per-character MT key.

Anthropic (Claude models)

  1. Sign in at console.anthropic.com.
  2. Go to console.anthropic.com/settings/keys.
  3. Click Create Key, name it (e.g. "AI Babel Enchanter"), and copy the value.
  4. Paste it into the provider slot with Provider set to Anthropic, then use Load models.

OpenAI (GPT models)

  1. Sign in at platform.openai.com.
  2. Go to platform.openai.com/api-keys.
  3. Click Create new secret key, name it, and copy it immediately — it is shown only once.
  4. Paste it into the provider slot with Provider set to OpenAI, then use Load models.

Google (Gemini models)

  1. Sign in at aistudio.google.com with a Google account.
  2. Go to aistudio.google.com/app/apikey.
  3. Click Create API key, choose or create a Google Cloud project, and copy the key.
  4. Paste it into the provider slot with Provider set to Google, then use Load models.

OpenRouter (one key, many providers' models)

  1. Sign in at openrouter.ai.
  2. Go to openrouter.ai/keys.
  3. Click Create Key, name it, and copy the value.
  4. Paste it into the provider slot with Provider set to OpenRouter, then use Load models.

DeepL (machine translation)

  1. Sign in at deepl.com/pro-api.
  2. Open Account → API keys and copy your Authentication Key.
  3. Paste it into the Translation provider slot with the translator set to DeepL.

DeepL is priced per character (about €20 per 1M characters), usually cheaper than an LLM for straight translation. You can also skip DeepL entirely and translate with the same LLM as the improve step.

Load models — no model id to type

After the API key is in place, save the section and click Load models under the Model field: the module calls the provider's own model-list endpoint with your key and fills a dropdown with every model your key can actually use — pick from the list instead of typing an id. A manual text input remains as a fallback for a model id that isn't in the list yet. A link right below the field always points to the correct key page for whichever provider is currently selected.

Estimating the cost of a full-catalog run

A full pass has two cost drivers that add up per product: improve (LLM tokens, priced per million) and translate (characters, priced per million, times the number of target languages). Use the calculator below to size a run before you launch it — it is a purely indicative estimate; your real numbers depend on content length and the models you choose.

Full-catalog run cost calculator

Estimate what one full pass over your catalog costs. Two cost drivers add up per product: improve (LLM tokens, priced per million) and translate (characters, priced per million, multiplied by the number of target languages). Everything is billed to you directly by the AI/translation provider — this is a purely indicative estimate.

Per-product volume assumptions
Improve / product:  ·  Translate / product:
Cost per product (improve + translate)
Full-catalog run (all products)
Quick reference — 5,000 products, 2 languages, ~1,500 chars & ~2,000 tokens/product (indicative)
Improve model~ improve / productFull-catalog improve ~
Gemini 2.x Flash~€0.0004~€2
OpenAI gpt-4o-mini~€0.0006~€3
Claude Haiku 4.5~€0.004~€20
Claude Sonnet 4.5~€0.015~€75

User guide

Profiles and persona prompt

Everything the module does is organized into profiles. A profile is a reusable configuration you run against a slice of the catalog: which attributes it may touch, the pipeline of steps to apply, an optional exclusive category so the profile only ever operates on products in that category, and a persona prompt — free-text instructions that set the tone of voice and rules for the rewrite. Profiles are anti-revert: a product already processed by a profile is skipped on the next run unless you reset it, so re-running is safe.

Example persona prompt: "You write for a premium outdoor-gear store. Be concise and confident, lead with the benefit, use British English, never invent specifications, and keep every product description under 90 words."
The Profiles admin grid: reusable configurations with their exclusive category, steps and persona prompt.
Profiles: reusable, category-scoped configurations that drive every run.

Groups and steps (the pipeline)

Inside a profile you define groups of steps that run in order. The two core step types are improve (rewrite/enhance the source text with the enhancement provider) and translate (produce the target-language versions). The normal pipeline is improve → translate: the source language is rewritten first, then the improved text is what gets translated, so every store view inherits the better copy instead of translating the old text. Grouping lets you scope different steps to different attributes and run them as one operation.

Cross-sell, related and up-sell (AI relations)

Three independent toggles let a profile propose cross-sell, related and up-sell products using the AI. The model only ever suggests real SKUs from your catalog — it cannot invent a product that doesn't exist — and the suggestions are written into Magento's native cross-sell/related/up-sell links, so they appear in the standard storefront blocks. Turn on only the relation types you want the module to manage.

The AI relations mapping view: proposed cross-sell, related and up-sell SKUs for a product.
AI relations: cross-sell, related and up-sell suggestions, always real catalog SKUs.

Dry-run preview (and rendered)

Before anything is written, run a profile in dry-run: the module generates the proposed content for a sample of products and shows it side by side with the current text, including a rendered preview so you see how the improved description will actually look on the page — not just raw text. Nothing is saved in dry-run; it's there to validate the persona prompt and the pipeline before you commit to a full run.

Dry-run rendered preview: the proposed product description shown as it will render on the storefront.
Dry-run rendered preview: exactly how the improved content will look before anything is saved.

The "Enrichments & Translations" grid

The "Enrichments & Translations" tab is the working grid: every generated field for every product and language, paginated and filterable. You can edit any generated value inline before or after it is applied — the AI output is a starting point, not a lock — and each row keeps a link back to the original text, so you can restore the original for that field with one action if you don't like the result. This is the human-in-the-loop layer over the automated pipeline.

Editing a generated field inline in the Enrichments and Translations grid, with the original text available to restore.
Editing a generated value inline — with the original one click away.

Rollback

Every value the module writes is reversible. Beyond per-row restore original in the grid, the babel:rollback CLI command reverts content in bulk — by profile, by product, or the whole run — back to the text that was in place before the module touched it. Because the original is always preserved, a full-catalog run is never a one-way door.

Restoring the original text for a product field, reverting a generated value.
Restore original: revert any generated field to the pre-run text, per row or in bulk.

Queue and credit circuit-breaker

Long runs are processed through a queue you can watch, pause and resume. The built-in circuit-breaker (configured under Resilience) protects the run: on repeated provider errors — most often the provider running out of credit or rate-limiting — it pauses after N errors, waits the configured cooldown, and can auto-retry transient failures instead of failing the whole batch. When you top up credit or the limit resets, resume the queue and it continues where it stopped.

The processing queue view with status, pause and resume, and the credit circuit-breaker state.
The queue: watch, pause and resume long runs; the circuit-breaker halts on repeated provider errors.

Command line (CLI)

Everything can be driven from the CLI for scheduling and large runs.

CommandWhat it does
bin/magento babel:runRuns a profile (improve/translate pipeline) over its target products — the standard way to launch a full-catalog pass.
bin/magento babel:rollbackReverts generated content back to the original text, scoped by profile, product, or the entire run.
bin/magento babel:queueInspects and controls the processing queue: status, pause, resume.
Running a Babel Enchanter profile from the command line.
Driving a full-catalog run from the command line.