Magento 2 AI Review TranslatorMagento 2 AI Review Translator
Live Demo
Buy Now
Support
Live Demo
Buy Now
Support
  • Getting Started

    • Introduction
    • Key Features
    • How It Works
  • Installation

    • Requirements
    • Install the Module
    • Install the AI Packages
    • Enable & Compile
    • Verify the Installation
    • Content Security Policy
    • Translating the Interface
  • Setup

    • Enable the Module
    • Activate Your Licence
    • Select an LLM Provider
    • Validate & Load Models
    • First Translation
  • Configuration

    • Overview
    • General Settings
    • Limits & Timeouts
    • Store Views & Languages
    • Admin Menu
    • Access Control
  • LLM Providers

    • Provider Overview
    • How Validation Works
    • Choosing a Model
    • Switching Providers
  • Ollama (Self-Hosted)

    • Install Ollama
    • Connect to Magento
    • Timeouts & Batch Size
    • Troubleshooting
  • Translating Reviews

    • Translation Basics
    • What Is Sent to the Model
    • Fallback Behaviour
    • Automatic Translation
    • The Queue Consumer
    • Running the Consumer
    • Bulk CLI Command
    • Batch Size
    • CLI Output & Exit Codes
  • Storefront

    • On the Storefront
    • The Toggle
    • Styling
  • Developers

    • GraphQL API
    • Querying from Code
    • Data Model
    • Useful SQL
  • Help

    • Setup Problems
    • Translation Problems
    • Queue Problems
    • Storefront Problems
    • FAQ

Fallback Behaviour

The parser is deliberately forgiving, because a blank review on a storefront is worse than an untranslated one. Knowing exactly when it gives up saves a lot of debugging.

The rules

The model…Result
Wraps the JSON in a code fenceFence stripped, JSON parsed.
Adds commentary around the arrayThe outermost [ … ] is extracted.
Returns a bare object for a one-item batchTreated as a single-element array.
Drops the id on a one-item batchMatched back to the only review in the batch.
Omits a review entirelyThat review keeps its original title and body.
Returns an empty title or bodyThe original title or body is kept, field by field.
Returns a provider error objectRecorded as a warning; the batch is skipped, the run continues.

The silent failure

A translation that reads exactly like the original is usually a fallback

There is no error, no warning on the page, and the row is written normally. It looks like a successful translation of a review the model decided not to change.

Three causes, in order of likelihood:

  1. The reply was truncated. LLM Max Token is too small for the batch, so the JSON never closed and nothing parsed.
  2. The model returned malformed JSON. Small models drift from the format. Try a larger one — see Choosing a Model.
  3. Nothing to translate. The store view's locale matches the review's language.

Finding them

Rows where the translated body equals the original:

SELECT t.review_id, t.store_id
FROM   ai_review_translation_list t
JOIN   review_detail d ON d.review_id = t.review_id
WHERE  t.review_message = d.detail;

A handful is normal — already-matching languages, very short reviews. Hundreds means a configuration problem.

Provider errors are different

A provider-level error (bad key, rate limit, network failure) is not a fallback. It is collected as a warning, listed at the end of a bulk run, and written to var/log/aireviewlogger.log. Those reviews get no row at all rather than a copy of the original.

See CLI Output & Exit Codes.

Prev
What Is Sent to the Model
Next
Automatic Translation