# Der Cache

Shopify vergibt für jedes Produkt, jede Variante, jede Sammlung und jedes Metafeld eine
eigene interne Nummer. Diese Nummern stehen nirgends in der SelectLine. FINN.ghost führt
deshalb eine eigene Zuordnungstabelle — den **Cache**.

<p class="callout info">Der Cache ist keine Kopie der Daten, sondern nur ein Verzeichnis: „SelectLine-Artikel 4711 ist im Shop das Produkt mit der Nummer 123456789". Ohne diesen Eintrag findet die Schnittstelle den Artikel im Shop nicht wieder.</p>

## Was im Cache steht

| Zuordnung                     | Wofür sie gebraucht wird                            |
| ----------------------------- | --------------------------------------------------- |
| Artikelnummer → Produkt        | Artikel wiederfinden statt doppelt anlegen             |
| Artikelnummer → Variante        | Preis und Bestand setzen                               |
| Artikelnummer → Sammlungen      | Zuordnung nicht doppelt anlegen                        |
| Artikelgruppe → Sammlung        | Sammlung wiederfinden                                  |
| Sachmerkmal → Metafeld          | Definition nicht doppelt anlegen                        |
| Extrafeld → Metafeld            | Definition nicht doppelt anlegen                        |
| Kundennummer → Unternehmen       | B2B-Unternehmen wiederfinden                            |
| CRM-Adresse → Firmenkontakt      | B2B-Kontakte wiederfinden                               |
| Zahlungsarten                    | Liste für die Zuordnung der Zahlungsbedingungen          |

## Wann er erneuert werden muss

<p class="callout danger">Immer, wenn im Shopify-Adminbereich Produkte, Varianten oder Sammlungen <strong>gelöscht oder von Hand angelegt</strong> wurden. Der Cache weiß davon nichts.</p>

Die Folgen eines veralteten Caches sind typisch und gut erkennbar:

| Symptom                                                      | Ursache                                           |
| ------------------------------------------------------------ | ------------------------------------------------- |
| Artikel entsteht im Shop doppelt                              | Produkt gelöscht, Cache zeigt noch darauf            |
| Bestellimport meldet „Artikelnummer nicht gefunden"           | Variante nicht im Cache                             |
| Preis- oder Bestandslauf meldet „VariantID nicht gefunden"     | Variante nicht im Cache                             |
| Sammlungszuordnung entsteht doppelt                            | Sammlung im Shop neu angelegt                        |

## Wie man ihn erneuert

Die Aufgabe **Cache aktualisieren** unter **Shopify → Zeitsteuerung** starten.

Sie verwirft die Tabelle und baut sie vollständig aus dem Shop neu auf: alle Sammlungen,
alle Produkte mit ihren Varianten, alle Metafeld-Definitionen und — bei Shopify Plus —
alle Unternehmen mit ihren Kontakten.

<p class="callout warning">Das ist ein vollständiger Durchlauf durch den Shop und dauert bei großen Sortimenten entsprechend lange. Während er läuft, warten alle anderen Aufgaben. Der Lauf gehört deshalb in die Nacht — und nach jedem größeren Eingriff im Shopify-Adminbereich einmal von Hand angestoßen.</p>

Die Zuordnung eines Produkts erfolgt über die SKU seiner ersten Variante. Ist das ein
Variantenartikel, wird der Hauptartikel aus der SelectLine ermittelt.

## Unbekannte Produkte archivieren

### Unbekannte Produkte archivieren

Ist diese Einstellung aktiv, archiviert der Cache-Lauf zusätzlich alle Produkte, die

- keiner SelectLine-Artikelnummer zuzuordnen sind, oder
- deren Artikel nicht mehr für den Shop freigegeben ist.

<p class="callout danger">Damit werden auch Produkte archiviert, die absichtlich nur im Shop existieren — etwa reine Shop-Artikel ohne Gegenstück in der SelectLine. Vor dem Einschalten prüfen, ob es solche Produkte gibt.</p>

## Der Cache und die Datensicherung

Der Cache liegt als Datei im Arbeitsverzeichnis des Dienstes. Er ist **kein**
schützenswerter Datenbestand: Geht er verloren, baut die Aufgabe *Cache aktualisieren*
ihn vollständig neu auf.

<p class="callout warning">Nach einem Serverumzug oder einer Neuinstallation ist der Cache leer. Bevor irgendein Artikel- oder Bestellauf startet, muss deshalb <em>Cache aktualisieren</em> durchgelaufen sein — sonst entstehen alle Produkte im Shop doppelt.</p>

## Weiter

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