> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# WS-hreflang-Verlinkungen

> Zuordnungslisten für Kategorie- und Produktindizes übergeben, wenn das ERP-System dieselben Objekte in verschiedenen Subshops unter verschiedenen Indizes führt.

Betreiben Sie mehrere Subshops mit identischem Sortiment, hilft eine hreflang-Angabe gegen Duplicate Content. WEBSALE V8s erzeugt diese Zuordnung normalerweise von selbst, indem es Produkt- und Kategorieseiten über denselben Index in den Subshops verknüpft.

Das funktioniert nur so lange, wie der Index in allen Subshops gleich ist. Manche ERP-Systeme vergeben jedoch je Subshop eigene Indizes, obwohl es sich um dieselbe Kategorie oder dasselbe Produkt handelt. Für diesen Fall übergeben Sie dem Shop eine Zuordnungsliste.

| Eigenschaft | Wert |
| - | - |
| Übertragungsrichtung | Warenwirtschaft → WEBSALE Shop (Data-to-Shop) |
| Übertragungsart | Dateien per SFTP, Import per REST oder Cron-Job |
| Dateiformate | CSV, JSON |
| Zeichensatz | UTF-8 |

Die Liste kann als JSON-Datei oder als tabgetrennte CSV-Datei übergeben werden.

## Das Prinzip: MasterID

Jede Gruppe zusammengehöriger Objekte bekommt eine gemeinsame MasterID. Unter dieser ID stehen die Subshops mit ihren jeweiligen Indizes. Der Shop weiß dadurch, welche Seiten einander entsprechen.

Als Beispiel vier deutschsprachige Subshops mit drei Kategorien:

| Subshop | Kategorie | Kategorie-Index |
| - | - | - |
| de | Hemden | 111-1 |
| m-de | Hemden | 111-2 |
| at | Hemden | 111-3 |
| m-at | Hemden | 111-4 |
| de | Hosen | 222-1 |
| m-de | Hosen | 222-2 |
| at | Hosen | 222-3 |
| m-at | Hosen | 222-4 |

## JSON-Datei für Kategorien

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
 "cat": [
   {
     "MasterID": "M1",
     "maps": [
       { "subshop": "de",   "index": "111-1" },
       { "subshop": "m-de", "index": "111-2" },
       { "subshop": "at",   "index": "111-3" },
       { "subshop": "m-at", "index": "111-4" }
     ]
   },
   {
     "MasterID": "M2",
     "maps": [
       { "subshop": "de",   "index": "222-1" },
       { "subshop": "m-de", "index": "222-2" },
       { "subshop": "at",   "index": "222-3" },
       { "subshop": "m-at", "index": "222-4" }
     ]
   }
 ]
}
```

## CSV-Datei für Kategorien

Dieselben Daten als tabgetrennte CSV mit drei Spalten:

| MasterID | SubShop | CatIndex |
| - | - | - |
| M1 | de | 111-1 |
| M1 | m-de | 111-2 |
| M1 | at | 111-3 |
| M1 | m-at | 111-4 |
| M2 | de | 222-1 |
| M2 | m-de | 222-2 |

## Eine Datei je Subshop-Gruppe

Eine Zuordnungsdatei beschreibt immer genau eine Gruppe zusammengehöriger Subshops. Kommen weitere Sprachräume hinzu, erzeugen Sie je Gruppe eine eigene Datei.

Für vier deutschsprachige und zwei englische Subshops entstehen also zwei Dateien:

```
catalloc_complete_g1.json
catalloc_complete_g2.json
```

Die englischen Subshops `gb` und `m-gb` stehen dann mit eigenen MasterIDs in der zweiten Datei.

## Dateien für Produkte

Für Produkte gilt dasselbe Schema mit zwei Unterschieden: In der JSON-Datei heißt das erste Element `prod` statt `cat`, in der CSV-Datei lautet der Spaltenkopf `ProdIndex` statt `CatIndex`.

| MasterID | SubShop | ProdIndex |
| - | - | - |
| P001 | de | 1234 |
| P001 | at | 4321 |
| P002 | de | 5678 |
| P002 | at | 8765 |

## Prüfsummendatei

Zu jeder JSON- oder CSV-Datei gehört eine Prüfsummendatei. Bilden Sie vom kompletten Inhalt der Datei einen SHA512-Hashwert und schreiben Sie ihn in die erste Zeile. Die Endung lautet `.sha512sum`.

Zu den beiden Dateien oben gehören also:

```
catalloc_complete_g1.sha512sum
catalloc_complete_g2.sha512sum
```

Fehlt die Prüfsummendatei oder passt der Hashwert nicht, wird die zugehörige Zuordnungsliste nicht importiert.

## Import der Dateien

Die Zuordnungs- und Prüfsummendateien übertragen Sie per SFTP in Ihr Root-Verzeichnis. Den SFTP-Zugang erhalten Sie von der WEBSALE AG.

Der Import läuft standardmäßig einmal täglich nachts per Cron-Job. Wenn Sie öfter importieren wollen, stoßen Sie ihn per REST an. Wie das geht, steht unter [REST hreflang-Erzeugung](https://dokumentation.websale.de/v8s/schnittstellen/rest-osb-dienste/rest-hreflang-erzeugung.md).

## Verwandte Themen

* Wegweiser: [Marketing, SEO und externe Portale](https://dokumentation.websale.de/v8s/schnittstellen/marketing-seo-und-portale.md)
* Wegweiser: [REST hreflang-Erzeugung](https://dokumentation.websale.de/v8s/schnittstellen/rest-osb-dienste/rest-hreflang-erzeugung.md)
* Wegweiser: [SEO-URLs und Link-Optimierung](https://dokumentation.websale.de/v8s/seo/seo-urls-und-link-optimierung.md)


## Related topics

- [REST hreflang-Erzeugung](https://dokumentation.websale.de/v8s/schnittstellen/rest-osb-dienste/rest-hreflang-erzeugung.md)
- [Marketing, SEO und externe Portale](https://dokumentation.websale.de/v8s/schnittstellen/marketing-seo-und-portale.md)
- [$wsViews - Aktuelle Informationen abrufen](https://dokumentation.websale.de/frontend/referenz/module/wsviews.md)
- [Interne Verlinkungen](https://dokumentation.websale.de/v8s/domains/interne-verlinkungen.md)
- [Externe Verlinkungen](https://dokumentation.websale.de/v8s/domains/externe-verlinkungen.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.