Konfiguration
Die Konfiguration der Schnittstelle erfolgt über eine INI-Datei (z.B. config.ini). Die Standardwerte werden aus der defaultconfig.toml geladen und können in der INI-Datei überschrieben werden.
Optionale Parameter
Parameter die mit ; Optional gekennzeichnet sind, haben keinen Standardwert in der defaultconfig.toml und müssen nur bei Bedarf in der config.ini gesetzt werden. Der angegebene Wert entspricht dem Code-Fallback.
Shop-Verbindung
[SHOP]
; URL des Shopware 6 Shops
url = https://mein-shop.de
; API-Zugangsdaten der Shopware 6 Integration
consumer_key = SWIA...
consumer_secret = ...
; Shopware 6 API
api = shopware6
; Anzahl der Artikel pro API-Request
chunk_size = 10
; Anzahl der Preise pro API-Request
chunk_size_prices = 100
; Maximale Anzahl der Ergebnisse pro Suchanfrage
query_limit = 500
; Wartezeit in Sekunden zwischen Requests bei Fehler
retry_wait_time = 5
; Maximale Anzahl der Wiederholungen mit Wartezeit
max_retry_with_wait = 3
; Optional: Root-Kategorie-ID für Kategorie-Sync
root_category_id =
; Optional: Max. gleichzeitige TCP-Verbindungen (Standard: 10)
tcp_limit = 10
Shopware 6
[SW6]
; Name des Sales Channels
salesChannelName = Storefront
WinLine WebService
[EWL]
ewluser = a
ewlpw = b
wlewlserviceurl = http://127.0.0.1:80/ewlservice/
WinLine Mandant & Datenbank
[WL]
; WinLine Mandant
mcomp = 500M
; Kundennummer für Bestellungen ohne oder mit in der WinLine nicht gefundener Kundennummer
sammelkonto = 10000
; Alle Bestellungen auf Sammelkonto buchen
always_sammelkonto = False
; Verhalten bei fehlenden WL-Konten: ERROR, SKIP oder SAMMELKONTO
missing_wl_konto = ERROR
; Eigenschaftsfeldnummer für Webartikel-Markierung
webartikel = 5
; Eigenschaftsfeldnummer für Webkonto-Markierung (Personenkonto)
webkonto = 1104
; Eigenschaftsfeldnummer für Webkonto-Markierung (Kontakt)
webkonto_kontakt = 1
; Eigenschaftsfeldnummer für den Webkatalog
webkatalog = 1009
; Eigenschaftsfeld-Spalte für Shopware-Konfiguration (Standard: 14)
webeigenschaft = 14
; Preisfaktor aus dem Colli verwenden
preisfaktorauscolli = True
; Preislisten-Modul verwenden
syncprices_module = True
; interne WinLine Nummer(n) für die Webshop Preisliste(n) (kommagetrennt)
preislistennr = 1
; Default-Währung ISO-Code (leer = Mandant-Währung)
defaultwaerungiso =
; Shop-Variante aktivieren
shopvariante = False
; Inaktive Ausprägungen nicht übermitteln
skip_inaktiv_variants = True
; Ausprägungsgruppen die nicht als Varianten angelegt werden (kommagetrennt)
ignoreauspraegungsgruppen = 0
; Kategorien aus Eigenschaft (Nummer der Eigenschaft)
categories =
; Kategorien aus Artikeluntergruppen generieren
Kategorien_aus_Artikeluntergruppen = False
; Richtung der TrackingNr Übermittlung (True = Shop führend, False = WinLine führend)
trackingnrtowinline = False
; WinLine Feld für Sendungsverfolgungsnummer
trackingnrfield =
; Feld für die Shop-Bestellnummer im WinLine-Beleg
shoporderid = C063_Textzeile1
; Feld für den Bestellstatus im WinLine-Beleg
orderstatus = C071_Textzeile9
; Feld für den Bezahlstatus im WinLine-Beleg
paymentstatus = C072_Textzeile10
; Feld für den Lieferstatus im WinLine-Beleg
deliverystatus = C071_Textzeile9
; Nutze Rechnungsadresskonto aus dem Personenkonto für die Belege
rechnungsadresskonto = True
; Optional: Nutze Lieferadresskonto aus dem Personenkonto für die Belege
lieferadresskonto = False
; Encoding der XML-Dateien
encoding = utf-8
; Bestellungen per EXIM importieren
orders_via_exim = True
; EXIM Tabelle für Beleg-Kopf
exim_order_head = energyConnectShop
; EXIM Tabelle für Beleg-Mitte
exim_order_body = energyConnectShopM
; Testmodus (keine Daten an Shop übermitteln)
test_mode = False
; Verzeichnis für XML-Export (leer = WebService verwenden)
xmlpath =
; Sammelkonto für Gastbestellungen
guest_sammelkonto = 10000
; WinLine-Feld für Shop-Belegnummer
shopbelegnummernfeld = C064_Textzeile2
; Artikelnummer statt ID verwenden
usenumberinsteadofid = False
; Shopware-Feld für Tracking-Nummer
shoptrackingnrfield = trackingCodes
; Kundenimport per EXIM
customers_via_exim = True
; EXIM-Tabelle für Kunden
exim_customers = EXIM_KONTAKT
; Optional: Rechnungen nach Trackingnr. prüfen (Standard: False)
check_invoices_for_tracking = False
; Optional: Feld für Shopware-Kunden-ID (Standard: C002_Kontonummer)
customer_shopware_id_field = C002_Kontonummer
; Optional: Verzeichnis für Kunden-XML-Export (Standard: ./xml/customers)
xmlpath_customers = ./xml/customers
; Optional: Zusatzfeld für Shopware-ID Kontakte
swid_kontakt =
; Optional: Zusatzfeld für Shopware-ID Personenkonten
swid_pkonto =
; Optional: Filter-ID-Länge (Standard: 0)
filter_id_length = 0
SQL-Verbindung
[SQL]
driver = ODBC Driver 18 for SQL Server
server = localhost
database = CWLDATEN
uid = meso
pwd = meso
charset = utf8
; Maximale Anzahl SQL-Parameter pro Query
max_sql_parameter = 2000
; SQL-Debug-Modus
debug = False
; Temp-Tabellen mit doppeltem Hash
temptable_two_hash = False
; Verschlüsselte Verbindung
encrypt = True
; SSL-Zertifikat immer vertrauen (nur für Entwicklung)
trustservercertificate = True
[SQLSYS]
database = CWLSYSTEM
; uid/pwd werden per Referenz aus [SQL] geerbt (${SQL:uid}, ${SQL:pwd})
[SQLARCHIV]
; database muss auf die Archiv-Datenbank gesetzt werden (kein Standardwert in defaultconfig.toml)
; uid/pwd werden per Referenz aus [SQL] geerbt (${SQL:uid}, ${SQL:pwd})
Shop-Felder
[SHOPFIELDS]
; Lieferadresse aus dem Shop übernehmen
addressfromshop = True
; Rechnungsadresse aus dem Shop übernehmen
billfromshop = True
; WinLine Vorlage mit Liefer- und Rechnungsadresse
wlvorlageLR = wooCommerceAdressenLR
; WinLine Vorlage ohne Adressen
wlvorlageKA = sw_noadd_nodis
; Mitarbeiterkonten verwenden
mitarbeiterkonten = False
; WebService-Vorlage Kunden
wlvorlagekunden = Shopware6Kunden
; WebService-Vorlage Kontakte
wlvorlagekontakt = Shopware6Kontakt
Bestellungsimport
[ORDERS]
; Reihenfolge der Belegabrufe (JSON-Array mit Segmentnamen)
import_sequences = ["Bestellung"]
[Bestellung]
; Optional: Statustyp für die Suche (OrderState, order_delivery, order_transaction)
status_type = OrderState
; Status zum Abrufen der Bestellungen
status_fetch = OrderState.open
; Status nach erfolgreichem Import
status_success = OrderState.inProgress
; Status bei Importfehler
status_fail = OrderState.open
; WinLine Belegstufe (nicht_drucken, Angebot, Auftrag, Lieferschein, Rechnung)
import_belegstufe = Lieferschein
; Prüfen ob Bestellung bereits importiert wurde
check_existing = True
Lieferung
[Lieferung]
; Status zum Abrufen
status_fetch = OrderDeliveryState.open
; Status nach erfolgreichem Import
status_success = OrderDeliveryState.shipped
; Status bei Importfehler
status_fail = OrderDeliveryState.open
; Status nach Tracking-Übermittlung
status_tracking = OrderDeliveryState.shipped
; WinLine Belegstufe
import_belegstufe = Lieferschein
Bezahlung
[Bezahlung]
; Status zum Abrufen (kommagetrennt für mehrere)
status_fetch = OrderTransactionState.refunded,OrderTransactionState.refunded_partially
; Status nach erfolgreichem Import
status_success = OrderTransactionState.inProgress
; Status bei Importfehler
status_fail = OrderTransactionState.inProgress
; WinLine Belegstufe
import_belegstufe = Rechnung
; Gutschrift erstellen
gutschrift = False
Shop-Eigenschaften
[SHOPPROPERTY]
; Lieferstatus nach Tracking-Übermittlung
orderstatus_tracking = OrderDeliveryState.shipped
E-Mail-Benachrichtigungen
[MAIL]
; SMTP-Server
server =
; SMTP-Port
port = 0
; STARTTLS verwenden
use_tls = False
; SMTP-Benutzername
username =
; SMTP-Passwort
password =
; Betreff-Prefix für Fehlerbenachrichtigungen
subject_prefix = [SHOPWARE FEHLERLOG]
; Absender-Adresse
sender =
; Empfänger-Adresse
receiver =
; Maximale Anzahl gepufferter Nachrichten
capacity = 1000
; Log-Level für E-Mail-Versand
level = DEBUG
; E-Mail-Versand aktivieren
tosend = False
Archiv
[ARCHIV]
; interne WinLine ID (Archiv) für das Schlagwort: Webshop Grafik
archiv_webshop_grafik = 102
; interne WinLine ID (Archiv) für das Schlagwort: Webdokument
archiv_webdokument = 103
; interne WinLine ID (Archiv) für das Schlagwort: Artikelnummer
archiv_artikelnummer = 41
; interne WinLine ID (Archiv) für das Schlagwort: Artikelbezeichnung
archiv_beschreibung = 42
; Optional: Liste der Zusatzfelder für zusätzliche Grafiken (kommagetrennt)
zusatzgrafiken =
Bildkonvertierung
[CONVERT]
; Zielformat für LibreOffice Konvertierung
targetformat = html:HTML:EmbedImages
; Maximale Bildgröße (Breite,Höhe)
scale_images = 1280,720
; Hintergrundfarbe für Bilder (R,G,B)
background_color = 255,255,255
Artikeleigenschaften
[PROPERTY]
; Bedarfslistenbestand verwenden
bedarfslistenbestand = False
; Artikelmedien aus der WinLine verwenden
useartiklemedia = False
; Archiv-Bilder verwenden
usearchivimages = True
Cross-Selling
[CROSS]
; Cross-Selling aktivieren
crossselling_aktiv = True
; Keine Synchronisation bei Wert
notsync = 0
; Prioritätsbereich für Ersatzteile
ersatzteilevon = 1
ersatzteilebis = 99
; Prioritätsbereich für Zubehör
zbhrvon = 100
zbhrbis = 199
; Prioritätsbereich für Ersatz & Zubehör
ezvon = 200
ezbis = 299
Dynamisches Cross-Selling
[DYNACROSS]
; Name der Cross-Selling-Gruppe im Shop
cross_name = Unsere Vorschläge
; WinLine Zusatzfeld für die Gruppen-Zuordnung
cross_gruppe_feld = C229_Zusatzfeld29
; WinLine Zusatzfeld für die Anzeige-Zuordnung
cross_anzeige_feld = C230_Zusatzfeld30
; Sortierung (cheapestPrice / name / releaseDate)
sort_by = cheapestPrice
; Sortierrichtung (ASC / DESC)
sort_direction = ASC
Mehrsprachigkeit
[LANGUAGES]
; Liste der Sprachen (JSON-Array)
languages = ["Deutsch"]
[Deutsch]
; Name des Sales Channels für diese Sprache
salesChannelName =
; Beschreibungsfeld-Nummer
descriptionfield = 0
; Position der Sprache
position = 1
; Separate Kategorien für diese Sprache
separate_categorie = False
; Hauptsprache
primary_shop = True
; Locale-Code
local_code = de-DE
; Encoding
encoding = utf-8
Mapping
[MAPPING]
; Pfad zum Mapping-Ordner
mapping_path = conf\mapping\
Sonstige Einstellungen
[OTHER]
; Temporärer Ordner
tmppath =
; Pfad zu XML-Preferences für den Kundenimport
xml_preferences = conf\mapping\xml_preferences
; Bestellungen als Batch-XML
batch_orders = False
; Optional: Systemzertifikate für SSL verwenden (Standard: False)
truststore = False
; Optional: Kunden als Batch verarbeiten (Standard: False)
batch_customers = False
; Optional: Statische Dateinamen verwenden (Standard: False)
static_file_name = False
[LIBREOFFICE]
; Pfad zu LibreOffice
sofficepath = C:\Program Files\LibreOffice\program\soffice.exe
Feature-Flags
Über Feature-Flags können einzelne Funktionen der Schnittstelle aktiviert oder deaktiviert werden.
[FEATURES]
; Menge2 aus der WinLine als Preis verwenden
MENGE2 = False
; UVP aus dem allgemeinen Brutto-Preis ermitteln
UVP_FROM_ALLGEMEIN_BRUTTO = False
; UVP aus dem allgemeinen Netto-Preis ermitteln
UVP_FROM_ALLGEMEIN_NETTO = False
; Höchster Preis hat Priorität
PRICE_PRIORITY_HIGHEST = False
; Dynamisches Cross-Selling aktivieren
DYNAMIC_CROSS_SELLING = False
; Mapping für den Kundenimport verwenden
USE_MAPPING_FOR_CUSTOMERS = True
; Preisduplikate entfernen (z.B. bei überschneidender Gültigkeit)
REMOVE_PRICE_DUPLICATES = True
; Rabattmatrix-Preise zusammenfassen statt kundenindividuell zu übertragen
SUMMARIZE_ACCOUNT_MATRIX = True
; Kunden als Kontakte/Ansprechpartner in der WinLine anlegen
CUSTOMERS_AS_CONTACT = True
; Bestellungen per WebService in das aktuelle Wirtschaftsjahr importieren
WEBSERVICE_COMPANYYEAR = True
Exklusive Features
Einige Features schließen sich gegenseitig aus. Folgende Kombinationen sind nicht gleichzeitig verwendbar:
MENGE2undUVP_FROM_ALLGEMEIN_NETTOMENGE2undUVP_FROM_ALLGEMEIN_BRUTTOUVP_FROM_ALLGEMEIN_BRUTTOundUVP_FROM_ALLGEMEIN_NETTOMENGE2undPRICE_PRIORITY_HIGHESTUVP_FROM_ALLGEMEIN_NETTOundPRICE_PRIORITY_HIGHESTUVP_FROM_ALLGEMEIN_BRUTTOundPRICE_PRIORITY_HIGHEST