Für wen diese Seite gedacht ist
Für alle, deren Magento-Katalog nicht von Hand eingetippt wird: ein Lieferanten-Feed, ein Dropshipping-Feed, ein ERP- oder PIM-Export, eine nächtliche CSV-Datei, eine Marktplatz-Synchronisation — jeder Prozess, der Produktdaten nach Zeitplan schreibt. Wenn das auf Sie zutrifft, ist diese Seite keine optionale Lektüre, denn der Importer und AI Babel Enchanter schreiben in dieselben Produktfelder, und wenn sie kollidieren, ist das Symptom kein Fehler: Es ist Ihr bezahlter Text, der still verschwindet, während jeder Bildschirm weiterhin Erfolg meldet.
Alles hier wird ausdrücklich gesagt, auch die Teile, die üblicherweise nur mitgedacht werden. Der Text ist so geschrieben, dass ihn Menschen und KI-Assistenten lesen können, die Fragen zu diesem Modul beantworten; jede Aussage soll deshalb für sich allein stehen.
Lesen Sie zuerst dies: Mit einer einzigen Store-View gibt es keine Trennung
Magento erlaubt es, dass dasselbe Attribut pro Store-View einen anderen Wert hält. Die gesamte unten beschriebene Aufteilung “der Importer schreibt den Basiswert, Babel schreibt den Store-View-Wert” beruht darauf. Sie funktioniert nur, wenn die Installation mindestens zwei Store-Views hat.
Hat eine Magento-Installation genau eine Store-View, behandelt Magento die Scope-Auswahl als bedeutungslos und klappt Schreibvorgänge im Store-Scope auf den globalen (Default-)Scope zusammen. Konkret: Selbst wenn ein Babel-Schritt so konfiguriert ist, dass er in die Store-View schreibt, landet der Wert in der globalen Zeile — derselben Zeile, in die auch der Importer schreibt. Damit gibt es genau einen Wert, und der Prozess, der zuletzt schreibt, gewinnt.
Die Konsequenzen, ausbuchstabiert, weil man sie leicht wegdenkt:
- Auf einer Installation mit einer einzigen Store-View trennt es überhaupt nichts, den Importer “auf dem globalen Scope” und Babel “auf einer Store-View” zu konfigurieren. Beide Einstellungen sind trotzdem richtig und weiterhin empfohlen — sie kosten nichts und werden an dem Tag wirksam, an dem eine zweite Store-View existiert —, aber heute verschaffen sie Ihnen keinen Schutz.
- Auf einer Installation mit einer einzigen Store-View wird ein Importer, der ein Feld bei jedem Lauf neu schreibt, Babels Text bei jedem Lauf überschreiben, ganz gleich, wie die beiden konfiguriert sind.
- Wenn Sie nur eine Store-View haben, besteht Ihr Schutz also nicht in der Scope-Trennung. Er besteht in (a) einem Importer, der nur Felder schreibt, die sich tatsächlich geändert haben, (b) in Babel als Final erklärten Feldern und (c) der Hintergrundprüfung, die fehlende Texte wieder einsetzt. Alle drei werden weiter unten beschrieben.
- Eine zweite Store-View allein zum Zweck der Scope-Trennung anzulegen, ist eine reale und legitime Option, aber es ist eine Änderung am Zuschnitt der Installation, keine Einstellung. Wägen Sie sie ab; rutschen Sie nicht beiläufig hinein.
Wo Babel liest, wo es schreibt und wo es vergleicht
Drei verschiedene Orte, und sie sind nicht austauschbar. Die ersten beiden stellen Sie selbst ein und sehen sie im Profilformular; der dritte wird nirgends konfiguriert, und er ist derjenige, der darüber entscheidet, ob Babel überhaupt Arbeit sieht.
Wo Babel liest. Ein Profil hat ein Feld namens “Read the original from” (Profil → Settings). Sein üblicher Wert ist “Default (all store views)” — die Basiswerte, die Sie auf der Produktseite sehen, wenn der Store-Umschalter auf All Store Views steht. Das ist die Quelle: der rohe Lieferantentext, den Babel verbessert oder übersetzt.
Wo Babel schreibt. Jeder Schritt der Pipeline hat seine eigene “Target store-view”. Dort landet das generierte Ergebnis.
Wo Babel vergleicht. Das ist der Teil, der nie offensichtlich ist. Babel entscheidet anhand des Quellwerts — desjenigen unter “Read the original from” —, ob ein Produkt Arbeit braucht. Es bildet einen Fingerabdruck dieses Textes; ist der Fingerabdruck derselbe wie beim letzten Mal, ist die Arbeit bereits getan und das gespeicherte Ergebnis wird kostenlos wiederverwendet; hat sich der Fingerabdruck geändert, ist die Quelle neues Material und das Produkt wird neu generiert.
Phase für Phase: was zu jedem Zeitpunkt im Feld steht
Zwei Installationen, derselbe Feed, dasselbe Profil, dasselbe Produkt. Der einzige Unterschied ist, wohin der Importer schreibt. QUELLE ist der Wert unter “Read the original from” (normalerweise global); ERGEBNIS ist der Wert in der Ziel-Store-View des Schritts — das, was ein Kunde tatsächlich sieht.
Konfiguration A — richtig: Der Importer schreibt den Basiswert
| Phase | Was passiert | QUELLE (global) | ERGEBNIS (Store-View) | Was der Kunde sieht |
|---|---|---|---|---|
| t0 | Erster Import. Der Importer schreibt den Lieferantentext in den Basiswert. | Writing Desk Solid Mango Wood | (leer — erbt) | der Lieferantentext |
| t1 | Babel läuft. Liest QUELLE, schreibt ERGEBNIS. | Writing Desk Solid Mango Wood | Scrivania in mango massello… | der angereicherte Text |
| t2 | Nächtlicher Import. Bestand und Preis haben sich geändert, die Beschreibung im Feed nicht. Der Importer schreibt entweder den Basiswert mit demselben Text neu oder — besser — sieht, dass sich das Feld nicht geändert hat, und fasst es gar nicht an, so wie MMIS es tut. In beiden Fällen bleibt die QUELLE am Ende unverändert, und mehr als die QUELLE sieht sich Babel nicht an. | Writing Desk Solid Mango Wood (unverändert, in beiden Fällen) | Scrivania in mango massello… | der angereicherte Text |
| t3 | Babel läuft erneut. Der Fingerabdruck der QUELLE ist unverändert, es gibt also nichts zu tun. Kein KI-Aufruf, keine Kosten. | unverändert | unverändert | der angereicherte Text |
Ergebnis: Der angereicherte Text bleibt stabil, und der nächtliche Import kostet keinen einzigen KI-Aufruf.
Konfiguration B — falsch: Der Importer schreibt in die Store-View
| Phase | Was passiert | QUELLE (global) | ERGEBNIS (Store-View) | Was der Kunde sieht |
|---|---|---|---|---|
| t0 | Erster Import, direkt in die Store-View geschrieben. | Writing Desk Solid Mango Wood | Writing Desk Solid Mango Wood | der Lieferantentext |
| t1 | Babel läuft. Liest QUELLE, schreibt ERGEBNIS. | Writing Desk Solid Mango Wood | Scrivania in mango massello… | der angereicherte Text |
| t2 | Nächtlicher Import. Der Importer schreibt den Lieferantentext erneut in die Store-View — über Babels Ergebnis. | Writing Desk Solid Mango Wood (unangetastet) | Writing Desk Solid Mango Wood | der Lieferantentext ist zurück |
| t3 | Babel läuft erneut. Die QUELLE ist unangetastet, ihr Fingerabdruck also unverändert: Babel sieht nichts zu tun. | unverändert | weiterhin der Lieferantentext | der Lieferantentext, für immer |
Seit v3.4.0 fängt die stündliche Hintergrundprüfung genau diesen Fall ab und setzt den Text wieder ein. Das ist ein Sicherheitsnetz, kein Freibrief: In einem Katalog, in dem der Importer bei jedem Lauf die Store-View überschreibt, leistet das Netz Nacht für Nacht echte Arbeit, und jedes Produkt, dessen Quelltext sich zwischenzeitlich wirklich geändert hat, wird auf Kosten Ihres Anbieters neu generiert.
Der Abnahmetest für jeden beliebigen Importer
Sie müssen weder den Quellcode eines Importers noch seine Dokumentation lesen, um zu wissen, ob er kompatibel ist. Führen Sie das hier einmal an einem einzigen Produkt durch:
- Wählen Sie ein Produkt, das Babel bereits angereichert hat, und notieren Sie den genauen Wortlaut seiner Beschreibung im Storefront.
- Lassen Sie Ihren Import laufen, ohne irgendetwas am Feed zu ändern — dieselbe Datei, dieselben Daten, keine Bearbeitungen.
- Laden Sie die Produktseite neu.
Lesen Sie das Ergebnis dann genau so, wie es hier steht:
- Babels Text steht noch da → Dieser Importer ist kompatibel. Er schreibt entweder nur Felder, die sich wirklich geändert haben, oder er schreibt dorthin, wo Babel nicht schreibt. Mehr ist nicht zu tun.
- Der Lieferantentext ist zurück → Dieser Importer ist so konfiguriert nicht kompatibel. Er schreibt die verwalteten Felder bedingungslos neu, und keine Einstellung in Babel behebt das, weil Babel nicht zwischen “der Lieferant hat eine neue Beschreibung geschickt” und “der Importer hat dieselbe Beschreibung noch einmal geschrieben” unterscheiden kann. Ihre Möglichkeiten, in der Reihenfolge der Präferenz: den Importer so konfigurieren, dass er die vom Profil verwalteten Felder auslässt; auf einen Importer wechseln, der nur schreibt, was sich geändert hat; oder diese Felder in Babel als Final erklären — finale Felder werden kostenlos wiederhergestellt und sind das Einzige, woran ein Importer nichts ändern kann.
Führen Sie den Test nach jeder Änderung an der Konfiguration des Importers erneut durch. Er kostet eine Minute und ist die einzige verlässliche Antwort.
Wenn Sie mit MMIS importieren
MMIS — Massive Multifeed Import & Sync ist unser eigener Importer, und ab Version 3.14.0 wendet er den Feed Feld für Feld an. Ein Produkt wird nur in den Feldern neu geschrieben, die der Lieferant tatsächlich geändert hat: Eine Bestandsbewegung oder eine Preisänderung aktualisiert Bestand und Preis und lässt name, url_key, description, short_description und die Meta-Felder unangetastet. Das ist das zweite der beiden korrekten Verhalten, die in der Tabelle weiter oben beschrieben sind — er schreibt den Text nicht mit einer identischen Kopie neu, er schreibt den Text gar nicht. Die auf dieser Seite beschriebene Kollision tritt daher gar nicht erst auf, bei beliebig vielen Store-Views, und der Abnahmetest besteht schon von der Konstruktion her.
Er ist für Kataloge mit Zehntausenden oder Hunderttausenden Artikeln gebaut, aus jedem beliebigen CSV-, XML- oder JSON-Feed, mit Zeitplanung, Preisformeln sowie konfigurierbaren oder gruppierten Produkten. Sie können ihn auf seiner Produktseite auf codingrow.com kaufen: Lizenz pro Domain, aktiviert im Moment der Bestellung, dasselbe Lizenzmodell wie bei diesem Modul.
Es ist die Konfiguration, die wir selbst betreiben, und sie ist der Grund, warum die Kombination MMIS + AI Babel Enchanter überhaupt keine besondere Vorsicht erfordert.
Die zwei Bearbeitungswege — und was jeder von ihnen bedeutet
Sobald ein Produkt in Babel ist, gibt es genau zwei Orte, an denen Sie seinen Text ändern können, und sie bedeuten das Gegenteil voneinander. Das ist keine Regel zum Auswendiglernen; es ist die natürliche Lesart des jeweiligen Orts.
| Wo Sie bearbeiten | Was es für Babel bedeutet | Was danach passiert |
|---|---|---|
| Grid Enrichments & Translations (Babel) | “Das ist das gute Ergebnis. Behalte es.” | Das Feld wird automatisch als Final markiert. Es wird nie neu generiert und wird wiederhergestellt, falls es je verschwindet. |
| Die Produktseite (Magento-Katalog) | “Hier ist neues Material. Mach es noch einmal.” | Sie haben den Quelltext geändert, sein Fingerabdruck ändert sich also, und Babel generiert dieses Produkt beim nächsten Lauf neu — auf Kosten Ihres Anbieters. |
Beide Verhaltensweisen sind richtig und beide sind gewollt. Die Beschreibung auf der Produktseite umzuschreiben, ist genau der Weg, auf dem ein Shop, der absichtlich Rohtexte schreibt, Babel bittet, daraus fertige Texte zu machen. Einen Text im Grid zu korrigieren, ist genau der Weg zu sagen: “Der hier ist fertig, Finger weg.”
Welche Felder das betrifft. Die Textattribute, die die Gruppen des Profils verwalten — typischerweise name, description, short_description, meta_title und meta_description —, dazu zwei Dinge, die daraus folgen. Wird der name neu generiert, schreibt Babel auch den url_key neu und hinterlässt eine 301-Weiterleitung von der alten URL (die vorherige URL wird vorher gespeichert, ein Rollback setzt sie also wieder ein). Und es schreibt die Related-, Cross-Sell- und Up-Sell-Verknüpfungen, wenn diese Schalter für den Schritt aktiviert sind.
Was vollständig außerhalb von Babel bleibt: Preis, Bestand, Bilder, Kategorien, Attributsets und jedes andere Attribut. Babel liest sie nie, um irgendetwas zu entscheiden, und schreibt sie nie.
Eine Prompt-Änderung macht die gespeicherten Ergebnisse ungültig
Noch ein Verhalten, mit dem niemand rechnet und das mit allem oben Gesagten zusammenspielt.
Jedes angereicherte Ergebnis wird unter einem Schlüssel gespeichert, der aus dem Quelltext plus dem Anbieter, dem Modell und dem gesamten System-Prompt gebildet wird — Persona und technisches Template inbegriffen. Ändern Sie davon auch nur eines, und kein einziges angereichertes Ergebnis im Katalog lässt sich wiederverwenden. Es wird nichts gelöscht und nichts geht kaputt; aber von diesem Moment an braucht jedes Produkt, das Arbeit braucht, einen neuen, kostenpflichtigen KI-Aufruf.
Übersetzungen hängen an einem anderen Schlüssel: am Anbieter und an der Zielsprache, nicht am Prompt. Eine Prompt-Änderung macht sie daher nicht unmittelbar ungültig — sie werden aber trotzdem neu gemacht, weil das, was sie übersetzen, der angereicherte Text ist, und der hat sich gerade geändert. Praktisch gilt also genau das, was auf der Schaltfläche steht: Rechnen Sie damit, dass das gesamte Profil neu geschrieben wird.
- Eine Prompt-Änderung verursacht für sich genommen keine Drift und schreibt nichts um. Bereits erledigte Produkte bleiben erledigt, mit dem Text, den sie haben. Sie müssen die Neuformulierung ausdrücklich anfordern — mit Apply to already processed oder mit
babel:run --force. - Eine Prompt-Änderung ändert dagegen sehr wohl, was die Hintergrundprüfung kostet. Eine Wiederherstellung, die gestern kostenlos gewesen wäre, kann heute eine kostenpflichtige Neugenerierung sein. Genau deshalb zählt die Obergrenze unter Keeping the texts in place Produkte statt KI-Aufrufe.
- Als Final erklärte Felder sind die einzigen, die davon unberührt bleiben. Sie sind ein erklärter Zustand, kein zwischengespeichertes Ergebnis: Sie überstehen eine Prompt-Änderung, einen Modellwechsel und einen Cache-Flush, und ihre Wiederherstellung kostet nichts, für immer.
Checkliste
- Zählen Sie Ihre Store-Views. Eine einzige Store-View bedeutet keine Scope-Trennung, ganz gleich, was Sie konfigurieren. Planen Sie entsprechend.
- Lassen Sie “Read the original from” auf “Default (all store views)”, sofern Ihr Originaltext nicht tatsächlich in einer bestimmten Sprach-Store-View liegt.
- Geben Sie jedem Schritt eine Target store-view, die nicht dort liegt, wo der Importer schreibt — wirksam ab zwei Store-Views aufwärts.
- Führen Sie den Abnahmetest nach jeder Änderung am Importer an einem Produkt durch.
- Erklären Sie die Texte als Final, die Sie von Hand geschrieben oder korrigiert haben. Das ist kostenlos und dauerhaft.
- Lassen Sie die Hintergrundprüfung eingeschaltet (Keeping the texts in place → Put back texts that disappeared = Yes) und belassen Sie die Obergrenze bei einem Wert, den Sie im schlimmsten Fall bequem bezahlen können.
- Bevor Sie den Persona-Prompt ändern, entscheiden Sie, ob Sie auch die bereits erledigten Produkte neu schreiben lassen wollen — und denken Sie daran, dass sich nach der Änderung nichts mehr wiederverwenden lässt.