# Experteneinstellungen

Neben den Einstellungen auf der Webseite der Schnittstelle, können diverse Konfigurationen in der `config.json` 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 Shopify individuell zu ermitteln, fügen Sie bitte im Object `"shopify"` 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: `'${nummer}'`.

Beispiel:

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

#### Bestand für bestimmte Artikel auf 0 setzen

Um den Bestand für bestimmte Artikel zu deaktivieren, muss in der `config.json` ein `Boolean-Feld` des Artikels angegeben werden. Dies kann auch ein Extrafeld sein.

```json
{
  ...
  "shopify":{
    ...
    "zeroStockField": "FreiesKennzeichen1",
    ...
  },
  ...
}
```

Bei Variantenartikeln reicht es, den Hauptartikel mit diesem Flag zu versehen. Alles Untervarianten erhalten dann auch den Bestand 0. Stücklistenartikel wirken sich ebenfalls auf die gesamte Stückliste aus.

#### Bestand für bestimmte Artikel nicht verfolgen

Um den Bestand für bestimmte Artikel im Shop nicht zu verfolgen , muss in der `config.json` ein `Boolean-Feld` des Artikels angegeben werden. Dies kann auch ein Extrafeld sein.

```json
{
  ...
  "shopify":{
    ...
    "inventoryTrackDisableField": "FreiesKennzeichen1",
    ...
  },
  ...
}
```

#### Verkauf fortsetzen, auch wenn Produkte nicht vorrätig sind

Um Produkte ohne Bestand zu verkaufen, kann in der `config.json` ein `Boolean-Feld` des Artikels angegeben werden. Dies kann auch ein Extrafeld sein.

```json
{
  ...
  "shopify":{
    ...
    "continueSelling": "FreiesKennzeichen1",
    ...
  },
  ...
}
```

#### 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
{
  ...
  "shopify":{
    ...
    "disableSafeguardPriceField": "_EXTRAFELDNAME",
    ...
  },
  ...
}
```

#### Prefix bei IhrAuftrag anpassen

Sollten mehrere Shops am gleichen Mandanten angebunden sind, so muss das Prefix für `IhrAuftrag` angepasst werden.

```json
"shopify": {
  ...
  "orderTag": "sfy_",
  ...
}
```

#### Feld für Shop-Kundennummer anpassen

Die Schnittstelle schreibt die Kundennummer aus den Shop in das Feld Shopummer. Dies kann in der `config.json` bei `kdfeld` angepasst werden.

```json
"shopify": {
  ...
  "kdfeld": "Shopnummer",
  ...
}
```


#### B2B-Funktion für ShopifyPlus

Um die B2B Funktionen von ShopifyPlus nutzen zu können, muss diese aktiviert werden. Hierzu ist `status` auf `true` zu setzen.

```json
  "shopify": {
	...
    "plus": {
      "status": true,
      "checkoutToDraft": false,
      "editableShippingAddress": false,
      "paymentTermsTemplateId": undefined
    }
    ...
  },
```

Weiterhin können Einstellungen für die Unternehmen getroffen werden. Diese werden nur bei der Erstanlage berücksichtigt und können später im Shop für jedes Unternehmen individuell angepasst werden.

<table border="1" id="bkmrk-checkouttodraft-best" style="border-collapse: collapse; width: 100%; height: 122.984px;"><colgroup><col style="width: 22.3757%;"></col><col style="width: 77.6243%;"></col></colgroup><tbody><tr style="height: 46.5938px;"><td style="height: 46.5938px;"><div><div>checkoutToDraft</div></div></td><td style="height: 46.5938px;">Bestellungen werden als Entwurf gespeichert und müssen freigeben werden.</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;"><div><div>editableShippingAddress</div></div></td><td style="height: 46.5938px;">Die Versandadresse kann bei der Bestellung angepasst werden.</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;"><div><div>paymentTermsTemplateId</div></div></td><td style="height: 29.7969px;">Die Zahlungsbedingung des Unternehmes.</td></tr></tbody></table>

##### Mögliche Zahlungsbedingungen:

<table border="1" id="bkmrk-%C2%A0-keine-zahlungsbedi" style="border-collapse: collapse; width: 100%; height: 297.969px;"><colgroup><col style="width: 22.3538%;"></col><col style="width: 77.6462%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;"> </td><td style="height: 29.7969px;">Keine Zahlungsbedingung</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">1</td><td style="height: 29.7969px;">Bei Empfang der Ware</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">2</td><td style="height: 29.7969px;">7 Tage netto</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">3</td><td style="height: 29.7969px;">15 Tage netto</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">4</td><td style="height: 29.7969px;">30 Tage netto</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">5</td><td style="height: 29.7969px;">60 Tage netto</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">6</td><td style="height: 29.7969px;">90 Tage netto</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">7</td><td style="height: 29.7969px;">Fester Termin</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">8</td><td style="height: 29.7969px;">45 Tage netto</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">9</td><td style="height: 29.7969px;">Fällig bei Erfüllung</td></tr></tbody></table>

#### Erstes Artikelbild an des Ende

Manche Templates in Shopify zeigen in der Detailansicht das letzte Bild als erstes an. Um dem entgegen zu wirken, kann das erste Bild in der SelectLine als letztes hochgeladen werden. Hier ist folgender Eintrag in der `config.json` notwendig:

```json
"shopify": {
  ...
  "firstImgToEnd": true,
  ...
}
```

### Spezielle Extrafelder

#### Artikel-TAGs exportieren

Um Artikel-Tags im Shop zu setzen, müssen in der SelectLine in der Tabelle `ART` logische (Boolean) Extrafelder angelegt werden. Diese müssen mit `_SFYTAG` beginnen. Ist der Wert des Feldes auf `True` gesetzt, so wird das TAG im jeweiligen Artikel aktiviert. Beim setzen auf `False`, wird dieses wieder entfernt.

#### SEO Meta Felder

Damit die SEO-Relevanten-Daten im Shop gefüllte werden, müssen 3 spezielle Extrafelder in der Tabelle `ART` erstellt und mit entsprechenden Daten befüllte werden:

`_METATITLE (Text 70)`  
`_METADESCRIPTION (Text 160)`  
`_METAKEYWORD (Text 255)`

#### Marktplatz-Bestellnummer

Die Bestellnummer von externen Marktplätzen (z.B. Amazon ist im Kopftext des Beleges zu finden. Darüber hinaus, ist es möglich, diese in ein Extrafeld des Beleges zu importieren. Somit ist eine bessere Suche möglich. Das Extrafeld muss wie folgt aussehen:

`_SFYMARKETORDERID (Text 255)`

#### Zu lange Adressfelder

In Shopify können die einzelnen Adressfelder mit längeren Texten befüllt werden, als die SelectLine zulässt. In einen solchen Fall wird ein Fehler erzeugt und die Bestellung wird nicht importiert.

Alternativ kann man ein Extrafeld in der Tabelle `BELEG` vom Typ `Memo` anlegen und dies in der `config.json` definieren.

```json
"shopify": {
  ...
  "tooLongAdrField": "_EXTRAFELDNAME",
  ...
}
```

Nun wird die Adresse in gekürzter Form dem Beleg hinzugefügt. Die ungekürzte Form ist dann im Extrafeld zu finden.

#### Bemerkungen / Notizen von Kunden in den Fußtext

Kundenbemerkungen werden in den Kopftext geschrieben. Soll dies aber in den Fußtext, so kann folgende Einstellung getätigt werden:

```json
"shopify": {
  ...
  "noteToFooter": true,
  ...
}
```