> For the complete documentation index, see [llms.txt](https://docs.pixeleyes.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pixeleyes.de/anleitungen-instructions/deutsch/dokumentation-unserer-shopware-6-plugins/blog-fur-shopware-6/cli-befehle.md).

# Cli Befehle

Ab Version **3.3.8** bringt „Blog für Shopware 6" mehrere Konsolenbefehle für Wartung, SEO und KI-Unterstützung mit. Alle Befehle werden im Shopware-6-Projektverzeichnis ausgeführt.

{% hint style="info" %}
**Gemeinsame Optionen**

* `--dry-run` – zeigt nur, was passieren würde (KI-Befehle rufen dabei OpenAI **nicht** auf).
* Standardmäßig werden **nur leere Felder** gefüllt – manuelle Anpassungen bleiben erhalten. Mit `--force` werden vorhandene Werte bewusst überschrieben.
* `--limit=N` – verarbeitet höchstens N Einträge (für kontrollierte Testläufe).
  {% endhint %}

## Übersicht

| Befehl                    | Zweck                                             |
| ------------------------- | ------------------------------------------------- |
| `pixel-blog:migrate:meta` | SW5-Meta-Daten in migrierte Beiträge nachtragen   |
| `pixel-blog:seo:report`   | SEO-Audit aller Beiträge (optional als CSV)       |
| `pixel-blog:ai:meta`      | Fehlende Meta-Titel/-Descriptions per KI erzeugen |
| `pixel-blog:ai:alt`       | Alt-Texte für Beitragsbilder per KI erzeugen      |
| `pixel-blog:ai:tags`      | Tags per KI vorschlagen und verknüpfen            |

***

## `pixel-blog:migrate:meta`

Trägt fehlende **Meta-Titel, Meta-Description und Meta-Keywords** aus Shopware 5 in bereits migrierte Beiträge nach. Die Zuordnung erfolgt über die **SW5-ID** (`sw5_id`) – es findet **keine** erneute Migration statt, alle übrigen Inhalte bleiben unangetastet.

```bash
bin/console pixel-blog:migrate:meta
bin/console pixel-blog:migrate:meta --force
bin/console pixel-blog:migrate:meta --dry-run
```

| Option      | Wirkung                                 |
| ----------- | --------------------------------------- |
| *(ohne)*    | Füllt nur leere Meta-Felder             |
| `--force`   | Überschreibt auch vorhandene Meta-Werte |
| `--dry-run` | Vorschau ohne Änderungen                |

{% hint style="warning" %}
Benötigt die **Shopware-5-Zugangsdaten** in den Plugin-Einstellungen (Shop-URL, API-Benutzer, API-Key). Die Meta-Daten liegen in Shopware 5 verschachtelt im `seo`-Objekt und werden dort automatisch ausgelesen.
{% endhint %}

## `pixel-blog:seo:report`

Prüft **alle Beiträge** und meldet: fehlender/zu kurzer/zu langer Meta-Titel, fehlende/zu kurze/zu lange Meta-Description, fehlende SEO-URL und zu wenig Inhalt („thin content"). Optional als CSV.

```bash
bin/console pixel-blog:seo:report
bin/console pixel-blog:seo:report --limit=50
bin/console pixel-blog:seo:report --csv=var/blog-seo-report.csv
```

| Option       | Wirkung                                                  |
| ------------ | -------------------------------------------------------- |
| `--limit=N`  | Anzahl gelisteter Beiträge in der Konsole (Standard: 25) |
| `--csv=PFAD` | Schreibt den vollständigen Bericht in eine CSV-Datei     |

## `pixel-blog:ai:meta`

Erzeugt **fehlende Meta-Titel und Meta-Descriptions** per OpenAI – jeweils in der **Sprache des Beitrags**. Ideal für Beiträge, die in Shopware 5 gar keine Meta-Daten hatten.

```bash
bin/console pixel-blog:ai:meta
bin/console pixel-blog:ai:meta --dry-run --limit=5
bin/console pixel-blog:ai:meta --force
```

| Option      | Wirkung                                 |
| ----------- | --------------------------------------- |
| *(ohne)*    | Füllt nur leere Meta-Felder             |
| `--force`   | Überschreibt auch vorhandene Werte      |
| `--dry-run` | Listet Beiträge, ohne OpenAI aufzurufen |
| `--limit=N` | Nur N Übersetzungen verarbeiten         |

## `pixel-blog:ai:alt`

Erzeugt **Alt-Texte für Beitragsbilder** per OpenAI – je Beitragssprache. Verbessert Barrierefreiheit und Bilder-SEO.

```bash
bin/console pixel-blog:ai:alt
bin/console pixel-blog:ai:alt --dry-run --limit=10
bin/console pixel-blog:ai:alt --force
```

| Option      | Wirkung                               |
| ----------- | ------------------------------------- |
| *(ohne)*    | Füllt nur leere Alt-Texte             |
| `--force`   | Überschreibt vorhandene Alt-Texte     |
| `--dry-run` | Listet Bilder, ohne OpenAI aufzurufen |
| `--limit=N` | Nur N Bilder verarbeiten              |

## `pixel-blog:ai:tags`

Schlägt pro Beitrag passende **Tags** aus dem Inhalt vor (in der Beitragssprache) und verknüpft sie. Vorhandene Tags werden nie entfernt.

```bash
bin/console pixel-blog:ai:tags
bin/console pixel-blog:ai:tags --dry-run --limit=5
bin/console pixel-blog:ai:tags --force --max-tags=6
```

| Option         | Wirkung                                             |
| -------------- | --------------------------------------------------- |
| *(ohne)*       | Nur Beiträge **ohne** Tags                          |
| `--force`      | Auch zu bereits getaggten Beiträgen hinzufügen      |
| `--dry-run`    | Vorschau, ohne OpenAI aufzurufen und ohne Schreiben |
| `--limit=N`    | Nur N Beiträge verarbeiten                          |
| `--max-tags=N` | Maximale Anzahl Tags pro Beitrag (Standard: 5)      |

{% hint style="info" %}
Die KI-Befehle (`ai:meta`, `ai:alt`, `ai:tags`) benötigen einen gültigen **OpenAI-API-Key** in den Plugin-Einstellungen. Modell und Tonalität werden aus derselben Konfiguration übernommen.
{% endhint %}

## Empfohlene Reihenfolge

{% stepper %}
{% step %}

### `pixel-blog:migrate:meta`

Echte SW5-Meta-Daten verlustfrei nachtragen.
{% endstep %}

{% step %}

### `pixel-blog:ai:meta`

Verbleibende Lücken (ohne SW5-Meta) per KI füllen.
{% endstep %}

{% step %}

### `pixel-blog:seo:report`

Ergebnis prüfen.
{% endstep %}

{% step %}

### Optional: `pixel-blog:ai:alt` und `pixel-blog:ai:tags`

{% endstep %}
{% endstepper %}
