eSolution 3rd Party API Code

Microsoft .NET C# - WebService / SOAP

The referencing data types DataSet + DataTable are Microsoft-specific data types that are represented in standard XML streams.

Principle of data access...

The eSolutions interface runs internally under the name HSWebBL and can therefore be accessed as HSWebBL.asmx.

On the test computer (virtual machine) the service is available locally under the following URL "http: //localhost/HSWebBL/HSWebBL.asmx".

Depending on which local IP the test computer has received in its network, the service can be reached at "http://xxx.xxx.xxx.xxx/HSWebBL/HSWebBL.asmx" (xxx.xxx.xxx.xxx = local IP address of the test cash register in the LAN. (e.g. 192.168.1.200).

By default, you create a communication programme that runs in the respective location and establishes the connection to your product. Otherwise, you could access the local IIS via a port share from the outside (this is not a service of Hypersoft).

Basic information on the retrieval of item master data

Foreword to safety:

There are several functions that need or require the parameter Company and SerialNumber. Here, specifications have been defined for each partner and announced with the LOI from Hypersoft. Every partner who wishes to use the eSolutions connection is bound by these specifications and must ensure that they are included in their interface. Without valid transmission of these two parameters, requests may have to be answered negatively.

Global functions

Initialise web service

string WebServiceInitialize()

This function is used to initialise the WebService and should be executed once after restarting the partner application.

To be on the safe side, this function is also executed automatically in the background during a data retrieval or booking process, if this has not already been executed by the partner after a restart of the IIS.

The sending IP is checked and, if necessary, a new IP is added. a station is created or prepared in the hypersoft system. If, then another ward is created behind the highest ward number of the system with the name "SOT". This new station is based on the highest station number in terms of outlet assignment and thus uses its defaults.

Feedback string:

WebService 'HSWebBL' is running. Your IP: xxx:xxx:xxx:xxx Main TerminalNumber: 1 RetStatus: Branch: 1 Your TerminalNumber: 101 Your StockID: 9 StockName: Your trading area

 

DataSet example

Serves as an example to illustrate the structure of the DataSet for bookings. DataSet is delivered as XML.

DataSet GetExample()

Feedback DataSet: (for description see also BookTransaction)

"Amount" type=int (number)
"ProductID" type=int (PID unique ProductID / DB ID)
"Price" type=double (Sales price)
"Linked" type=int (price level)
"PE" type=int (RezID from side)
"FT" type=string (Free text info)
"IHAH" type=string (IH=InHouse AH=outside House)
"FreeBontext" type=string (optional for tickets)
"Discount" type=double (Booking info (internal))

string CallService(string Company, string SerialNumber, string fpMessage, string MediaID)

Can only be used in conjunction with a booking process including pager assignment.

(If required, please contact Hypersoft Support)

 

Optional functions

Check advertising service

string WebServicePing()

Feedback string:

OK Your IP: xxx:xxx:xxx:xxx

 

Check version

string GetECommerceVersion()

Feedback string:

2017.1.39.0 (Status:March 2021)

 

Free ID for protocol

string ProtocolTransactionStart()

Feedback string:

ID:0 (A free ID to the logbook, starting with 0)

(The ID is required for ProtocolTransactionStop)

 

Retrieve protocol

void LogTransactionLog(string LogInfo)

All log information is cached under the last generated ID until "LogTransactionStop" is executed.

string ProtocolTransactionStop(string ID, string MailAddress)

Send all cached log entries to the passed mail address and close the ID.

Feedback string:

OK or in case of error Error:xxxx

Determining the Hypersoft customer number of the location

public string GetHypersoftCustomerNumber(string Company, string SerialNumber)

A string with the following content is returned:

OK:12345 or in case of error error:...

eSolutions API Item data / master data GetItemData

Please note: The Hypersoft POS system does not work directly in the item data but creates a working copy of the item data for this purpose. This working copy is also used for the eSolutions interface. See the description of the item master in the chapter Processing during operationfor the background.

The following functions provide the current item master of the cash register...

The functions GetItemData to GetItemData10 return the item master in different forms. Different parameters can determine the content of the data and, depending on the function selected, return the item master in a different data structure.

Related topics: Price levels with 3rd parties, Item and processes with 3rd parties

E.g. DataSet, JSON or also as a pure string (the return type is always in front of the function). DataSet is delivered as XML.

 

 

DataSet Returns...

The return as DataSet varies in content (fields) depending on the method. See DataSet Types (DataSet Type1, Type2 and Type3). DataSet is delivered as XML. Returning the item in the case as string is the smallest and simplest method and offers only a few fields. Therefore, the affected methods are no longer recommended for new integrations and will only continue to be included for compatibility reasons.

The following fields are returned for type string:

ProductID;Bontext1;Artikel_Name;Preis;HGR_Nr;HGR_Name;WGR_Nr;WGR_Name;UGR_Nr;UGR_Name;TicketTyp;TicketFaktor

The fields are separated by a semicolon and each item is separated from the next item by a CR\LF.

 

 

 

 

 

 

 

 

 

 

 

 

eSolutions API booking methods

DataSet BookTransaction(string Company, string SerialNumber, string MediaID, DataSet dsBooking)

string MediaID Valid field contents:

Each field consists of a name followed by a colon ":" and the passed value x, making sure that the characters | (pipe) and (colon) are not included in the passed values. Each parameter within the MediaID must be terminated with the | (pipe) character as a separator.

Special feature: The first parameter in the transfer decides the process type.

 

 

 

Retrieve eSolutions API processes

 

 

eSolutions API Split Invoices Code

If you work with splitting and the POS system requires and enables supplementary settings, see SupplementaryAdditional splitting settings for the eSolutions API.....

The functions to be used from the e-commerce interface are as follows....

public DataSet SplittTransaction(string Company, string SerialNumber, string MediaID, DataSet dsSplittings)

or

public DataSet SplittTransactionStr(string Company, string SerialNumber, string MediaID, string strSplittings)

The specifications for Company and SerialNumber are the same as for other functions.

The MediaID is to be used as follows:

TNR:ttt.pp|ZA:x=y.yy

ttt.pp = table and optionally seat number

x = CurrencyID (CurrencyID)

y.yy = amount. (Overpayment will be converted into tip)

Optionally, the customer information such as e-mail, telephone and surname, first name and address can also be transferred here in the MediaID. The split part is then billed to the transferred customer. (See content MediaID for BookingTransaction and BookingTransactionStr)

The data content of dsSplitting is as follows:    
"Amount" type=int the quantity of the item to be split *
"RecordPosition" type=int unique record number *

* Data from the retrieval via function "GetOpenTableBySelection

Alternatively, the data can also be transferred in the form of a string with the function "SplittTransactionStr".

The following rules apply here:

Amount|RecordPosition;

e.g. 2|112; -> Split 2 times items at position 112.

eSolutions API Retrieving and checking master data

 

Different master data retrievals and checks.

 

 

 

 

 

 

 

 

 

Retrieve rounding parameters for discount

You can call up the specifications of the set discount rounding. These settings are often used individually by customers. Return is a DataTable "RoundingInfo".

DataTable GetRoundingInfo(string Company, string SerialNumber)

"RoundingMode" NONE, NORMAL, UP, DOWN  
"RoundingPosition" 1=only one decimal place

2=to second decimal place

"RoundingDigit0" FIGURE 0 0=NO, 1=YES
"RoundingDigit1" FIGURE 1 0=NO, 1=YES (1 cent or 10 cents per decimal place)
"RoundingDigit2" FIGURE 2 0=NO, 1=YES (1 cent or 10 cents per decimal place)
"RoundingDigit3" FIGURE 3 0=NO, 1=YES (1 cent or 10 cents per decimal place)
"RoundingDigit4" FIGURE 4 0=NO, 1=YES (1 cent or 10 cents per decimal place)
"RoundingDigit5" FIGURE 5 0=NO, 1=YES (1 cent or 10 cents per decimal place)
"RoundingDigit6" FIGURE 6 0=NO, 1=YES (1 cent or 10 cents per decimal place)
"RoundingDigit7" FIGURE 7 0=NO, 1=YES (1 cent or 10 cents per decimal place)
"RoundingDigit8" FIGURE 8 0=NO, 1=YES (1 cent or 10 cents per decimal place)
"RoundingDigit9" FIGURE 9 0=NO, 1=YES (1 cent or 10 cents per decimal place)

Inventory and merchandise management

Function to call up all outlets/warehouses

DataTable GetStockInfo(string Company, string SerialNumber)

Feedback DataTable:

"StockID" type=int (sales outlet ID or main warehouse ID)

"StockName" type=string (trading area name or stock name)

 

Function to retrieve all sales points/stocks like GetStockInfo but as json string

string GetStockInfoJson(string Company, string SerialNumber)

Feedback json string:

 

Function to retrieve the stock

Stock of the warehouse or sales places Stock of one or more items separated by | (pipe). E.g. 1|2|100 = retrieval of three items.

DataTable GetProdStock(string Company, string SerialNumber, string ProductIDs, int StockID)

Feedback DataTable:

"ProductID" type=int (Item PID)

"ItemNumber" type=int (item number)

"ProductName" type=string (item name)

"CurrentQuant" type=double (current stock)

 

Function to retrieve the stock as JSON string

Stock of the warehouse or sales places stock of one or more items exactly like GetProdStock but as a json string.

DataTable GetProdStock(string Company, string SerialNumber, string ProductIDs, int StockID)

Feedback json string:

 

Function to retrieve all availability items.

DataSet GetBaseItems(string Company, string SerialNumber)

Feedback DataTable:

"ProductID" type=int (Item ID PID)

"Quant" type=int (current available)

 

Function for calling up the available quantity

Available quantity of one or more items separated by | (pipe). E.g. 1|2|100 = retrieval of three items.

string GetBaseStock(string Company, string SerialNumber, string ProductIDs)

Feedback string:

10|9999|12

If an item has no availability, a quantity of 9999 is reported as a precaution.

 

SetProdStock For the time being, this function is deactivated for security reasons.

string SetProdStock(string Company, string SerialNumber, string StockItems)

DeliveryID functions

The following functions return the DeliveryID in the data if the transaction was booked via the OnlineOrder Connector (e-commerce interface).

GetTransactionDS

"DeliveryID" type=int (ID of the OnlineOrder)

GetTransactionStr

"DeliveryID" type=int (ID of the OnlineOrder in all tables)

GetTransactionsFromTTADate

"DeliveryID" type=int (ID of the OnlineOrder in all tables)

GetTransactionsFromTTADate2

"DeliveryID" type=int (ID of the OnlineOrder in all tables)

GetTransactionsFromOpenDate

"DeliveryID" type=int (ID of the OnlineOrder in all tables)

GetTransactionsFromOpenDate2

"DeliveryID" type=int (ID of the OnlineOrder in all tables)

Superhero function Functions

The following functions return the superhero number / superhero name in the data.

From now on, even if the transactions have already been completed by the POS system. (i.e. no longer only in open processes)

GetDeliveryInfo

"ConsecutiveNumber" type=int (running Bonnummmer superhero function)

"ConsecutiveInfo" type=string (consecutive number text superhero function)

GetTransactionDS

"ConsecutiveNumber" type=int (running Bonnummmer superhero function)

"ConsecutiveInfo" type=string (consecutive number text superhero function)

GetTransactionStr

"ConsecutiveNumber" type=int (running Bonnummmer superhero function)

"ConsecutiveInfo" type=string (consecutive number text superhero function)

GetTransactionsFromTTADate

"ConsecutiveNumber" type=int (running Bonnummmer superhero function)

"ConsecutiveInfo" type=string (consecutive number text superhero function)

GetTransactionsFromTTADate2

"ConsecutiveNumber" type=int (running Bonnummmer superhero function)

"ConsecutiveInfo" type=string (consecutive number text superhero function)

GetTransactionsFromOpenDate

"ConsecutiveNumber" type=int (running Bonnummmer superhero function)

"ConsecutiveInfo" type=string (consecutive number text superhero function)

GetTransactionsFromOpenDate2

"ConsecutiveNumber" type=int (running Bonnummmer superhero function)

"ConsecutiveInfo" type=string (consecutive number text superhero function)

Internal Hypersoft functions

Deprecated for 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)

 

Currently only internal for Deliverect Integration

string CheckItemPicturePath(int CountPicturePath)

string GetItemPicturePath()

static string GetOrSetPictureStatus(int SetDate, int SetTime, int Mode)


Back to the parent page: 3rd party eSolution development