# Zeitplan der Übertragungen

Unter **Shopify → Zeitsteuerung** wird festgelegt, wie oft jede Aufgabe läuft. Auf
derselben Seite stehen das Protokoll, der Zeitpunkt der letzten Ausführung und der
nächste geplante Termin.

<!-- TODO Screenshot: images/betrieb-zeitsteuerung.png -->

## Die Aufgaben

| Aufgabe                                       | Was sie tut                                             |
| --------------------------------------------- | ------------------------------------------------------- |
| Artikelgruppen exportieren                     | Sammlungen anlegen und aktualisieren                      |
| Artikel exportieren (geänderte)                | geänderte Artikel mit Bildern                              |
| Artikel exportieren (geänderte, ohne Bilder)   | dasselbe ohne Bildübertragung                              |
| Artikel exportieren (alle)                     | Vollexport mit Bildern                                     |
| Artikel exportieren (alle, ohne Bilder)        | Vollexport ohne Bilder                                      |
| Preise exportieren                             | Preis, Streichpreis und Katalogpreise                        |
| Bestand exportieren (geänderten)               | Bestände mit Bewegung seit dem letzten Lauf                   |
| Bestand exportieren                            | alle Bestände, zusätzlich Statuspflege                        |
| Bestellungen importieren                       | Bestellungen holen, Versand und Zahlung zurückmelden           |
| Sachmerkmale und Extrafelder aktualisieren      | Metafeld-Definitionen anlegen                                 |
| Exportiere Kunden                              | Kunden bzw. Unternehmen übertragen                             |
| Dateien aktualisieren                          | Journaldateien hochladen und zuordnen                          |
| Cache aktualisieren                            | Zuordnungstabelle neu aufbauen, siehe [Der Cache](https://wiki.dako-it.com/books/finnghost-fur-shopify/page/der-cache)    |

## Die Aufgaben laufen nacheinander

Das ist der wichtigste Punkt bei der Planung: Aufgaben laufen **nicht gleichzeitig**.
Startet eine, während eine andere arbeitet, wartet sie.

<p class="callout danger">Läuft ein Vollexport aller Artikel mehrere Stunden, warten in dieser Zeit alle anderen Aufgaben — auch der Bestellimport. Vollexporte gehören daher auf eine feste Uhrzeit in der Nacht und nicht in ein Intervall.</p>

Ein Start von Hand über die Oberfläche umgeht das Warten und läuft sofort.

## Shopify gibt das Tempo vor

Shopify begrenzt die Anzahl der Anfragen. FINN.ghost pausiert selbstständig, wenn das
Kontingent knapp wird.

<p class="callout info">Deshalb lässt sich ein Vollexport nicht durch kürzere Intervalle beschleunigen — man erreicht nur, dass sich die Läufe gegenseitig blockieren. Bei großen Sortimenten ist die Nacht der richtige Ort für Vollläufe.</p>

## Empfehlung für einen mittelgroßen Shop

| Aufgabe                                      | Empfehlung          | Begründung                                          |
| -------------------------------------------- | ------------------- | --------------------------------------------------- |
| Bestellungen importieren                      | alle 5 Minuten       | Bestellungen sollen zeitnah im ERP stehen             |
| Bestand exportieren (geänderten)              | alle 5 Minuten       | häufigste Änderung im Tagesgeschäft                    |
| Artikel exportieren (geänderte, ohne Bilder)  | alle 15 Minuten      | Texte und Stammdaten zeitnah, ohne Bildlast            |
| Artikel exportieren (geänderte)               | stündlich            | zieht die Bilder nach                                  |
| Preise exportieren                            | stündlich            | erfasst ablaufende Aktionspreise                        |
| Exportiere Kunden                             | stündlich            |                                                       |
| Dateien aktualisieren                         | nachts, feste Zeit   | ändert sich selten                                     |
| Artikelgruppen exportieren                    | nachts, feste Zeit   | ändert sich selten                                     |
| Sachmerkmale und Extrafelder aktualisieren    | nachts, feste Zeit   | nur bei Strukturänderungen relevant                     |
| Bestand exportieren                           | nachts, feste Zeit   | Korrekturlauf, pflegt auch den Status                    |
| Artikel exportieren (alle, ohne Bilder)       | nachts, feste Zeit   | Korrekturlauf                                           |
| Cache aktualisieren                           | nachts, feste Zeit   | siehe [Der Cache](https://wiki.dako-it.com/books/finnghost-fur-shopify/page/der-cache)                             |
| Artikel exportieren (alle)                    | nur von Hand         | läuft je nach Artikelzahl viele Stunden                   |

## Warum die nächtlichen Korrekturläufe wichtig sind

Der Änderungslauf erkennt Artikel daran, dass sich der Artikelstamm geändert hat. Zwei
Dinge entgehen ihm:

- **Preisänderungen und ablaufende Aktionen** — dafür gibt es *Preise exportieren*.
- **Alles, was sich nur in Nebentabellen ändert** — dafür der nächtliche Vollauf ohne
  Bilder.

<p class="callout warning">Ohne diese Läufe können Änderungen dauerhaft im Shop fehlen. Besonders auffällig bei Aktionspreisen: Eine abgelaufene Aktion bleibt im Shop stehen, bis der Preislauf sie korrigiert.</p>

## Was im Protokoll steht

Das Protokoll zeigt den Fortschritt, übersprungene Datensätze und Fehler.

<p class="callout warning">Ein Lauf gilt als erfolgreich beendet, auch wenn alle Datensätze übersprungen wurden. Der Abschluss allein ist also kein Nachweis dafür, dass alles im Shop angekommen ist — dafür muss man ins Protokoll schauen.</p>

Siehe [Wenn etwas nicht im Shop ankommt](https://wiki.dako-it.com/books/finnghost-fur-shopify/page/wenn-etwas-nicht-im-shop-ankommt).