eSolution 3rd Party API Code
Microsoft .NET C# - WebService / SOAP
Die referenzierenden Datentypen DataSet + DataTable sind Microsoft-spezifische Datentypen, die in Standard-XML Streams dargestellt werden.
Prinzip des Datenzugriffs...
Die eSolutions Schnittstelle läuft intern unter dem Namen HSWebBL und ist daher als HSWebBL.asmx erreichbar.
Auf dem Testrechner (virtuelle Maschine) ist der Dienst lokal unter folgender URL verfügbar "http: //localhost/HSWebBL/HSWebBL.asmx"
Je nachdem, welche lokale IP der Testrechner in seinem Netzwerk erhalten hat, kann der Dienst unter "http://xxx.xxx.xxx.xxx/HSWebBL/HSWebBL.asmx" erreicht werden (xxx.xxx.xxx.xxx = lokale IP-Adresse der Testkasse im LAN. (z. B. 192.168.1.200).
Im Standard erstellen Sie ein Kommunikationsprogramm, dass im jeweiligen Standort läuft und die Verbindung zu Ihrem Produkt herstellt. Andernfalls könnten Sie den lokalen IIS über einen Portfreigabe von Aussen ansprechen (dies ist keine Leistung von Hypersoft).
Grundsätzliches zum Abruf von Artikelstammdaten
Vorwort zur Sicherheit:
Es gibt mehrere Funktionen, die den Parameter Company und SerialNumber benötigen bzw. verlangen. Hier sind für jeden Partner Vorgaben festgelegt und mit dem LOI von Hypersoft bekanntgegeben worden. Jeder Partner, der die eSolutions Anbindung nutzen möchten ist an diesen Vorgaben gebunden und muss diese in seiner Schnittstelle sicherstellen. Ohne gültige Übermittlung dieser beiden Parameter können Anfragen negativ beantwortet werden müssen.
Globale Funktionen
string WebServiceInitialize()
Diese Funktion dient der Initialisierung des WebService und sollte nach einem Neustart der Partneranwendung einmalig ausgeführt werden.
Diese Funktion wird sicherheitshalber bei einem Datenabruf oder Buchungsvorgang auch im Hintergrund selbstständig ausgeführt, sollte nach einem Neustart des IIS diese nicht schon durch den Partner ausgeführt worden sein.
Hierbei wird die sendende IP geprüft und ggfls. eine Station im Hypersoftsystem angelegt bzw. vorbereitet. Wenn, dann wird hinter der höchsten Stationsnummer des Systems mit dem Namen „SOT“ eine weitere Station angelegt. Diese neue Station orientiert sich in Bezug auf die Verkaufsstellenzuordnung anhand der höchsten Stationsnummer und verwendet somit deren Vorgaben.
Rückmeldung string:
WebService 'HSWebBL' is running. Your IP: xxx:xxx:xxx:xxx Main TerminalNumber: 1 RetStatus: Branch: 1 Your TerminalNumber: 101 Your StockID: 9 StockName: Ihre Verkaufsstelle
DataSet Beispiel
Dient als Beispiel um den Aufbau des DataSets für Buchungen anschaulich zu machen. DataSet wird als XML geliefert.
DataSet GetExample()
Rückmeldung DataSet: (Beschreibung siehe auch BookTransaction)
"Amount" | type=int | (Anzahl) |
"ProductID" | type=int | (PID eindeutige ProductID / DB ID) |
"Price" | type=double | (VK Preis) |
"Linked" | type=int | (Preisebene) |
"PE" | type=int | (RezID aus Beilage) |
"FT" | type=string | (Freie Texinfo) |
"IHAH" | type=string | (IH=InHaus AH=außer Haus) |
"FreeBontext" | type=string | (optional für Tickets) |
"Discount" | type=double | (Buchungsinfo (intern)) |
string CallService(string Company, string SerialNumber, string fpMessage, string MediaID)
Nur in Verbindung mit einem Buchungsvorgang inklusive Pagerzuordnung einsetztbar.
(Bei Bedarf wenden Sie sich bitte an den Hypersoft Support)
Optionale Funktionen
Werbservice prüfen
string WebServicePing()
Rückmeldung string:
OK Your IP: xxx:xxx:xxx:xxx
Version prüfen
string GetECommerceVersion()
Rückmeldung string:
2017.1.39.0 (Stand:März 2021)
Freie ID für Protokoll
string ProtokollTransactionStart()
Rückmeldung string:
ID:0 (Eine freie ID zum Logbuch, beginnend mit 0)
(Die ID wird für ProtokollTransactionStop benötigt)
Protokoll abrufen
void ProtokollTransactionLog(string LogInfo)
Alle Log-Informationen werden unter der zuletzt erzeugten ID zwischengespeichert bis „ProtokollTransactionStop“ ausgeführt wird.
string ProtokollTransactionStop(string ID, string MailAdress)
Alle zwischengespeicherte Log-Einträge an die übergebene Mailadresse senden und die ID schließen.
Rückmeldung string:
OK oder im Fehlerfall Error:xxxx
Ermittlung der Hypersoft Kundennummer des Standorts
public string GetHypersoftCustomerNumber(string Company, string SerialNumber)
Es wird eine Zeichenkette mit folgendem Inhalt zurückgemeldet:
OK:12345 oder im Fehlerfall error:...
eSolutions API Artikeldaten / Stammdaten GetItemData
Bitte beachten Sie: Das Hypersoft POS System arbeitet grundsätzlich nicht direkt in den Artikeldaten sondern erstellt sich hierfür eine Arbeitskopie der Artikeldaten. Diese Arbeitskopie wird auch für die eSolutions Schnittstelle verwendet. Sehen Sie für die Hintergründe die Beschreibung des Artikelstamms im Kapitel Bearbeitung im laufenden Betrieb .
Folgende Funktionen liefern den aktuellen Artikelstamm der Kasse...
Die Funktionen GetItemData bis GetItemData10 liefern den Artikelstamm in unterschiedlicher Form. Dabei können abweichende Parameter den Inhalt der Daten bestimmen und je nach gewählter Funktion den Artikelstamm in unterschiedlicher Datenstruktur zurückgeben.
Verwandte Themen: Preisebenen mit 3rd Parties, Artikel und Vorgänge mit 3rd Parties
Z.B. DataSet, JSON oder auch als reinen String (der Rückgabetyp steht jeweils vor der Funktion). DataSet wird als XML geliefert.

DataSet GetItemData(string Company, string SerialNumber)
Alle verkaufsfähigen Artikel in der Preisebene Standard ohne Berücksichtigung der Verkaufsstellenzuordnung.
Rückgabe = DataSet Typ1
DataSet GetItemData2(string Company, string SerialNumber)
Alle verkaufsfähigen Artikel in der Preisebene Standard mit Berücksichtigung der Verkaufsstellenzuordnung.
Rückgabe = DataSet Typ2
DataSet GetItemData3(string Company, string SerialNumber)
(mittlerweile identisch mit GetItemData2)
Alle verkaufsfähigen Artikel in der Preisebene Standard mit Berücksichtigung der Verkaufsstellenzuordnung.
Rückgabe = DataSet Typ2
DataSet GetItemData4(string Company, string SerialNumber, string InfoSeparator)
Alle verkaufsfähigen Artikel in der Preisebene Standard mit Berücksichtigung der Verkaufsstellenzuordnung und zusätzlich mit der Steuerung welches Trennzeichen in dem Feld Info angewandt werden soll. (Zeichen Ç wird dann gegen das übergebene Zeichen ausgetauscht)
Rückgabe = DataSet Typ2
string GetItemData5(string Company, string SerialNumber)
(nicht mehr zu empfehlen und wird nur aus Kompatibilitätsgründen weiter mitgeführt)
Alle verkaufsfähigen- und Infoartikel ohne Berücksichtigung der Verkaufsstellenzuordnung.
Rückgabe = string
json string GetItemData6(string Company, string SerialNumber, string InfoSeparator)
Alle verkaufsfähigen Artikel in der Preisebene Standard mit Berücksichtigung der Verkaufsstellenzuordnung und zusätzlich mit der Steuerung welches Trennzeichen in dem Feld Info angewandt werden soll (Zeichen Ç wird dann gegen das übergebene Zeichen ausgetauscht).
Rückgabe = DataSet Typ2 als json string
DataSet GetItemData7(string Company, string SerialNumber, string InfoSeparator)
Alle verkaufsfähigen Artikel in der Preisebene Standard ohne Berücksichtigung der Verkaufsstellenzuordnung und zusätzlich mit der Steuerung welches Trennzeichen in dem Feld Infoangewandt werden soll (Zeichen Ç wird dann gegen das übergebene Zeichen ausgetauscht).
Rückgabe = DataSet Typ2
string GetItemData8(string Company, string SerialNumber) (*1)
(nicht mehr zu empfehlen und wird nur aus Kompatibilitätsgründen weiter mitgeführt)
Alle verkaufsfähigen- und Infoartikel wie GetItemData5 jedoch mit Berücksichtigung der Verkaufsstellenzuordnung.
Rückgabe = string
json string GetItemData9(string Company, string SerialNumber, string InfoSeparator)
Alle verkaufsfähigen Artikel in der Preisebene Standard ohne Berücksichtigung der Verkaufsstellenzuordnung und zusätzlich mit der Steuerung welches Trennzeichen in dem Feld Info angewandt werden soll (Zeichen Ç wird dann gegen das übergebene Zeichen ausgetauscht).
Rückgabe = DataSet Typ2 als json string
json string GetItemData10(string Company, string SerialNumber, string InfoSeparator, string MultiPriceLevel)
Alle verkaufsfähigen Artikel in der Preisebene Standard ohne Berücksichtigung der Verkaufsstellenzuordnung und zusätzlich mit der Steuerung welches Trennzeichen in dem Feld Info angewandt werden soll (Zeichen Ç wird dann gegen das übergebene Zeichen ausgetauscht).
Rückgabe = DataSet Typ3 als json string
DataSet GetMultiPLItemData(string Company, string SerialNumber, string InfoSeparator, string MultiPriceLevel)
Alle verkaufsfähigen Artikel in der Preisebene Standard ohne Berücksichtigung der Verkaufsstellenzuordnung und zusätzlich mit der Steuerung, welches Trennzeichen in dem Feld Info angewandt werden soll (Zeichen Ç wird dann gegen das übergebene Zeichen ausgetauscht).
Rückgabe = DataSet Typ2
Hier existiert jedoch für jede Preisebene ein extra Artikeldatensatz und nicht wie bei GetItemData10 die Preise als extra Felder (PE0 bis PE3).
string GetMultiPLItemData6(string Company, string SerialNumber, string InfoSeparator, string MultiPriceLevel)
Alle verkaufsfähigen Artikel in der Preisebene Standard ohne Berücksichtigung der Verkaufsstellenzuordnung und zusätzlich mit der Steuerung welches Trennzeichen in dem Feld Infoangewandt werden soll (Zeichen Ç wird dann gegen das übergebene Zeichen ausgetauscht). Entspricht auch GetMultiPLItemData.
Rückgabe = DataSet Typ2 als json string
DataSet GetMultiPLItemDataSet(string Company, string SerialNumber, string InfoSeparator, string MultiPriceLevel)
Alle verkaufsfähigen Artikel in der Preisebene Standard ohne Berücksichtigung der Verkaufsstellenzuordnung und zusätzlich mit der Steuerung welches Trennzeichen in dem Feld Info angewandt werden soll (Zeichen Ç wird dann gegen das übergebene Zeichen ausgetauscht).
Rückgabe = DataSet Typ3
DataSet GetItemPackage(string Company, string SerialNumber, int SelectionMode, int UsePE)
Interne Funktion in Zusammenhang mit der Integration von Deliverect mit der Steuerung eines Artikelbildes.
DataSet GetItemPackage2(string Company, string SerialNumber, int SelectionMode, int UsePE, int ItemPicture)
Diese beiden Funktionen liefern den Artikelstamm in einem von Deliverect erwarteten Format.
DataSet Rückgaben...
Die Rückgabe als DataSet ist je nach Methode im Inhalt (Felder) unterschiedlich. Siehe DataSet Typen (DataSet Typ1, Typ2 und Typ3). DataSet wird als XML geliefert. Die Rückgabe des Artikels im Falle als string ist dabei die kleinste und einfachste Methode und bietet nur wenig Felder. Daher sind die betroffenen Methoden für neue Integrationen nicht mehr zu empfehlen und werden nur aus Kompatibilitätsgründen weiter mitgeführt.
Folgende Felder werden bei Typ string zurückgeliefert:
ProductID;Bontext1;Artikel_Name;Preis;HGR_Nr;HGR_Name;WGR_Nr;WGR_Name;UGR_Nr;UGR_Name;TicketTyp;TicketFaktor
Die Felder sind dabei durch ein Semikolon getrennt und jeder Artikel ist durch ein CR\LF vom nächsten Artikel getrennt.

Sehen Sie Warengruppen mit 3rd Parties.
Tabelle mit den Hauptgruppen der betroffenen Artikel:
Felder: | ||
"Text" | type=string | (Gruppentext) |
"ID" | type=int | (Gruppennummer) |
"InternalID" | type=int | (interne Datenbank ID) |
"InterfaceText" | type=string | (Schnittstellentext) |
"GroupFoto" | type=string | (Gruppenbild (692*399)) |
"FotoLink" | type=string |
(interne LINK auf das Bild) (z.B. http://localhost/GlobalData/Clnt0001/Group12.jpg) |
"FotoData" | type=base64Binary | (Bilddaten) |
"GroupMFoto" | type=string | (small (160*80)) |
"MFotoLink" | type=string | (interne LINK auf das Bild) |
"MFotoData" | type=base64Binary | (Bilddaten) |
"ZT1" | type=string | (frei definierbare Zusatzinfo1) |
bis | ||
"ZT10" | type=string |
(frei definierbare Zusatzinfo10) |
DataSet Typ1:
Tabellenname: WGR_XXX (XXX für jede verwendete Hauptgruppe. Z.B. WGR_Getränke)
Tabelle mit den Warengruppen der betroffenen Artikel:
(wie HGR_LISTE ohne InternalID plus zwei zusätzlichen Feldern)
Felder: | ||
"TextSmall" | type=string | (Tastaturtext) |
"HGRID" | type=short | (Verlinkung auf ID HGR_LISTE) |

Tabelle mit allen verkaufsfähigen Artikeln:
Felder: | ||
"artikel_nr" | type=int | (Artikelnummer) |
"Artikel_Name" | type=string | (Bontext1) |
"ProductID" | type=int | (DB ID) |
"Preis" | type=string | (VK Preis) |
"PE" | type=short | (Preisebene 0=Standard) |
"NoDiscount" | type=unsignedByte | (nicht rabattfähig 1=JA 0=NEIN) |
"MinDiscountPrice" | type=double | (Minimalpreis) |
"Deposit" | type=float | (Pfandwert) |
"Deposit_AH" | type=float | (Pfandwert außer Haus) |
"GruppenKey" | type=int | (interner Gruppenkey) |
"HGR" | type=int | (Hauptgruppen ID) |
"WGR" | type=int | (Warengruppen ID) |
"UGR" | type=int | (Unter- oder Subgruppen ID) |
"UGRSort" | type=string | (Sortierungsfeld der UGR) |
"TicketTyp" | type=unsignedByte | (zugeordneter Tickettyp) |
"TicketFaktor" | type=unsignedByte | (zugeordneter Ticketfaktor) |
"SortimentA" | type=unsignedByte | (1=JA 0=NEIN) |
"SortimentB" | type=unsignedByte | (1=JA 0=NEIN) |
"SortimentC" | type=unsignedByte | (1=JA 0=NEIN) |
"SortimentD" | type=unsignedByte | (1=JA 0=NEIN) |
"CO2" | type=double | (CO2 Wert aus Artikelstamm) |
"Scheduled" | type=unsignedByte | (zeitlich begrenzt 1=JA 0=NEIN) |
"FromDate" | type=int | (in JJJJMMTT ansonsten 0) |
"ToDate" | type=int | (in JJJJMMTT ansonsten 0) |
"FromTime" | type=short | (in HHMM ansonsten 0) |
"ToTime" | type=short | (in HHMM ansonsten 0) |
"KeyName" | type=string | (Tastentext) |
"plu_nr" | type=int | (Schankartikelnummer) |
"FreeBText" | type=unsignedByte | (Freier Bontext 1=JA 0=NEIN) |
"FreeItemNumber" | type=int | (Artikelnummer der Kasse) |
"IsRecipe" | type=unsignedByte | (Rezeptur 1=JA 0=NEIN) |
"RecipeFactor" | type=short | (immer 1) |
"RecipeMode" | type=short | (immer 0) |
"FreeAddOnItem" | type=unsignedByte | (freier Anhang) |
"HGR_Name" | type=string | (Hauptgruppenname) |
"WGR_Name" | type=string | (Warengruppenname) |
"UGR_Name" | type=string | (Subgruppenname) |
Diese Tabelle gibt es dann zusätzlich für jede Warengruppe extra mit gleichem Datenaufbau, z.B. ART_Alkoholfrei oder ART_Hauptgerichte.
Beachten Sie bei der Verwendung von Rabatten auch die Möglichkeit Abruf der Rundungsparameter für Rabatt.

Tabelle mit allen Abfrageartikeln (Bestandteile einer Rezeptur mit Abfrage):
(Achtung: Hypersoft behält sich vor, die Sortimente gegebenenfalls zu erweitern. Z.B. E,F,G,H usw.)

Sehen Sie Artikel Abfragen (Modifier).
Tabelle mit allen Abfrageartikeln (Bestandteile einer Rezeptur mit Abfrage, die nicht selbst verkaufsfähig sind):
Felder: (wie SYS_Abfragen)

Tabelle mit allen Anzahlen zu den Abfrageartikeln (Bestandteile einer Rezeptur mit Abfrage):
Felder: | ||
"ProductID" | type=int | (DB ID der Rezeptur) |
"AbAnz1" | type=string | (Anzahl Abfrage1 an möglichen Bestandteilen) |
bis | ||
"AbAnz16" | type=string | (Anzahl Abfrage16 an möglichen Bestandteilen) |
"AbMode1" | type=string | (Modus Abfrage1 „0“=optional „1“=zwanghaft) |
bis | ||
"AbMode16" | type=string | (Modus Abfrage16 „0“=optional „1“=zwanghaft) |

Tabelle mit allen Anzahlen zu den Abfrageartikeln (Bestandteile einer Rezeptur mit Abfrage):
Felder: | ||
"ProductID" | type=int | (DB ID der Rezeptur) |
"AB1" | type=string | (Abfragetext der Abfrage1) |
"AB16" | type=string | (Abfragetext der Abfrage16) |

Tabelle mit allen verkaufsfähigen Artikeln:
(wie DataSet Typ1 jedoch zusätzliche Felder und der Artikel_name mit anderem Inhalt)
Felder:
Inhalt Bereich info:
Artikelinfo gefolgt vom Standardabschlusstrennzeichen = Ç
Suchstichworte gefolgt vom Standardabschlusstrennzeichen = Ç
ZusatzKurz gefolgt vom Standardabschlusstrennzeichen = Ç
ZusatzLang gefolgt vom Standardabschlusstrennzeichen = Ç
AllergeneKurz gefolgt vom Standardabschlusstrennzeichen = Ç
AllergeneLang gefolgt vom Standardabschlusstrennzeichen = Ç
EnergiewerteKurz gefolgt vom Standardabschlusstrennzeichen = Ç
EnergiewerteLang gefolgt vom Standardabschlusstrennzeichen = Ç

Tabelle mit allen eingerichteten Menügängen:
Felder: | ||
"MenuNo" | type=string | (Nummer des Menüganges) |
"MenuName" | type=string | (Name des Menüganges) |

BookTransaction und BookTransactionStr
Felder: | ||
"Amount" | type=int | (Anzahl) |
"ProductID" | type=int | (PID eindeutige Produkt ID /DB ID) |
"Price" | type=double | (Verkaufspreis) |
"Linked" | type=integer | (Preisebene) |
"PE" | type=int | (RezID aus Beilagen) |
"FT" | type=string | (Freie Textinformation) |
"IHAH" | type=string | (IH= In-House AH=außer Haus) |
"Discount" | type=double | (Buchungsinfo intern) |
„MenuCourse“ | type=int | (Menügang als Zahl. 0 bis 20) |

Tabelle mit allen eingerichteten Preisebene:
Felder: | ||
"PENo" | type=int | (Nummer der Preisebene) |
"PEName" | type=string | (Name der Preisebene) |

Tabelle mit allen verkaufsfähigen Artikeln:
(wie DataSet Typ2 jedoch zusätzliche Felder für die übergebenen Preisebenen)
Felder: | ||
"PEx" | type=double | (Verkaufspreis) |
"PEVATx" | type=double | (MWST Satz) |
"PEVAT_AHx" | type=double | (MWST Satz für außer Haus) |
"DEPOSITx" | type=double | (Pfandbetrag) |
"DEPOSIT_AHx" | type=double | (Pfandbetrag für außer Haus) |
Jedes x steht für eine Übergebene Preisebene. Z.B. „0,1,2,3“:
"PE0" | type=double | (Verkaufspreis) |
"PEVAT0" | type=double | (MWST Satz) |
"PEVAT_AH0" | type=double | (MWST Satz für außer Haus) |
"DEPOSIT0" | type=double | (Pfandbetrag) |
"DEPOSIT_AH0" | type=double | (Pfandbetrag für außer Haus) |
"PE1" | type=double | (Verkaufspreis) |
"PEVAT1" | type=double | (MWST Satz) |
"PEVAT_AH1" | type=double | (MWST Satz für außer Haus) |
"DEPOSIT1" | type=double | (Pfandbetrag) |
"DEPOSIT_AH1" | type=double | (Pfandbetrag für außer Haus) |
"PE2" | type=double | (Verkaufspreis) |
"PEVAT2" | type=double | (MWST Satz) |
"PEVAT_AH2" | type=double | (MWST Satz für außer Haus) |
"DEPOSIT2" | type=double | (Pfandbetrag) |
"DEPOSIT_AH2" | type=double | (Pfandbetrag für außer Haus) |
"PE3" | type=double | (Verkaufspreis) |
"PEVAT3" | type=double | (MWST Satz) |
"PEVAT_AH3" | type=double | (MWST Satz für außer Haus) |
"DEPOSIT3" | type=double | (Pfandbetrag) |
"DEPOSIT_AH3" | type=double | (Pfandbetrag für außer Haus) |
eSolutions API Buchungsmethoden
DataSet BookTransaction(string Company, string SerialNumber, string MediaID, DataSet dsBooking)
string MediaID Gültige Feldinhalte:
Jedes Feld besteht aus einem Namen gefolgt von einem Doppelpunkt „:“ und dem übergebenen Wert x, hierbei ist darauf zu achten, dass die Zeichen | (Pipe) und (Doppelpunkt) nicht in den übergebenen Werten enthalten sind. Jeder Parameter innerhalb der MediaID muss mit dem Zeichen | (pipe) als Trennzeichen abgeschlossen sein.
Besonderheit: Der erste Parameter in der Übergabe entscheidet den Vorgangstyp.

Zusätzlich zu jedem Vorgangstyp können weitere Parameter übergeben werden.
„ZA:x=y“ | Zahlungsabschluss mit der x CurrencyID und y Vorgangsbetrag. Hierbei wird dann der Vorgang mit dem Betrag und der CurrencyID an das Kassensystem übergeben. Z.B. ZA:20=123.50 (EC Zahlung) |
„ZZ:x=y“ | Zahlung Zwischensumme mit der x CurrencyID und y Vorgangsbetrag. Hierbei wird dann der Vorgang mit dem Betrag und der CurrencyID als Zwischenzahlung gespeichert. Z.B. ZZ:20=123.50 (EC Zahlung). Der Unterschied zu ZA: ist, dass der Vorgang mit ZZ: offenbleibt. (Neuer Saldo) |
„ZA:1001=y=z“ | Sonderlösung für Bezahlung per Web-Gutschein. y=Betrag z=Gutscheinnummer |
„ZZ:1001=y=z“ |
Sonderlösung für Bezahlung per Web-Gutschein. y=Betrag z=Gutscheinnummer. Hier wird fest die CurrencyID 1001 verwendet. Die Schnittstelle ermittelt dann automatisch die hinterlegte Zahlungsart aus dem Vouchermanager (interner Begriff) und übergibt diese an das Kassensystem. Es muss sichergestellt sein, dass der Gutschein bereits über das Portal belastet wurde. (z.B. Webshop 2.0) |
„ExtTNR:x“ | Abweichende Terminalnummer (Station) wenn die hinterlegte feste Stationsnummer nicht berücksichtigt werden soll. |
„ExtForm:x“ | Abweichendes Rechnungsformular. Findet Anwendung wenn auch eine Zahlungsart übergeben wird (siehe ZA:). |
„IHAH:x“ | Ganzer Vorgang auf Im Haus oder Außer Haus abrechnen, hierdurch entfällt IHAH in den einzelnen Buchungsdaten. |
„ASSORT:x“ | Gewähltes Sortiment (statistische Info). |
„IHTNR:x.y“ | Für die Übergabe einer Tischnummer / Platznummer innerhalb eines Delivery Vorgangs (TEC:0). |
„DID:x“ | DisplayorderID als Zusatzinfo eines Delivery-Vorgangs (TEC:0). |
„INTTYP:x“ | Deliverytyp als Zusatzinfo eines Delivery-Vorgangs (TEC:0) 1 Abholung, 2 Lieferung, 3 im Hause, (4 OrderAhead in Vorbereitung). |

Felder: | ||
"Amount" | type=int | (Anzahl) |
"ProductID" | type=int | (PID eindeutige ProductID / DB ID) |
"Price" | type=double | (VK Preis) |
"PE" | type=int | (Preisebene) |
"Linked" |
type=int | (RezID aus Beilage) |
"FT" | type=string | (Freie Textinfo) |
"IHAH" | type=string | (IH=In Haus AH=außer Haus) |
"ValidDate" | type=int | (optional für Tickets) |
"BookInfo" | type=string | (Buchungsinfo (intern)) |
"FreeBontext" | type=string | (abweichender Bontext) |
"Discount" | type=double | (Rabattwert) |
Rückgabe DataSet mit folgendem Inhalt:
"Message" | type=string | (Rückmeldung: OK oder Error) |
"DeliveryID" | type=int | (DeliveryID des Vorganges) |
Wenn das System mit fortlaufenden Bonnummern (Superheldenfunktion) eingerichtet ist, kommen zwei weitere Felder in die Rückgabe.
ConsecutiveNumber" | type=string | (Optional die Fortlaufende Bonnummer) |
"ConsecutiveInfo" | type=string |
(Optional ein freier Text für die Bonnummer) (Superheldenfunktion) |
"TableNo" | type=int | (Vorgangsnummer / Tischnummer) |
"Seat" | type=int | (Optional verwendete Platznummer) |
Im Fehlerfall „Message=Error“ wird eine weitere Tabellen mit den fehlerhaften Artikeln „Items“ zurückgemeldet. Inhalt der Tabelle sind die übergebenen Artikeldaten plus einem Status.
Mögliche Rückmeldungen im Feld „Status“:
ERR1 - Preisdifferenz ungültig
ERR2 - Artikel ungültig
ERR3 - Anhang ungültig
DataSet BookTransactionStr(string Company, string SerialNumber, string MediaID, string strBooking)
Genau wie „BookTransaction“ jedoch die Buchungen in der Übergabe als string.
string strBooking:
Amount|ProductID|Price|PE|Linked|FT|IHAH|ValidDate|BookInfo|FreeBontext|Discount
Inhalt der Felder siehe (DataSet dsBooking:). Die Felder müssen mit der | (pipe) getrennt werden und mit einem CRLF abgeschlossen sein.
Bitte beachten, dass die übergebenen Feldinhalte kein | (pipe) , kein CRLF und kein ; Semikolon beinhalten dürfen.
DataSet CheckTransaction(string Company, string SerialNumber, string MediaID, DataSet dsBooking)
Wie BookTransaction jedoch ohne den Vorgang generieren (zur vorherigen Prüfung ob eine Übergabe korrekt ist).
DataSet CheckTransactionStr(string Company, string SerialNumber, string MediaID, string strBooking)
Wie BookTransactionStr jedoch ohne den Vorgang anzulegen (zur vorherigen Prüfung ob eine Übergabe korrekt ist).
eSolutions API Vorgänge abrufen

Bevorzugte Funktion zum Abruf eines Vorganges anhand der zurückgemeldeten DeliveryID aus „BookTransaction“.
DataTable GetDeliveryInfo(string Company, string SerialNumber, string DeliveryID)
Rückmeldung DataSet: | ||
"OpenDate" | type=int | (Öffnungstag) |
"TTADate" | type=int | (Theoretischer Tagesabschluss /TTA) |
"SysDate" | type=int | (Systemdatum Vorgangsabschluss) |
"SysTime" | type=int | (Systemzeit Vorgangsabschluss) |
"Station" | type=int | (Station Vorgangsabschluss) |
"TotalAmount" | type=double | (Vorgangssumme Brutto) |
"TIP" | type=double | (Vorgangssumme Trinkgeld) |
"Expenses" | type=double | double (Vorgangssumme ggfls. Auslagen) |
"InterfaceRef" | type=int | (Interne Vorgangsnummer) |
"DocumentPrefix" | type=string | (Rechnungsprefix , z.B. RG) |
"DocumentNo" | type=int | (Rechnungsnummer) |
"NetAmount" | type=double | (Vorgangssumme Netto) |
"Vat1Sum" | type=double | (MWST Summe 1) |
"Vat1Val" | type=double | (MWST Satz 1) |
"Vat2Sum" | type=double | (MWST Summe 2) |
"Vat2Val" | type=double | (MWST Satz 2) |
"Vat3Sum" | type=double | (MWST Summe 3) |
"Vat3Val" | type=double | (MWST Satz 3) |
"Vat4Sum" | type=double | (MWST Summe 4) |
"Vat4Val" | type=double | (MWST Satz 4) |
"NoCOOPin" | type=int | (Pin für den Zugang zur NoCOO Rechnung) |
"NoCOOCode" | type=string | (Code für den Zugang zur NoCOO Rechnung) |
"DeliveryBookID" | type=string | (BuchungsID (siehe „BookTransaction“) |
"TSETxt" | type=string | (ggfls. TSE Signaturtext Deutschland) |
"TSEQR" | type=string | (ggfls. TSE QRCode Inhalt Deutschland) |
"SigAUQR" | type=string | (ggfls. Signatur Österreich) |
"TransactionStatus" | type=string | (D=Day/vor Z - F=Festgeschrieben/nach Z) |
Abruf von allen offenen Vorgängen:
DataTable GetOpenTable(string Company, string SerialNumber)
Rückmeldung DataSet: | ||
"KellnerNr" | type=int | (Bediener / EmpID aus Stammdaten) |
"TischNr" | type=int | (Tischnummer/ Vorgangsnummer) |
"Ebene" | type=short | (Preisebene) |
"Menge" | type=int | (Anzahl des Artikels) |
"Preis" | type=double | (Einzelpreis) |
"MWST_Satz" | type=double | (MWST Satz) |
"OrderBonIsPrinted" | type=unsignedByte | (Orderbon ist gedruckt 0=Nein >0=Ja) |
"MWST_Stufe" | type=unsignedByte | (0=unbestimmt 1=Inhaus 2=Außer Haus) |
"TraceNo" | type=int | (eindeutige TraceID) |
"ValidDate" | type=int | (Gültigkeitsdatum bei Tickets) |
"LinkedID1" | type=int | (Beilage1 RezID aus Stammdaten) |
Bis | ||
"LinkedID64" | type=int | (Beilage64 RezID aus Stammdaten) |
"ProductID" | type=int | (PID) |
"Source" | type=int | (Buchungsquelle, Tabelle folgt) |
"BookInfo" | type=string | (freier Text) |
"Bontext" | type=string | (Bontext1) |
"TagesDatum" | type=int | (Buchungsdatum) |
"TagesZeit" | type=int | (Buchungszeit) |
"ConsecutiveNumber" | type=int | (lfd Bonnummer Superheldenfunktion) |
"ConsecutiveInfo" | type=string | (lfd Bonnummerntext Superheldenfunktion) |
"TischOwner“ | type=int32 | (Vorgangsbesitzer / EmpID aus Stammdaten) |
„EmpName“ | type=string | (Bedienername) |
„OwnerEmpName“ | type=string | (Vorgangsbesitzer Name) |
„RecordPosition“ | type=int32 | (eindeutige Artikelposition im Vorgang / evtl. notwendig, wenn das Splitten möglich wird) |
„SupplementsTxt“ | type=string | (alle Beilagen als Text / für eine schnelle Anzeige) |
DataTable GetOpenTableBySelection(string Company, string SerialNumber, string SelectionTable)
Wie GetOpenTable jedoch für einen SelectionTable (Tischnummer).
Abruf von abgerechneten Vorgängen:
DataTable GetTransactionDT(string Company, string SerialNumber, string LastTransactionID, int DateFrom, int TimeFrom, int DateTo, int TimeTo)
Rückmeldung DataTable: | ||
"TransactionID" | type=int | (eindeutige ID aus Tabelle) |
"SysDate" | type=int | (Vorgangsabschluss Datum) |
"SysTime" | type=int | (Vorgangsabschluss Zeit) |
"TableNo" | type=int | (Tischnumer/Vorgangsnummer) |
"CashEmpID" | type=int | (Kassierer EmpID siehe Stammdaten) |
"Station" | type=short | (Vorgangsabschluss Station) |
"CashEmpTxt" | type=string | (Bedienername / Alias) |
"TerminalTxt" | type=string | (Stationsname) |
"TabPrefix" | type=string | (D=Day oder F=festgeschrieben) |
DataSet GetTransactionDS(string Company, string SerialNumber, string LastTransactionID, int DateFrom, int TimeFrom, int DateTo, int TimeTo)
Wie GetTransactionDT, jedoch als Rückmeldung DataSet
string GetTransactionStr(string Company, string SerialNumber, string LastTransactionID, int DateFrom, int TimeFrom, int DateTo, int TimeTo)
Wie GetTransactionDT, jedoch als Rückmeldung string. Rückmeldung string:
TransactionID|SysDate|SysTime|TableNo|CashEmpID|Station|CashEmpTxt|TerminalTxt|TabPrefix
Abruf von abgeschlossenen Vorgängen für einen Öffnungstag:
DataSet GetTransactionsFromOpenDate(string Company, string SerialNumber, string Last_YYYYMMTT_Date)
Rückmeldung DataSet: (3 Tabellen) Tabelle1 „Journal“ |
||
"TransactionID" | type=int | (eindeutige ID aus Tabelle) |
"SysDate" | type=int | (Vorgangsabschluss Datum) |
"SysTime" | type=int | (Vorgangsabschluss Zeit) |
"OpenDate" | type=int | (Öffnungstag) |
"TTADate" | type=int | (TTA) |
"TableNo" | type=int | (Tischnummer/Vorgansnummer) |
"TableType" | type=int | (Vorgangstyp 0=Tisch 1=Kunde 2=Debit 3=Mitarbeiter) |
"ObjNo" | type=int | (Tisch/Kunde/Mitarbeiter) |
"ObjType" | type=int | (Legende folgt) |
"ProductID" | type=int | (Artikel PID) |
"Quant" | type=double | (Anzahl Artikel) |
"Price" | type=double | (Einzelpreis) |
"ItemText" | type=string | (Bontext1) |
"Vat" | type=double | (MWST Satz) |
"EmpID" | type=int | (Bediener EmpID siehe Stammdaten) |
"CashEmpID" | type=int | (Kassierer EmpID siehe Stammdaten) |
"Station" | type=short | (Vorgangsabschluss Station) |
"Source" | type=int | (0 bis 255 Legende folgt) |
"TablePrefix" | type=string | (D=Day F=festgeschrieben) |
"OrgObjNo" | type=string | (intern) |
Tabelle2 „Payment“ |
||
"TransactionID" | type=int | (siehe Tabelle Journal) |
"SysDate" | type=int | (siehe Tabelle Journal) |
"SysTime" | type=int | (siehe Tabelle Journal) |
"OpenDate" | type=int | (siehe Tabelle Journal) |
"TTADate" | type=int | (siehe Tabelle Journal) |
"TableNo" | type=int | (siehe Tabelle Journal) |
"TableType" | type=int | (siehe Tabelle Journal) |
"ObjNo" | type=int | (siehe Tabelle Journal) |
"ObjType" | type=int | (siehe Tabelle Journal) |
"PaySum" | type=double | (Zahlungssumme) |
"MainCurSum" | type=double | (Summe in Hauptwährung bei Fremdwährung) |
"PayType" | type=short | (Zahlungstyp als Nummer) |
"TitlePayType" | type=string | (Zahlungstyp als Text (z.B. Kredit/Bar)) |
"CurrencyID" | type=int | (Währungsindex) |
"TitleLong" | type=string | (Zahlungsart) |
"ExternalInfo" | type=string | (optionale Nummer z.B. Kundenname) |
"CashEmpID" | type=int | (siehe Tabelle Journal) |
"Station" | type=short | (siehe Tabelle Journal) |
"Status" | type=int | (0=Std 2=Trinkgeldgegenbuchung usw.) |
"TablePrefix" | type=string | (siehe Tabelle Journal) |
"OrgObjNo" | type=string | (siehe Tabelle Journal) |
Tabelle3 „Invoice“ |
||
"TransactionID" | type=int | (siehe Tabelle Journal) |
"SysDate" | type=int | (siehe Tabelle Journal) |
"SysTime" | type=int | (siehe Tabelle Journal) |
"OpenDate" | type=int | (siehe Tabelle Journal) |
"TTADate" | type=int | (siehe Tabelle Journal) |
"DocumentPrefix" | type=string | (Rechnungskürzel z.B.„RG“) |
"DocumentNo" | type=int | (Rechnungsnummer) |
"Station" | type=int | (siehe Tabelle Journal) |
"TablePrefix" | type=string | (siehe Tabelle Journal) |
Abruf von abgeschlossenen Vorgängen für einen TTA Tag:
DataSet GetTransactionsFromTTADate(string Company, string SerialNumber, string Last_YYYYMMTT_Date)
Rückmeldung DataSet: (3 Tabellen)
Wie GetTransactionsFromOpenDate.
Abruf eines Vorganges mit der gleichen MediaID wie im „BookTransaction“ für Sindervorgänge, die mit einem Pager gekoppelt sind.
DataSet GetMediaInfo(string Company, string SerialNumber, string MediaID)
Rückmeldung DataSet: | ||
"MediaID" | type=string | (übergebene MediaID) |
"OfficerMediaID" | type=string | (Vorgang am POS) |
"CreditLimit" | type=string | (ggfls. Limit aus Card Tabelle) |
"UsingValue" | type=string | (aktuelle Vorgangssumme) |
"Balance" | type=string | (Limit - Vorgangssumme) |
"GroupNumber" | type=string | (ggfls. Gruppe wenn Pager im Einsatz ist) |
"PagerNumber" | type=string | (ggfls. Nummer vom Pager wenn Im Einsatz) |
"OwnerName" | type=string | (ggfls. Name des Pagers) |
"InactiveDate" | type=string | (-1 ohne Angabe ansonsten Datum in JJJJMMTT) |
"IsWaiter" | type=string | (1 = Bedienerpager ansonsten 0 |
"IsManager" | type=string | (1 = Managerpager ansonsten 0) |
Abruf einer Kartentransaktion anhand der Kartennummer:
DataTable GetMediaIDTransaction(string Company, string SerialNumber, string MediaID)
Rückmeldung DataTable: | ||
"MediaID" | type=string | (übergebene MediaID) |
"TableName" | type=string | (POS Vorgang) |
"TMaxValue" | type=double | (ggfls. Limit der Karte) |
"TValue" | type=double | (Vorgangssumme) |
"TItemCount" | type=int | (Anzahl Artikel im Vorgang) |
"Losses" | type=int | (ggfls. Verlustgrund der Karte >0) |
"PriceLevel" | type=int | (ggfls. Preisebene der Karte >0) |
"Discount" | type=double | (ggfls. Rabattsatz der Karte >0) |
"Status" | type=string | (OK oder Error:xxxx) |
DataTable GetMediaIDBookings(string Company, string SerialNumber, string MediaID)
Abruf eines Kartenvorganges anhand der Kartennummer.
Rückmeldung DataTable:
(interne Vorgangsstruktur für GOT (Guest Order Terminal).
eSolutions API Rechnungen splitten Code
Wenn Sie mit Splitting arbeiten erfordert und ermöglicht das POS System ergänzende Einstellungen, sehen Sie hierfürErgänzende Splitting Einstellungen für die eSolutions API...
Die zu verwendenden Funktionen aus der e-Commerce Schnittstelle sind folgende...
public DataSet SplittTransaction(string Company, string SerialNumber, string MediaID, DataSet dsSplittings)
oder
public DataSet SplittTransactionStr(string Company, string SerialNumber, string MediaID, string strSplittings)
Die Vorgaben für Company und SerialNumber sind die gleichen wie auch schon für andere Funktionen.
Die MediaID ist wie folgt zu verwenden:
TNR:ttt.pp|ZA:x=y.yy
ttt.pp = Tisch und optional Platznummer
x = WährungsID (CurrencyID)
y.yy = Betrag. (Überzahlung wird in Trinkgeld gewandelt)
Optional können auch hier in der MediaID die Kundeninforationen wie Mail, Telefon und Name, Vorname und Adresse übergeben werden. Der gesplittete Teil wird dann auf den übergebenen Kunden abgerechnet. (Siehe Inhalt MediaID bei BookingTransaction und BookingTransactionStr)
Der Dateninhalt von dsSplitting ist wie folgt: | ||
„Amount“ | type=int | die zu splittende Menge des Artikels * |
„RecordPosition“ | type=int | eindeutige Datensatznummer * |
* Daten aus dem Abruf über Funktion „GetOpenTableBySelection“
Alternativ können die Daten auch in Form einer Zeichenkette mit der Funktion „SplittTransactionStr“ übergeben werden.
Hier gelten folgende Regeln:
Amount|RecordPosition;
z.B. 2|112; -> 2 mal Artikel an Position 112 splitten.
eSolutions API Abrufen und Prüfen von Stammdaten
Unterschiedliche Stammdatenabrufe und -Prüfungen.

Diese Funktion ermöglicht das Prüfen auf eine Veränderung des zuletzt abgerufenen Artikelstammes:
string StatusRequest(string fpRequest)
Mit der Übergabe „NIL“ kann NewItemLayout abgefragt werden und im Falle eines zwischenzeitlich geänderten Artikelstammes bekommt man ein NIL zurückgemeldet.
Eine Information zu Layout-Umschaltungen ist ebenfalls möglich, hierzu sendet man einen leeren String und bekommt das aktuelle Layout zurück gemeldet. Im Standard ist das „L1“. Eine gewünschte Umschaltung muss der Partner jedoch selber treffen. Die e-Commmerce Schnittstelle liefert hier nur eine Layoutnummer.
Rückmeldung string:
L1 bis Lx, NIL oder leer

DataSet GetPriceLevels(string Company, string SerialNumber)
Rückmeldung DataSet: | ||
"PENo" | type=int | (Preisebenennummer 0=Standard) |
"PEName" | type=string | (Preisebenenname) |

DataSet GetPaymentMethod(string Company, string SerialNumber)
Rückmeldung DataSet: | ||
"ID" | type=int | (CurrencyID) |
"TitleLong" | type=string | (Zahlungsartentext) |
"Title" | type=string | (Zahlungsartenkurztext) |
"InBaseCrcyFak" | type=double | (Umrechnungsfaktor für Fremdwährung) |
"ForBaseCrcyFak" | type=double | (Umrechnungsfaktor Variante2) |
"IsPrimary" | type=short | (Hauptwährung 1=Ja 0=Nein) |
"IsSecondary" | type=short | (Währung 1=Ja 0=Nein) |
Hauptwährung = 0 Währung = 1 und Umrechnungsfaktor nicht 1 bedeutet Fremdwährung.
string GetPaymentMethodJson(string Company, string SerialNumber)
Funktion zum Abrufen von Zahlungsarten. (Währungstabelle) Wie GetPaymentMethod jedoch als json string
Rückmeldung json string:

DataSet GetVoucher(string Company, string SerialNumber)
Rückmeldung DataSet: | ||
"ID" | type=int | (eindeutige Tabellen ID) |
"Name" | type=string | (Gutscheinname) |
"GET_ITEM" | type=int | (ggfls. Artikelzuordnung) |
"BEGIN_USED" | type=int | (Gültig ab) |
"END_USED" | type=int | (Gültig bis) |
"FIX_VOLUME" | "FIX_VOLUME" | x (Fester Wert) |
"ADD_VOLUME" | type=double | (Bonuswert) |
"Auto_Volume" | type=double | (Prozentwert der Rechnungssumme) |
"Auto_MinVolume" | type=double | (ab mind. Rechnungssumme) |
"Auto_MaxVolume" | type=double | (bis max. Rechnungssumme) |
"DAY_USED_TYP" | type=unsignedByte | (Gültigkeit in Tagen 0=unbegrenzt) |
"USINGTYPE" | type=unsignedByte | (Gutscheintypen 4=Web 2=Wert usw.) |
"ItemFactor" | type=int | (Artikelfixfaktor) |
"ItemMinFactor" | type=int | (min Artikelfaktor) |
"ItemMaxFactor" | type=int | (max Artikelfaktor) |
"CurrencyID" | type=int | (Währungsindex CurrencyID) |
"SortimentA" | type=unsignedByte | (Ist im Sortiment A 1=Ja 0=Nein) |
"SortimentB" | type=unsignedByte | (Ist im Sortiment B 1=Ja 0=Nein) |
"SortimentC" | type=unsignedByte | (Ist im Sortiment C 1=Ja 0=Nein) |
"SortimentD" | type=unsignedByte | (Ist im Sortiment D 1=Ja 0=Nein) |
"IsActivWebvoucher" | type=short | (Kennzeichnung ist Portalgutschein) |
"ItemFoto" | type=string | (Artikelfoto Bildkanal 1) |
"FotoData" | type=string | (Foto Bildkanal 1) |
"FotoData10" | type=base64Binary | (Foto YourAPP 1) |
"FotoData11" | type=base64Binary | (Foto YourAPP 2) |
"FotoData12" | type=base64Binary | (Foto YourAPP 3) |
"FotoData13" | type=base64Binary | (Foto YourAPP 4) |
"FotoData14" | type=base64Binary | (Foto YourAPP 5) |

DataSet GetVoucherValues(string Company, string SerialNumber, string VoucherNumber)
Rückmeldung DataSet: | ||
"Status" | type="xs:string | (OK oder Error) |
"VoucherNumber" | type="xs:string | (Gutscheinnummer) |
"VoucherName" | type="xs:string | (Gutscheinname) |
"VoucherID" | type="xs:int | (Gutschein ID) |
"PaymentID" | type="xs:int | (Zahlungsart CurrencyID) |
"Amount" | type="xs:int | (Aktueller Wert) |
"Discount" | type="xs:double | (ggfls. Rabattprozente) |

string GetBlacklist(string Company, string SerialNumber)
Rückmeldung string:
Liste der PID’s mit | (Pipe) getrennt.

DataSet GetTerminalInfo()
Rückmeldung DataSet: | ||
"TerminalNumber" | type=short | (Stationsnummer) |
"TerminalName" | type=string | (Stationsname) |
"TerminalType" | type=string | (Stationstyp Kassenstation, Küchenstation usw.) |

DataSet GetEmployee(string Company, string SerialNumber)
Rückmeldung DataSet: | ||
"ID" | type=int | (Interne Bedienernummern (EmpID)) |
"Name" | type=string | type=string |
"FName" | type=string | (Bedienervorname) |
"Alias" | type=string | (Bediener Alias) |
"RevierVon" | type=int | (Tischrevier von) |
"RevierBis" | type=int | (Tischrevier bis) |
"ZugangAlleTische" | type=unsignedByte | (Hat Zugang zu allen Tischen) |
"AutoKeyNr" | type=short | (Automatische Abmeldung nach Zeit) |
"CardUID" | type=string | (Bedienerschlüssel) |
"OrigKey" | type=string | () |
"EmpFoto" | type=string | (Mitarbeiterfoto) |
"FotoLink" | type=string | (LINK auf Foto) |
"FotoData" | type=base64Binary | (Fotodaten) |

DataSet GetEmployee3(string Company, string SerialNumber)
string CheckEmployee(string Company, string SerialNumber, string EmpID, string PNumber, string MediaID)

Rückmeldung string:
OK oder NoOwner
DataSet GetCus(string Company, string SerialNumber, int CusID)

Rückmeldung DataSet:
Alle aktuellen Felder aus der Kundendatenbank. Name, Vorname, Adresse etc. als DataSet
string GetStrCus(string Company, string SerialNumber, int CusID)
Rückmeldung string:
Alle aktuellen Felder aus der Kundendatenbank. Name, Vorname, Adresse etc. als string
Abruf der Rundungsparameter für Rabatt
Sie können die Vorgaben der eingestellten Rabattrundung abrufen. Diese Einstellungen werden häufig von Kunden individuell genutzt. Rückgabe ist ein DataTable "RoundingInfo"
DataTable GetRoundingInfo(string Company, string SerialNumber)
"RoundingMode" | NONE, NORMAL, UP, DOWN | |
"RoundingPosition" | 1=nur eine Nachkommastelle |
2=bis zweite Nachkommastelle |
"RoundingDigit0" | ZIFFER 0 | 0=NEIN, 1=JA |
"RoundingDigit1" | ZIFFER 1 | 0=NEIN, 1=JA (je Nachkommastelle 1 Cent oder 10 Cent) |
"RoundingDigit2" | ZIFFER 2 | 0=NEIN, 1=JA (je Nachkommastelle 1 Cent oder 10 Cent) |
"RoundingDigit3" | ZIFFER 3 | 0=NEIN, 1=JA (je Nachkommastelle 1 Cent oder 10 Cent) |
"RoundingDigit4" | ZIFFER 4 | 0=NEIN, 1=JA (je Nachkommastelle 1 Cent oder 10 Cent) |
"RoundingDigit5" | ZIFFER 5 | 0=NEIN, 1=JA (je Nachkommastelle 1 Cent oder 10 Cent) |
"RoundingDigit6" | ZIFFER 6 | 0=NEIN, 1=JA (je Nachkommastelle 1 Cent oder 10 Cent) |
"RoundingDigit7" | ZIFFER 7 | 0=NEIN, 1=JA (je Nachkommastelle 1 Cent oder 10 Cent) |
"RoundingDigit8" | ZIFFER 8 | 0=NEIN, 1=JA (je Nachkommastelle 1 Cent oder 10 Cent) |
"RoundingDigit9" | ZIFFER 9 | 0=NEIN, 1=JA (je Nachkommastelle 1 Cent oder 10 Cent) |
Lagerbestand und Warenwirtschaft
Funktion zum Abruf alles Verkaufsstellen/Lager
DataTable GetStockInfo(string Company, string SerialNumber)
Rückmeldung DataTable:
"StockID" type=int (Verkaufsstellen ID bzw. Hauptlager ID)
"StockName" type=string (Verkaufsstellenname bzw. Lagername)
Funktion zum Abruf alles Verkaufsstellen/Lager wie GetStockInfo jedoch als json string
string GetStockInfoJson(string Company, string SerialNumber)
Rückmeldung json string:
Funktion zum Abruf des Bestands
Bestand des Lager bzw. VK Stellen Bestand eines oder mehrere Artikel durch | (Pipe) getrennt. Z.B. 1|2|100 = Abruf von drei Artikeln.
DataTable GetProdStock(string Company, string SerialNumber, string ProductIDs, int StockID)
Rückmeldung DataTable:
"ProductID" type=int (Artikel PID)
"ItemNumber" type=int (Artikelnummer)
"ProductName" type=string (Artikelname)
"CurrentQuant" type=double (aktueller Bestand)
Funktion zum Abruf des Bestands als JSON String
Bestand des Lager bzw. VK Stellen Bestand eines oder mehrere Artikel genau wie GetProdStock jedoch als json string.
string GetProdStockJson(string Company, string SerialNumber, string ProductIDs, int StockID)
Rückmeldung json string:
Funktion zum Abruf aller Verfügbarkeitsartikel.
DataSet GetBaseItems(string Company, string SerialNumber)
Rückmeldung DataTable:
"ProductID" type=int (Artikel ID PID)
"Quant" type=int (aktuelle Verfügung)
Funktion zum Abruf der verfügbaren Menge
Verfügbare Menge eines oder mehrere Artikel durch | (Pipe) getrennt. Z.B. 1|2|100 = Abruf von drei Artikeln.
string GetBaseStock(string Company, string SerialNumber, string ProductIDs)
Rückmeldung string:
10|9999|12
Wenn ein Artikel keine Verfügbarkeit besitzt wird vorsorglich eine Menge von 9999 zurückgemeldet.
SetProdStock Vorerst ist diese Funktion aus Sicherheitsgründen deaktiviert.
string SetProdStock(string Company, string SerialNumber, string StockItems)
Die folgenden Funktionen geben die DeliveryID in den Daten zurück, wenn der Vorgang über den OnlineOrder Connector ( e-Commerce Schnittstelle ) gebucht wurden.
GetTransactionDS
"DeliveryID" type=int (ID der OnlineOrder)
GetTransactionStr
"DeliveryID" type=int (ID der OnlineOrder in allen Tabellen)
GetTransactionsFromTTADate
"DeliveryID" type=int (ID der OnlineOrder in allen Tabellen)
GetTransactionsFromTTADate2
"DeliveryID" type=int (ID der OnlineOrder in allen Tabellen)
GetTransactionsFromOpenDate
"DeliveryID" type=int (ID der OnlineOrder in allen Tabellen)
GetTransactionsFromOpenDate2
"DeliveryID" type=int (ID der OnlineOrder in allen Tabellen)
Superheldenfunktion Funktionen
Die folgenden Funktionen geben die Superheldennummer / Superheldennamen in den Daten zurück.
Ab sofort auch wenn die Vorgänge bereits durch das POS System abgeschlossen wurden. (also nicht mehr nur in offenen Vorgängen)
GetDeliveryInfo
"ConsecutiveNumber" type=int (lfd Bonnummmer Superheldenfunktion)
"ConsecutiveInfo" type=string (lfd Bonnummerntext Superheldenfunktion)
GetTransactionDS
"ConsecutiveNumber" type=int (lfd Bonnummmer Superheldenfunktion)
"ConsecutiveInfo" type=string (lfd Bonnummerntext Superheldenfunktion)
GetTransactionStr
"ConsecutiveNumber" type=int (lfd Bonnummmer Superheldenfunktion)
"ConsecutiveInfo" type=string (lfd Bonnummerntext Superheldenfunktion)
GetTransactionsFromTTADate
"ConsecutiveNumber" type=int (lfd Bonnummmer Superheldenfunktion)
"ConsecutiveInfo" type=string (lfd Bonnummerntext Superheldenfunktion)
GetTransactionsFromTTADate2
"ConsecutiveNumber" type=int (lfd Bonnummmer Superheldenfunktion)
"ConsecutiveInfo" type=string (lfd Bonnummerntext Superheldenfunktion)
GetTransactionsFromOpenDate
"ConsecutiveNumber" type=int (lfd Bonnummmer Superheldenfunktion)
"ConsecutiveInfo" type=string (lfd Bonnummerntext Superheldenfunktion)
GetTransactionsFromOpenDate2
"ConsecutiveNumber" type=int (lfd Bonnummmer Superheldenfunktion)
"ConsecutiveInfo" type=string (lfd Bonnummerntext Superheldenfunktion)
Interne Hypersoft Funktionen
Veraltet für PayPal Picture Payment.
string GetBillViaHSCode(string HSCode)
string PayPalBillViaHSCode(string HSCode, string tabID, string customerID, string locationID, double PaySum)
string SetRating(string Company, string SerialNumber, string MediaID, string strRating)
Aktuell nur intern für Deliverect Integration
string CheckItemPicturePath(int CountPicturePath)
string GetItemPicturePath()
static string GetOrSetPictureStatus(int SetDate, int SetTime, int Mode)
Zurück zur übergeordneten Seite: 3rd Party eSolution Entwicklung