# Experteneinstellungen

Neben den Einstellungen auf der Webseite der Schnittstelle, können diverse Konfigurationen in der `config.json` und mit Extrafeldern getätigt werden.

### Voraussetzung

Die Datei `config.json` befindet sich im Installations-Ordner der Schnittstelle. Um Änderungen daran vorzunehmen, sollte zunächst der Dienst des FINN.ghosts gestoppt und nach der Anpassung wieder gestartet werden.

### Die Webseite ist nicht erreichbar

Sollte die Webseite der Schnittstelle nicht erreichbar sein, beenden Sie bitte den Dienst bitte über die Eingabeaufforderung (CMD oder Powershell). Sollten Ihnen die angezeigten Fehlermeldungen nicht weiterhelfen, wenden Sie sich bitte an den Support.

### config.json

#### Lagerbestand individuell ermitteln

Um den Lagerbestand für Shopware individuell zu ermitteln, fügen Sie bitte im Object `"sw6"` den Wert `"customStock"` hinzu. Dieser muss eine SQL-Abfrage enthalten, die den Bestand ermittelt. Dabei ist darauf zu achten, dass das Ergebnis eine Zeile mit der Spalte `"Bestand"` zurück liefert. Der Platzhalte für die Artikelnummer muss wie folgt aussehen: `'${article.Number}'`.

Beispiel:

```json
{
  ...
  "sw6":{
    ...
    "customStock": "SELECT Bestand-Reserviert AS Bestand FROM dbo.SL_vGetFreierArtikelBestandMitLager WHERE Artikelnummer = '${article.Number}'",
    ...
  },
  ...
}
```

#### Maximalabnahme

In der Regel wird der verfügbare Bestand als Maximalabnahme verwendet. Soll dies für jeden Artikel individuell konfiguriert werden, kann ein Extrafeld in der Tabelle ART angelegt werden, welches die Maximalabnahmemenge enthält.  
Dieses muss dann in der config.json zugewiesen werden:

```json
{
  ...
  "sw6":{
    ...
    "maxPurchaseField": "_EXTRAFELDNAME",
    ...
  },
  ...
}
```

Enthält dieses Feld einen Wert, wird er als Maximalabnahme zugewiesen, ansonsten wird, wie üblich, der Bestand verwendet.

#### Artikel ohne Beschreibungstext übertragen

In der `config.json` kann mit dem Feld `disableDescription` aktiviert werden, dass der Beschreibungstext nicht übertragen werden soll.

```json
{
  ...
  "sw6":{
    ...
      "disableDescription": "true",
    ...
  },
  ...
}
```



#### Artikel ohne Preise exportieren

Aus Sicherheitsgründen werden Artikel ohne Preise nicht exportiert. Möchte man für bestimmte Artikel dafür eine Ausnahme schaffen, so kann ein `Extrafeld (Boolean)` in der Tabelle `ART` angelegt werden. Hat dieses Extrafeld den Wert `True`, so wird der Artikel trotz fehlenden Preises exportiert.

```json
{
  ...
  "sw6":{
    ...
    "disableSafeguardPriceField": "_EXTRAFELDNAME",
    ...
  },
  ...
}
```

#### Grundpreise mit Mengenumrechnung

Damit die Grundpreise mit der Mengenumrechnung verwendet werden können, muss ein Extrafeld in der Tabelle MENGUM angelegt werden.

<table border="1" id="bkmrk-" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>[![image.png](https://wiki.dako-it.com/uploads/images/gallery/2024-06/scaled-1680-/nT0image.png)](https://wiki.dako-it.com/uploads/images/gallery/2024-06/nT0image.png)

</td></tr></tbody></table>

Das Feld muss vom Typ `Boolean` sein. Der Name muss in der config.json angegeben werden:

```json
{
  ...
  "sw6":{
    ...
    "grundpreisMengumField": "_GRUNDPREIS",
    ...
  },
  ...
}
```

In der SelectLine kann dann der Grundpreis in der Mengenumrechnung dann folgendermaßen definiert werden:

<table border="1" id="bkmrk-%C2%A0-darstellung-im-sho" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>[![image.png](https://wiki.dako-it.com/uploads/images/gallery/2024-06/scaled-1680-/ayJimage.png)](https://wiki.dako-it.com/uploads/images/gallery/2024-06/ayJimage.png)

Darstellung im Shop:

[![image.png](https://wiki.dako-it.com/uploads/images/gallery/2024-06/scaled-1680-/d5Qimage.png)](https://wiki.dako-it.com/uploads/images/gallery/2024-06/d5Qimage.png)

</td></tr></tbody></table>

#### Mapping von Feldern bei Artikeln

```json
{
  ...
  "sw6":{
    ...
      "extrafeldMapping": [
        { "new": "<neuer Feldname in SW>", "old": "custom_sl_artikel_FreiesDatum2" },
        { "new": "<neuer Feldname in SW>", "old": "custom_sl_artikel_EXTRAFELD" }
      ],
      "extrafeldMappingDelete": true,
    ...
  },
  ...
}
```

Folgende Felder können bei Artikeln gemappt werden:

- alle Extrafelder
- ArtikelId
- Zusatz
- Matchcode
- <div>FreierText1</div>
- <div>FreierText2</div>
- <div>FreieZahl1</div>
- <div>FreieZahl2</div>
- <div>FreieZahl3</div>
- <div>FreieZahl4</div>
- <div>FreiesDatum1</div>
- <div>FreiesDatum2</div>
- <div>FreiesKennzeichen1</div>
- <div>FreiesKennzeichen2</div>
- <div>FreiesKennzeichen3</div>
- <div>DimensionsText</div>
- <div>InfoText</div>
- <div>BestellText</div>

Der Schalter `extrafeldMappingDelete` bewirkt, dass das alte Zusatzfeld nicht mehr befüllt wird.

### Extrafelder

#### Email-Adresse im Beleg

Bei Gastbestellungen wird kein Kundenkonto angelegt. Daher ist es möglich, die E-Mailadresse des Kunden zusätzlich im Beleg zu hinterlegen. Sofern das Extrafeld `_EMAIL` im Beleg vorhanden ist, wird dieses befüllt.

#### Abverkauf

Um den Status des Abverkaufs vom Artikel per Extrafeld steuern zu können, muss folgendes Extrafeld in der Tabelle ART angelegt werden:

<p class="callout info">*\_SW6ABVERKAUF (logisch)*</p>

<div id="bkmrk--1"></div>
#### Langtexte bei Hersteller nicht übertragen

Um die Texte der Hersteller manuell pflegen zu können, kann dessen Übertragung deaktivier werden:

```json
{
  ...
  "sw6":{
    ...
      "disableManufacturerDescription": true,
    ...
  },
  ...
}
```

#### Extrafeld für den Beschreibungstext verwenden

Ein Extrafeld als Beschreibungstext kann hier in der config.json definiert werden:

```json
{
  ...
  "sw6":{
    ...
      "descriptionField": "_EXTRAFELD",
    ...
  },
  ...
}
```

#### Extrafeld für den Beschreibungstext verwenden

Ein Extrafeld als Beschreibungstext kann hier in der config.json definiert werden:

```json
{
  ...
  "sw6":{
    ...
      "descriptionField": "_EXTRAFELD",
    ...
  },
  ...
}
```


#### Extrafeld für den Titel verwenden

Ein Extrafeld als Titel kann hier in der config.json definiert werden:

```json
{
  ...
  "sw6":{
    ...
      "titleField": "_EXTRAFELD",
    ...
  },
  ...
}
```