Dokumentation Winestro-Shop API

Diese Dokumentation befasst sich mit der XML-Schnittstelle zu Winestro.Cloud (Version 20.0 | Update 05.04.2024 | BETA). Diese Klasse regelt den Austausch mit der XML-Schnittstelle auf dem Nephele-s5 Server. Die Ausgabe erfolgt wahlweise über XML oder JSON. Anmerkungen und Verbesserungshinweise, sowie Wünsche nimmt das Winestro.Cloud Entwicklerteam gerne unter info@winestro.cloud entgegen. Daten werden sowohl per POST als auch per GET angenommen, bitte beachten Sie das bei großen Anfragen die Zeichenlänge von GET einem Limit unterliegt. Um dies zu vermeiden empfehlen wir generell eine Datenübertragung per POST.


Allgemeines
Endpoint: Alle XML Anfragen werden an https://weinstore.net/xml/v21.0/wbo-API.php gestellt.

Folgende Parameter sind bei jedem Aufruf der Schnittstelle zwingend nötig. Sie werden zur Authentifizierung genutzt. Die Codes und User-Informationen finden Sie in den Angaben über jedem für Sie nach Einweisung freigegeben Shop im Developer-Center. Alternativ können Sie diese Informationen vom Weinbau-online.de Team erhalten. Diese Informationen werden zur Sicherheit ausschließlich an das Weingut herausgegeben.
Variablenname Beschreibung Bemerkung
UID Der Nutzer der Api (Die ID des Winzers ohne das W)
apiUSER Der XML Benutzername der Schnittstelle
apiCODE Der XML Zugangscode der Schnittstelle
apiShopID Die Nummer des Shops (meist 1) Hier sind auch mehrere Shops und damit mehrere Schnittstellen möglich. Z.B. Für Privatkunden und Händler.
apiACTION Die Aktion die angefragt und bearbeitet werden soll
output xml,json Default ist leer bzw NULL = XML - wenn json gewünscht ist "json" hier übergeben
encoding NULL / none / standard Default ist leer bzw. NULL = utf8_encoded - wenn kein encoding gewünscht ist "none" übergeben
Falls es Probleme bei der Anfrage gibt, können folgende Fehler zurückgegeben werden.
Fehler werden innerhalb eines <fehler> Tag zurückgegeben
Tagname Beschreibung Bemerkung
id Die Fehler ID
text Fehlerbeschreibung
Aktion: newOrder
Fügt einen neuen Webshop-Auftrag in die Datenbank des Kunden ein.
Parametername Beschreibung Bemerkung
titel Titel des Kunden String
anrede Anrede des Kunden String
firma Firmenname  
name Vorname  
nname Nachname  
strasse Straße  
hnummer Hausnummer String
land Land des Kunden 2 Char: ISO-Länderkürzes: DE / UK / FR
plz Postleitzahl String
ort Ort/ Stadt  
telefon Telefonnummer  
email E-Mail Adresse  
geburtstag Geburstag Date Y-m-d
l_firma Firma der Lieferadresse Nur angeben wenn abweichend
l_vorname Vorname der Lieferadresse Nur angeben wenn abweichend
l_nachname Nachname der Lieferadresse Nur angeben wenn abweichend
l_strasse Straße der Lieferadresse Nur angeben wenn abweichend
l_hnummer Hausnummer der Lieferadresse Nur angeben wenn abweichend
l_land Land der Lieferadresse Nur angeben wenn abweichend | 2 Char s.o.
l_plz Postleitzahl der Lieferadresse Nur angeben wenn abweichend
l_ort Ort der Lieferadresse Nur angeben wenn abweichend
ktoInh Name des Kontoinhabers  
kto Kontonummer Veraltet | optional
blz Bankleitzahl Veraltet | optional
iban IBAN für Bankeinzug  
bic BIC für Bankeinzug  
referenz Hinweise des Kunden zur Bestellung max 255 Zeichen
keine_mail Blockiert automatische E-Mail Erwartet keinen Wert (Mail wird gesendet) oder "keine_mail" (E-Mail wird blockiert)
zahlungsart Gewählte Zahlungsart des Kunden Erwartet ein Integer:
  • 1;Rechnung
  • 2;Vorkasse/Bar
  • 3; Bankeinzug
  • 4;Paypal
  • 5;Bar
  • 6;Vorkasse
  • 7;EC-Cash
  • 8;Sofortüberweisung
  • 9;Kreditkarte
  • 11;Amazon Pay
  • 12;PayPal-Rechnung
  • 13;Giropay
  • 14;EPS
  • 15;Ideal
  • 16;Przelewy24
  • 17;Alipay
  • 18;Multibanco
  • 19;GooglePay
  • 20;ApplePay
  • 21;Nachnahme
  • 22;Bancontact
  • 23;Vorkasse Bez.
  • 24;shopify payments
  • 25;Winestro vorkasse
  • 26;Elopage
  • 27;Klarna
  • 28;Sumup
  • 29;SixSaferpay
  • 30;Postfinance
  • 31;Stripe
  • 32;Card4vent
  • 33;BarkasseA
  • 34;BarkasseB
  • 35;BarkasseC
versandkosten Ermittelte Versandkosten double | Punkt (.) als Dezimaltrenner. Keine Tausende-Trenner oder Leerzeichen!
Gesamtrabatt Rabatt auf die Gesamte Bestellung am Ende aller Positionen und Zuschläge double | Punkt (.) als Dezimaltrenner. Keine Tausende-Trenner oder Leerzeichen!
gebuehr Anfallende Gebühr für die Zahlungsart double | Punkt (.) als Dezimaltrenner. Keine Tausende-Trenner oder Leerzeichen!
positionen Anzahl der gekauften Positionen exklusive/ohne Versandkosten
wein_anzahl[x] Anzahl des Weins in der Position X Integer | [x] ist Platzhalter für die Position. Beiespiel Position 3 = wein_anzahl3
wein_id[x] Weinnummer des Weins in der Position x String | [x] ist Platzhalter für die Position. Beiespiel Position 3 = wein_id3 | es ist exakt die Weinnr zu verwenden, die in Weinbau-online.de für diesen Wein geführt wird. Andere Nummern führen zu Fehlern in der Auftragserstellung und ggf. zu einem Datenverlust. (Case-Sensitive!)
artikel_sonderpreis[x] Sonderpreis des Weins in der Position x Double | [x] ist Platzhalter für die Position. Beiespiel Position 3 = artikel_sonderpreis3 | Wenn der Sonderpreis (achtung . statt Komma verwenden) gesetzt ist, wird dieser statt des in WBO hinterlegten Preises genutzt.
zimmer_start[x] Start-Datum einer Zimmerbuchung X DATE | [x] ist Platzhalter für die Position. Beiespiel Position 3 = artikel_sonderpreis3 | yyy-mm-dd
zimmer_ende[x] Ende-Datum einer Zimmerbuchung X DATE | [x] ist Platzhalter für die Position. Beiespiel Position 3 = artikel_sonderpreis3 | yyy-mm-dd
zimmer_personen[x] Anzahl der Personen einer Zimmerbuchung X INT | [x] ist Platzhalter für die Position. Beiespiel Position 3 = artikel_sonderpreis3 | Mindestens 1 erwartet
gutscheincode Code für einen Gutschein int
gutscheinwert Wert des anzurechnenden Gutscheins double - ggf. leer
zahlung_kosten Kosten für die Zahlungsart double
woo_transaktions_code Transaktionscode für Zahlungen String | (z.B. Paypal code) War ursprünglich für Woocommerce shops
woo_id Eindeutige ID des Woocommerce-Shops String | Kann auch für Ids anderer Shopsysteme genutzt werden und erscheint in der Notiz und im Feld Referenznummer
id_lieferart Bestimmt Lieferart int | Interne Werte aus WBO - Legt z.B. Versand UPS / DHL etc fest
zimmer_auftrag Flag, ob es sich um eine Zimmer-Buchung handelt int | 0 / Leer = normaler Auftrag | 1 = Zimmer-Buchung
zimmer_status Status der Buchung int | 0 = Anfrage, 1=reservierung, 2=Buchung, 3=Eingecheckt, 4=Ausgecheckt, 5=Storniert
Rückgabewerte
Tagname Beschreibung Bemerkung
status Rückgabewert "ok" wenn Auftrag angelegt
nr Eindeutige Nummer des Auftrags Auftragsnummer zur Information des Winzers
fehler Falls Fehler auftritt Fehlerbeschreibung
Aktion: getKundenGruppe
Gibt eine Liste aller Kunden aus die in einer bestimmten Gruppe sind.
Parametername Beschreibung Bemerkung
id_grp Kundengruppe die angezeigt werden soll
suchstring String nach dem in den wichtigsten Daten im Kunden gesucht werden kann Parameter ist optional, Ergebnisse beziehen sich nur auf Inhalte der Gruppe
Rückgabewerte
Tagname Beschreibung Bemerkung
anzahl Anzahl gefundener Datensätze
Die Datensätze befinden sich in einem <items> Container. Jeder Datensatz an sich befindet sich in einem <item> Container
adr_id ID des Kunden
adr_nr Kundennummer
adr_vorname Vorname des Kunden
adr_nachname Nachname des Kunden
adr_firma Firma des Kunden
adr_plz PLZ des Kunden
adr_ort Ort des Kunden
adr_www Website des Kunden
adr_email E-Mail Adresse des Kunden
adr_str Straße des Kunden
adr_str_nr Hausnummer des Kunden
adr_land Land des Kunden (ISO 2 Code)
adr_festnetz Festnetznummer des Kunden
adr_mobil Mobilnummer des Kunden
adr_fax Faxnummer des Kunden
adr_note1 Notizfeld 1 des Kunden
adr_note2 Notizfeld 2 des Kunden
adr_note3 Notizfeld 3 des Kunden
adr_note4 Notizfeld 4 des Kunden
adr_rabatt Standardrabatt des Kunden in %
adr_id_preiskategorie Nummer der Standardpreisgruppe des Kunden
adr_newsletter_aktiv Markiert ob Kunde Zustimmung zum Newsletter erteilt hat 1/0
adr_kunden_mwst Mwst-Einstellung des Kunden Liefert Integer:
  • 0: MwSt. befreiter Kunde
  • 1: Privatkunde
  • 2: Firmenkunde
  • 3: Pauschalierend 9,5%
adr_anrede Ansprache des Kunden z.B. "sehr geehrte Frau"
adr_anredenart Anredenkombination Integer
  • 0: Anrede + Vorname
  • 1: Anrede + Nachname
  • 2: Nur Anrede
adr_id_zahlungsart Id der Zahlungsart Liefert Integer:
  • 1;Rechnung
  • 2;Vorkasse/Bar
  • 3; Bankeinzug
  • 4;Paypal
  • 5;Bar
  • 6;Vorkasse
  • 7;EC-Cash
  • 8;Sofortüberweisung
  • 9;Kreditkarte
  • 11;Amazon Pay
  • 12;PayPal-Rechnung
  • 13;Giropay
  • 14;EPS
  • 15;Ideal
  • 16;Przelewy24
  • 17;Alipay
  • 18;Multibanco
  • 19;GooglePay
  • 20;ApplePay
  • 21;Nachnahme
  • 22;Bancontact
  • 23;Vorkasse Bez.
  • 24;shopify payments
  • 25;Winestro vorkasse
  • 26;Elopage
  • 27;Klarna
  • 28;Sumup
  • 29;SixSaferpay
  • 30;Postfinance
  • 31;Stripe
  • 32;Card4vent
  • 33;BarkasseA
  • 34;BarkasseB
  • 35;BarkasseC
Aktion: getAdr
siehe -> getKundenGruppe.
Aktion: getWineGroups
siehe -> getArtikelGruppen.
Aktion: sendDoi
Sendet eine Double-Optin Mail an den Kunden und startet den DOI-Prozess in Winestro
Parametername Beschreibung Bemerkung
email E-Mail Adresse String | E-Mail Adresse des anmeldenden Kunden
anrede Anrede String | Wenn leer wird "Guten Tag," genommen
vorname Vorname String
nachname Nachname String
Aktion: addWein
Fügt einen neuen Wein in die Datenbank ein. Die Weinnr muss noch frei sein!
Parametername Beschreibung Bemerkung
artikelnr Artikelnummer String | eindeutig und frei!
artikelname Name des Artikel String
artikelbeschreibung Beschreibungstext plain Text String
shopnotiz Erweiterte Beschreibung mit HTML String
liter Füllmenge float
gewicht Gesamtgewicht in kg float
fuellgewicht Füllgewicht in g float
saeure Säurgehalt in g/l double
alkohol Alkoholgehlt in % vol double
extrakt Extrakt double
Eiwess Eiweissgehalt in g/100ml double
brennwert Brennwert in kcal double
sulfite Enthält der Wein sulfite? int (0|1)
allergene Allergene im Wein string
anbaugebiet Anbaugebiet string
trinktemperatur Temp in °C double
lagertemperatur Lager-Temp in °C double
lagertemperatur Lager-Temp in °C double
ausbau Ausbau des Weins string
lagerfaehigkeit lagerfaehigkeit string
trinkreife trinkreife string
boden bodenart string
bestand Startbestand / Bestand jetzt int
mwst Mwst. auf Belegen double | Fallback 19%!
mwst_abfuhr Mwst. zur Abfuhr double | Fallback 19%!
jahrgang jahrgang string
lage lage string
sorte Rebsorte string
lese Qualität (z.B. Spätlese) string
rel_dichte Relative Dichte double
geschmack geschmack (z.B. trocken) string
apnr Wein-Prüfnummer string
ean13 Ean13 Nummer string
ean13_kiste Ean13 Nummer für Kisten string
std_packung Std. Einheiten in einer Packung int
bruttopreis Brutto Preis double
id_preiskategorie Id der Preiskateogire int | Fallback ist die Std. Kategorie im Programm
zutaten Liste der Zutaten string | Kommagetrennt
mhd Mindesthaltbarkeitsdatum String
fett Fette double in g/100ml
fetts .. davon ungesättigte Fettsäuren double in g/100ml
kohlenhydrate Kohlenhydrate (inkl. Zucker) double in g/l
zucker Zuckergehalt in g/l double
salz Salzgehalt double in g/l
ballast Ballaststoffe double
labeltext Id der Preiskateogire int | Fallback ist die Std. Kategorie im Programm
Rückgabewerte
Tagname Beschreibung Bemerkung
status Rückgabewert "ok" wenn Wein angelegt
id_weine Eindeutige Nummer des Weins Id_weine zur internen info
fehler Falls Fehler auftritt Fehlerbeschreibung
Aktion: getArtikelGruppen
gibt alle Artikelgruppen zurück in denen bei der übergebenen apiShopID ein Artikel eingestellt wurde.
Parametername Beschreibung Bemerkung
Diese Funktion erwartet keine Parameter
Rückgabewerte
Tagname Beschreibung Bemerkung
anzahl Anzahl gefundener Datensätze
Die Datensätze befinden sich in einem <items> Container. Jeder Datensatz an sich befindet sich in einem <item> Container
grp_nr Nr (ID) der Artikelgruppe
grp_name Name der Artikelgruppe
grp_beschreibung Beschreibung der Artikelgruppe
Aktion: getGutscheine
gibt alle aktiven Gutscheine zurück, die auch in den aktuellen Zeitraum fallen
Parametername Beschreibung Bemerkung
Diese Funktion erwartet keine Parameter
Rückgabewerte: gutscheine -> gutschein
Tagname Beschreibung Bemerkung
id_shop_gutschein Marker des Gutscheins int
gueltig_bis Verfallsdatum String | YYYY-MM-DD
wert Wert des Gutscheins Double | optional, falls kein prozent s.u.
prozent Wert des Gutscheins Double | optional, falls kein wert s.o.
code Gutscheincode int
ab_wert Ab diesem Betrag gültig double | optional
nutzbar Anzahl der Verwendbarkeit int
Aktion: getEinstellungen
Gibt die Einstellungen des Shop's zurück, wie z.B. Versandkosten.
Parametername Beschreibung Bemerkung
Diese Funktion erwartet keine Parameter
Rückgabewerte
Tagname Beschreibung Bemerkung
Der Datensatz an sich befindet sich in einem <einstellungen> Container
name Bezeichnung des Shops
passwort Passwort zum Zugangsschutz
bar Ob Zahlungsart Barzahlung akzeptiert Mögliche Werte 1/0 für true/false
vorkasse Ob Zahlungsart Vorkasse akzeptiert Mögliche Werte 1/0 für true/false
bankeinzug Ob Zahlungsart Bankeinzug akzeptiert Mögliche Werte 1/0 für true/false
nachnahme Ob Zahlungsart Nachnahme akzeptiert Mögliche Werte 1/0 für true/false
nachnahme_betrag Zusatzbetrag f$uuml;r die Zahlungsart Nachnahme Double
rechnung Ob Zahlungsart Rechnung akzeptiert Mögliche Werte 1/0 für true/false
rechnung_stammkunde Ob Zahlungsart Rechnung akzeptiert wird mit Hinweis nur für Stammkunden Mögliche Werte 1/0 für true/false
versandkosten Regelt die Art der Versandkosten 0: Freiab € | 1: Freiab Flaschen | 2 Nie Frei
freiab Betrag in € ab wann Lieferung keinen Versand kostet Double
versandfrei_ausland Betrag für Versandfreiheit im Ausland Double
min_ausland Mindestbestellmenge Ausland int
doi_daktiv DOI Abfrage bei Bestellprozess int
lieferarten Erlaubte Lieferarten Serializiertes Array
lieferarten_items Erlaubte Lieferarten enthält lieferarten_item -> lieferarten_item_id mit allen erlaubten Lieferarten für diesen Shop
alle_lieferarten Alle möglichen Lieferarten Serialisiertes Array
alle_lieferarten_items Mögliche Lieferarten enthält alle_lieferarten_item -> alle_lieferarten_item_id | alle_lieferarten_name mit allen möglichen Lieferarten für diesen Shop
zwoelf Versandkosten in € f$uuml;r 7-12 Paket Double
fuenfzehn Versandkosten in € für 12-15 Paket Double
sechtzehn Versandkosten in € für 13-16 Paket Double
achtzehn Versandkosten in € f$uuml;r 17-18 Paket Double
einundzwanzig Versandkosten in € für 19- 21 Paket Double
aktiv6 Gibt an, ob es 6er Pakete gibt (falls Paket versandfrei) Mögliche Werte 1/0 für true/false
aktiv12 Gibt an, ob es 12er Pakete gibt (falls Paket versandfrei) Mögliche Werte 1/0 für true/false
aktiv16 Gibt an, ob es 6er Pakete gibt (falls Paket versandfrei) Mögliche Werte 1/0 für true/false
aktiv18 Gibt an, ob es 18er Pakete gibt (falls Paket versandfrei) Mögliche Werte 1/0 für true/false
aktiv21 Gibt an, ob es 21er Pakete gibt (falls Paket versandfrei) Mögliche Werte 1/0 für true/false
paypal_aktiv Angabe ob Paypal genutzt wird Mögliche Werte 1/0 für true/false
paypal_user Paypal User Name String
paypal_pass Paypal User Passwort String
paypal_sig Paypal Signatur String
sofort_aktiv Ist Sofortüberweisung aktivier? Int
sofort_signatur Sofort Signatur String
sumup_aktiv Sumup Aktiv int
sumup_secret Sumup Secret String
sumup_user Sumup User String
sumup_pass Sumup Pass String
doi_aktiv Double-Optin durch User aktiviert Int
Das Suffix "eu" kann analog auch mit "ww" ersetzt werden für "weltweit"
vk_eu Versand in EU 0 nein | 1 ja
aktiv6_eu Gibt an, ob es 6er Pakete gibt (falls Paket versandfrei) Mögliche Werte 1/0 für true/false
aktiv12_eu Gibt an, ob es 12er Pakete gibt (falls Paket versandfrei) Mögliche Werte 1/0 für true/false
aktiv15_eu Gibt an, ob es 15er Pakete gibt (falls Paket versandfrei) Mögliche Werte 1/0 für true/false
aktiv16_eu Gibt an, ob es 16er Pakete gibt (falls Paket versandfrei) Mögliche Werte 1/0 für true/false
aktiv18_eu Gibt an, ob es 18r Pakete gibt (falls Paket versandfrei) Mögliche Werte 1/0 für true/false
aktiv21_eu Gibt an, ob es 21er Pakete gibt (falls Paket versandfrei) Mögliche Werte 1/0 für true/false
sechs_eu Versandkosten in € für 1-6 Paket Double
zwoelf_eu Versandkosten in € für 7-12 Paket Double
fuenfzehn_eu Versandkosten in € für 12-15 Paket Double
sechtzehn_eu Versandkosten in € für 13-16 Paket Double
achtzehn_eu Versandkosten in € für 17-18 Paket Double
einundzwanzig_eu Versandkosten in € für 19- 21 Paket Double
land Land des Versenders String | 2Char Ländercode: z.B. DE
versandfrei_ausland Siehe "versandkosten" nur für Ausland String
freiab_ausland Versandfrei ab im Ausland Double
min_ausland Mindestbestellmenge im Ausland int
min_inland Mindestbestellmenge im Inland int
lieferarten Bereitgestellte Lieferarten durch Weingut Array
alle_lieferarten Alle angelegten Lieferarten Array
bestandsgenau Gibt an, ob der genaue Bestand für den Shop von Relevanz ist Int | 0 = Keine Relevanz | 1 = Bestände bei Kauf prüfen | 2 = Bestände bei Kauf prüfen und <= artikel_bestand_warnung_ab im Artikel ausweisen
Aktion: getWines
siehe -> getArtikel.
Aktion: getArtikel
Gibt die Artikel in einer Artikelgruppe, einer Suche oder eine NR. zurück die mit übergeben wird.
Parametername Beschreibung Bemerkung
id_grp Artikelgruppe die angezeigt werden soll Parameter ist optional, bei keinem Wert, werden alle Artikel angezeigt
suchstring String nach dem in Artikelname oder Beschreibung gesucht werden kann Parameter ist optional
artikelnr Artikelnummer des Artikels dessen Infos abgerufen werden Case-Sensitive und beachten Sie Leerzeichen / Codierung der URL!
firmenverbund Gibt einen zusätzlichen freien Bestand über den Firmenverbund zurück (Laufzeit beachten!) Erwartet "true" als String.
Rückgabewerte
Tagname Beschreibung Bemerkung
anzahl Anzahl gefundener Datensätze
Die Datensätze befinden sich in einem <items> Container. Jeder Datensatz an sich befindet sich in einem <item> Container
artikel_nr Artikelnummer des Artikels
artikel_name Artikelname des Artikels
artikel_beschreibung Beschreibungstext des Artikels
artikel_jahrgang Jahrgang des Artikels
artikel_sorte Sorte des Artikels
artikel_qualitaet Qualität des Artikels
artikel_geschmack Geschmacksrichtung des Artikels
artikel_zucker Zuckergehalt des Artikels
artikel_alkohol Alkoholgehalt des Artikels
artikel_saeure Säuregehalt des Artikels
artikel_liter Füllmenge des Artikels
artikel_gewicht Gewicht des Artikels in kg
artikel_sulfite Gibt an ob der Artikel sulfite enthält 1 bei ja
artikel_bild URL des kleinen Bildes des Artikels
artikel_bild_big URL des großen Bildes des Artikels
artikel_bild_2 URL des kleinen Zusatzbildes Bildes des Artikels
artikel_bild_big_2 URL des großen Zusatzbildes Bildes des Artikels
artikel_bild_3 URL des kleinen Zusatzbildes Bildes des Artikels
artikel_bild_big_3 URL des großen Zusatzbildes Bildes des Artikels
artikel_bild_4 URL des kleinen Zusatzbildes Bildes des Artikels
artikel_bild_big_4 URL des großen Zusatzbildes Bildes des Artikels
artikel_nuancen Ein serialisiertes Array mit Nuancen nutzen Sie unserialize() um das bezogenes Array wieder herzustellen. Enthält Bezeichnung und ein Bild zum Bildpfad https://nephele-s2.de/webshop_images/nuancen/
artikel_nuancen_items Artikelnuancen Vgl. "artikel_nuancen" mit einem artikel_nuancen_item -> name | pfad
artikel_auszeichnungen Ein serialisiertes Array mit Auszeichnungen nutzen Sie unserialize() um das bezogenes Array wieder herzustellen. Enthält Bezeichnung und ein Bild zum Bildpfad https://nephele-s2.de/webshop_images/nuancen/
artikel_auszeichnungen_items Auszeichnungen Vgl. "artikel_auszeichnungen" mit einem artikel_auszeichnungen -> name | pfad
artikel_sort_items Serialisiertes Array mit Artikel im Sortiment enthält artikel_sort_item elemente
artikel_sort_item Einzelartikel im Sortiment enthält 2 elemente: artikel_sort_item_weinnr und artikel_sort_item_anzahl
artikel_versandzahl Anzahl der tatsächlichen Flaschen / Integer In der Regel = 1. Bei Sortimenten kann es aber abweichend sein.
artikel_sort_anzahl Serialisiertes Array mit Zuordnung weinnr / anz Zwischenlösen Erfolgt demnächst auch als XML
artikel_preis Preis in € des Artikels Double
artikel_streichpreis Altpreis in € des Artikels, nutze dafür die Preisgruppe Altpreis, Double
artikel_literpreis Literpreis in € des Artikels Double
artikel_mwst Mehrwertsteuersatz des Artikels Double
artikel_brennwert Brennwert pro 100g/100ml Float
artikel_eiweiss Eiweißgehalt pro 100g/100ml Float
artikel_versandfrei Angabe ob Artikel generell versandfrei 0 / 1 für True / False
artikel_keinliterpreis Markiert Artikel, die keinen Literpreis benötigen. 0 / 1 für True / False
artikel_fuellgewicht Füllgewich in Gramm int
artikel_kilopreis Preis pro Kilogramm in € double
artikel_ausgetrunken Datum, bis zu dem der Artikel als ausgetrunken angezeigt werden soll String | YYY-MM-DD
artikel_apnr APNR String
artikel_lage Lage des Artikels String
artikel_expertise PDF-Pfad einer Expertise (falls angelegt) String / URL
artikel_typ Artikeltyp (z.B. Sekt etc.) String
artikel_typ_id Interne WBO Nummer des Artikel-Typs int
artikel_farbe Farbe (rot / weiß ...) Text
artikel_trinktemperatur Trinktemperatur Text
artikel_lagertemperatur Ideale Lagertermperatur Text
artikel_ausbau Ausbau des Artikels Text
artikel_lagerfaehigkeit Lagefähigkeit (Jahre) des Artikels Text
artikel_boden Bodenbeshaffenheit der Rebe Text
artikel_videolink Link zu einem Video Text
artikel_land Herkunftsland Ggf. leer
artikel_region Region Ggf. leer
artikel_anbaugebiet Anbaugebiet Ggf. leer
artikel_bestand_warnung_ab Warnwert für Bestände Integer | 0
artikel_erzeuger ID des Erzeugers: 0 bei Eigenerzeungis Int
artikel_erzeuger_name Name des Erzeugers (bei Eigenerzeugnis eigene Adresse) Text
artikel_erzeuger_nummer Nummer des Erzeugers (Null bei Eigenerzeugnis) Text
artikel_erzeuger_text Firma + Adresse des Erzeugers Text
artikel_erzeuger_firma Firma des Erzeugers Text
artikel_erzeuger_adresse Adresse des Erzeugers Text
artikel_kategorie Verkaufskategorie des Arttikels (eindeutig) Text
artikel_verpackung Interne Verpackungs-ID int
artikel_verpackung_bezeichnung Bezeichnugng der Verpackung Text (z.B. "Palette")
artikel_verpackung_inhalt Menge in der Verpackung int (nicht zwingend gepflegt - oft 0)
artikel_ean13 Ean-13 Code für eine Flasche wenn vergeben Ean13 / Null
artikel_ean13_kiste Ean-13 Code für eine Kiste wenn vergeben Ean13 / Null
artikel_zutaten Zutatenliste des Artikels String / Null / ggf. Kommagetrennt
artikel_mhd Mindesthaltbarkeitsdatum String / Null
artikel_fett Fettgehalt in g/100ml double / Null
artikel_fetts ... davon ungesättigte Fettsäuren in g/100ml double / Null
artikel_kohlenhydrate Kohlenhydrate inkl. Zucker in g/l double / Null
artikel_salz Salzgehalt in g/l double / Null
artikel_ballast Ballaststoffe in g/100ml double / Null
artikel_vitamine Vitamine und Gehalt String / Null
artikel_frei_schwefelsaeure Freie Schwefelsäure double / Null
artikel_gesamt_schwefelsaeure Gesamt Schwefelsäure double / Null
artikel_histamin Histamingehalt String / Null
artikel_glycerin Glyceringehalt String / Null
artikel_labeltext Freitext für E-Labels String / Null
artikel_warengruppen Alle Warengruppen des Artikels Enthält Kindelemente des Typs < warengruppe >
artikel_bestand Freier Gesamtbestand alle Läger im Mandanten Int | ggf. Float wenn mit Nachkst. gearbeitet wird.
artikel_bestand_firmenverbund Freier Gesamtbestand alle Läger in allen verbundenen Mandanten Int | ggf. Float wenn mit Nachkst. gearbeitet wird.
artikel_bestand_webshop Freier Gesamtbestand des Shop-Lagers Int | ggf. Float wenn mit Nachkst. gearbeitet wird. Ist gleich artikel_bestand falls kein Lager definiert
Aktion: getWineDetail
siehe -> getArtikelDetail.
Aktion: getArtikelDetail
Gibt detailierte Informationen über einen Artikel zurück.
[Depreciated: Diese Funktion wird nicht mehr weiter entwickelt - nutzen Sie stattdessen getArtikel und übergeben Sie eine Artikelnummer]
Aktion: getAdrGrp
Gibt alle Kundengruppen zurück.
Parametername Beschreibung Bemerkung
Diese Funktion erwartet keine Parameter
Rückgabewerte
Tagname Beschreibung Bemerkung
anzahl Anzahl gefundener Datensätze
Die Datensätze befinden sich in einem <items> Container. Jeder Datensatz an sich befindet sich in einem <item> Container
grp_nr Nr (ID) der Kundengruppe
grp_name Name der Kundengruppe
grp_beschreibung Beschreibung der Kundengruppe
Aktion: getAuftragStatus
Gibt den Status und Trackinglink eines Auftrags zurück.
Parametername Beschreibung Bemerkung
auftragnummer Nummer des Abfrage-Auftrags Int
Rückgabewerte
Tagname Beschreibung Bemerkung
Die Datensätze befinden sich in einem <items> Container. Jeder Datensatz an sich befindet sich in einem <item> Container
auftrag_status Status des Auftrags neu,bearbeitung,erledigt
auftrag_versandlink URL zur Paketnachverfolgung
auftrag_rechnungsnummer Rechnungsnummer falls vorhanden
Aktion: getBestand
Liefert den aktuellen Artikelbestand gesamt oder je Lager mit.
Tagname Beschreibung Bemerkung
artikelnr Artikelnummer des Artikels dessen Infos abgerufen werden Case-Sensitive!
lagernr Nummer des LAgers falls die Anfrage lagerspezifisch ist Leer lassen (oder -1) für Gesamtbestand
reservierung Sollen reservierungen mit berücksichtigt werden? Standard ist "false" bei fals / NULL - ggf. "true" mit angeben
firmenverbund Gibt einen zusätzlichen freien Bestand über den Firmenverbund zurück (Laufzeit beachten!) Erwartet "true" als String.
Rückgabewerte
Tagname Beschreibung Bemerkung
Die Datensätze befinden sich in einem <items> Container. Jeder Datensatz an sich befindet sich in einem <item> Container
artikel_bestand Artikelbestand Sdt ist ist INT (Float, falls Bruchteilssortimente genutzt werden).
artikel_bestand_firmenverbund Freier Gesamtbestand alle Läger in allen verbundenen Mandanten Int | ggf. Float wenn mit Nachkst. gearbeitet wird.
Aktion: getZimmer
Liefert alle aktiven Zimmer des Kunden.
Parametername Beschreibung Bemerkung
Diese Funktion erwartet keine Parameter
Rückgabewerte
zimmer_nr Zimmernummer = Artikelnummer Eindeutige Nummer zur Identifikation Varcahr
zimmer_id Eindeutige ID Nur intern genutzt
zimmer_betten Anzahl der Betten int
zimmer_personen Anzahl der max Personen int
zimmer_bezeichnung Bezeichnung des Zimmers string
zimmer_beschreibung Beschreibung des Zimmers string
preise Enthält preis Kindknoten preis_name (string) und preis_wert (float)
Aktion: getZimmerStatus
Liefert alle Buchungen die Heute oder in der Zukunft liegen für ein Zimmer.
Parametername Beschreibung Bemerkung
artikelnr Nummer des Zimmers Vgl. Artikelnummer / Zimmernr getZimmer
Rückgabewerte
Tagname Beschreibung Bemerkung
buchung_nummer Auftragsnummer der Buchung Int
buchung_status Status der Buchung
  • 0: Anfrage
  • 1: Reservierung
  • 2: Buchung
  • 3: Eingecheckt
  • 4: Ausgecheckt
  • 5: Storniert
buchung_start Anreisetag Date Y-m-d
buchungende Abreisetag Date Y-m-d
Aktion: getNewsPrev
Liefert eine Vorschau zu allen News.
Parametername Beschreibung Bemerkung
news_count Anzahl der gewünschten News int | Maximum ist 20, Minimum / Default ist 5
Rückgabewerte
Tagname Beschreibung Bemerkung
news_id Eindeutige Nummer der News Int
titel Titel der News String
datum Datum der News Date Y-m-d
inhalt Inhalt der News longtext / mixed HTML
Aktion: getNews
Liefert die Infos zu einem Einzel-News.
Parametername Beschreibung Bemerkung
news_id Genaue Nummer der geforderten News / Info-Seite int | zwingend erforderlich
Rückgabewerte
Tagname Beschreibung Bemerkung
news_id Eindeutige Nummer der News Int
titel Titel der News String
datum Datum der News Date Y-m-d
inhalt Inhalt der News longtext / mixed HTML











Hinweis zu Datentypen:
Die Schnittstelle basiert ursprünglich auf XML und wird live in json bei Bedarf umgeformt - wir bitten um Verständnis, dass daher auch manche Werte wie int ggf. als String übergeben werden.









Standard Anfrage:
https://weinstore.net/xml/v21.0/wbo-API.php?UID=[UID]&apiUSER=[API_USER]&apiCODE=[AUTH_CODE]&apiShopID=1
Antwort:

<fehler>
	<text> Fehler: Keine ID / Parameter übergeben!</text>
</fehler>












Anpassung des Encodings und Output-Formats:


https://weinstore.net/xml/v21.0/wbo-API.php?UID=[UID]&apiUSER=[API_USER]&apiCODE=[AUTH_CODE]&apiShopID=1&encoding=&output=json








Einfaches Beispiel: Auftragsübertragung als GET URL Call:
https://weinstore.net/xml/v21.0/wbo-API.php?UID=[UID]&apiUSER=[API_USER]&apiCODE=[AUTH_CODE]&apiShopID=1&apiACTION=newOrder &anrede=0&name=Max&nname=Mustermann&email=max@mustermann.de&strasse=Musterweg&hnr=1&plz=12345&ort=Musterstadt&land=DE&telefon=&firma=&sendDoi=&zahlung=&l_adr=&l_anrede=&l_firma=&l_vorname=&l_name=&l_strasse=&l_plz=&l_ort=&l_land=DE&l_hnummer=&id_lieferart=&kto=&ktoInh=&blz=&iban=&bic=&gutscheincode=&gutscheinwert=0&gebuehr=0&referenz=&versandkosten=0&positionen=1&wein_anzahl1=[ANZAHL]&wein_id1=[WEINNR]



Alternative Übertragungsweise via POST-Request in PHP:
$url = 'https://weinstore.net/xml/v21.0/wbo-API.php';
$myvars = 'UID=' . $myUserID . '&apiUSER=' . $myApiUserId; // ... usw.

$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $myvars);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch, CURLOPT_HEADER, 0);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec( $ch );






Antwort (XML):
	<auftrag>
		<status>ok</status>
		<nr>[AUFTRAGSNR]</nr>
	</auftrag>























































































































































































































































































































































































































































Hinweise zu Parametern:

Die Parameter dieser Funktion arbeiten Additiv: Sie werden in entsprechender Reihenfolge aufgebaut
  1. Kein Parameter: Alle Weine des Shops werden ausgeliefert
  2. id_grp: Alle Weine des Shops einer Artikelgruppe werden ausgeliefert
  3. suchstring: Die Felder Artikelname, Artikelbeschreibung, Weinnr und Geschmack werden mit einem OR / LIKE durchsucht
  4. artikelnr: AND die exakte Artikelnummer wird abgefragt
Es kann kein Parameter, exakt ein Parameter oder eine Mischung genutzt werden, wobei die Abfrage von oben nach unten einschränkt.
Hinweis zur Abfrage von Artikeldaten:

Artikel werden nur dann gelistet, wenn sie bestimmte Krieterien erfüllen:
  • Sie benötigen einen Preis in der Kategorie des Shops
  • Sie benötigen ein (Füll)Gewicht oder die Markierung, dass kein Literpreis / Grundpreis angegeben werden muss.
  • Sie müssen als aktiv gekennzeichnet sein (nicht unter den vergriffenen Artikeln).
Dies erlaubt ein besseres Steuern der Schnittstelle direkt durch das Weingut, indem einfach Preise entfernt werden und Artikel bei einem Umstellen des Status in Winestro automatisch aus dem Shop entfernt werden können. (Die Basis-Artikelstämme umfassen mehrere tausende Artikel und eine andere Steuerung hat sich als unpraktikabel erwiesen). Die Füllgewichte / Basispreise sollen Weingüter vor Fehlern und Abmahnungen schützen. Wenn ein Wein kein Füllgewicht besitzt, kann der Haken bei "kein Literpreis ausweisen" gesetzt werden.
Hinweis zur Artikelnummer:

Das + im Fall der Weinnr ist kein Sonderzeichen, sondern ein reserviertes System-Trennzeichen: Das + in der Artikelnummer gibt beim Weingut verschiedene Füllungen an, die nach außen als eine Weinnr (zB 100) erscheinen aber nach innen als Füllung (zB 100+1, 100+2...) geführt werden.

In der Artikelnummer werden diese Zeichen entsprechend URL-Codiert übergeben, da das die konkrete Artikelnummer ist, die auch bei Rückgabe erwartet wird - in dem Fall 100%2B1. Das + ist codiert (%2B), damit bei einer Übermittlung via URL, Post oder Get keine Codierungs Probleme entstehen.

Idr. wird das aber bei den meisten Einbauenden in der URL einfach abgeschnitten - also in der Anzeige nur der Teil vor dem + um dem Kunden nur die 100 zu produzieren. Bei der Rückmübermitllung wird aber wieder 100%2B1 erwartet, damit das intern für das Weingut der passenden Füllung zugeordnet werden kann.







































































































Zurückgegeben wird hier imm der freie Bestand, also alles beim Weingut minus Reservierungen und Sperrungen. In den Systemeinstellungen kann ein Vorzugslager für den Shop eingestellt werden, auf das bei Bedarf gehört werden soll.







GetArtikelDetail:

Diese Funktion wurde in 20.0 abgestellt, da die Funktion getArtikel alle Aufgaben übernehmen kann. Intern wird die Funktion mit den gleichen Parametern umgeleitet, sodass auch ältere System umgestellt werden können und bei gleichen Parametern eine Antwort erhalten sollten. Beachten Sie, dass ggf. mehr Felder zurückgeliefert werden, da die ablösende Funktion aktueller ist.



































getBestand:

Die Bestandsabfrage wurde mit der Version 21 geändert und darf nun in Echtzeit genutzt werden. Die Limitierung entfällt ab 21!














Zimmer:

Zimmer werden in Winestro als Artikel geführt und können bei Bedarf auch über die Artikelschnittstelle bei weiteren Werten angefragt werden. Die Zimmer_nr und die weinnr sind gleichbedeutend.













Zimmer_status / Zukünftige Buchungen:

Buchungen sind speziell markierte Aufträge und können daher auch über den Auftragsstatus angefragt werden. Die Felder buchung_nummer und auftragnummer sind gleichbedeutend.