> For the complete documentation index, see [llms.txt](https://docs.hubyte.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hubyte.de/seo-ultimate/cronjob.md).

# Cronjob / Automatisierung

Jeder Bulk-Generator lässt sich als **Vorlage** speichern und **einmal täglich automatisch** ausführen. So bleiben Meta-Daten, Bild-Tags & Co. auch bei neuen oder geänderten Artikeln fortlaufend gepflegt – ohne manuelles Nachgenerieren.

## Einrichtung

1. Im gewünschten Bulk-Generator die **Kategorien** anhaken und die **Felder** (Vorlage/Variablen) sowie die **Optionen** setzen.
2. Den Schalter **„Cronjob (täglich automatisch ausführen)"** aktivieren.
3. Die Vorlage **speichern** (per „Template speichern" oder „Template erstellen").

Dabei werden **Feldinhalte, Optionen, ausgewählte Kategorien und der Cron-Status** in der Vorlage hinterlegt. Der tägliche Task verarbeitet anschließend **alle** Vorlagen, bei denen der Cronjob aktiv ist.

## Funktionsweise

* Die automatische Ausführung nutzt Shopwares **Scheduled-Task-System** (`hueb_seo.bulk_generate`, Intervall: täglich).
* Voraussetzung ist ein laufender Scheduler bzw. Message-Consumer auf dem Server – bei Produktivsystemen üblicherweise bereits eingerichtet.
* Die Generierung läuft serverseitig und nutzt dieselbe Variablen-Auflösung, Zähler- und Sprachlogik wie der manuelle Lauf.

## Manuell auslösen (optional, für Admins/Entwickler)

Der Task kann jederzeit manuell gestartet werden:

```bash
bin/console scheduled-task:run-single hueb_seo.bulk_generate
```

Registrierung (falls der Task nach einem Update fehlt):

```bash
bin/console scheduled-task:register
```

## Hinweise

* **Überschreiben:** Achte auf die Option *Vorhandene Einträge überschreiben*. Ist sie aus, ergänzt der Cron nur leere Felder; ist sie an, werden bestehende Werte bei jedem Lauf neu gesetzt.
* **Sprachen:** Beim Bilder-Bulk bestimmt die Option *Alle Sprachen*, ob in alle Sprachen oder nur in die Standardsprache geschrieben wird.
* **Storefront-spezifische Variablen** wie `{{ product.variation.0.group }}` werden im Cron nicht aufgelöst (sie sind nur im Storefront-Kontext verfügbar). Für den Cron eignen sich Standard-Variablen wie Name, Nummer und Hersteller.
