Modernes und Effizientes Kundenmanagement
mit Blitz!Kasse SelfService Monitor
Blitz!Kasse SelfService Monitor Client
Systemanforderungen: Win 7 / Win 10 / Framework 4.6.1
Modernes und Effizientes Kundenmanagement
mit Blitz!Kasse SelfService Monitor
Blitz!Kasse SelfService Monitor Client
Systemanforderungen: Win 7 / Win 10 / Framework 4.6.1
Modernes und Effizientes Kundenmanagement
mit Blitz!Kasse SelfService Monitor
Schnittstelle-Beschreibung für Entwickler als PDF.
Modernes und Effizientes Kundenmanagement
mit Blitz!Kasse SelfService Monitor
Blitz!Kasse SelfService Monitor Client Android Client APK
Systemanforderungen: ab Android v. 4.2
Bondrucker-Installation unter Android für Blitz!Kasse EXPRESS / Anleitung als PDF Datei
© M&S SystemSolutions GmbH und Fa. Compilager.de
Im Folgenden werden Beispiele anhand der gemanagten .Net Version der API genannt.
Wir haben unter anderem auch eine native API als alternative jedoch wird derzeit nur die
.NEt Variante aktiv von uns genutzt da mono/core mittlerweile zuverlässig und anstandslos
auf Linux basierten Systemen funktionieren
Die Bibliothek wurde gegen .Net Standart 2.0 kompiliert und benötigt eine .Net
Laufzeitumgebung von 4.6.1, Mono 5.2.0 oder Net Core 2.0
Es basiert sich auf JSON Format als Datenübertragungscontainer, als Transportprotokol wird http benutzt.
Wenn man z.B. Restaurant L installiert, wird Office unter localhost:8001 ansprechbar sein.
Es gibt zwei Typen von Commandosaufrufe – get und set und get alle(Listen).
Get – Alle sind für Holen von Stammdaten da, z.B:
http://localhost:8001/getUsers – alle Benutzer
http://localhost:8001/getLevels – alle Verkaufebenen
http://localhost:8001/getLevelDetails – alle Tische
http://localhost:8001/getCategories – alle Warengruppen
http://localhost:8001/getProducts – alle Artikeln
Wenn man Product by EAN finden muss
http://localhost:8001/GetProductsByBarcode in POST Aufruf EAN als Parameter
http://localhost:8001/getTaxes – alle Mehrwertsteuern
http://localhost:8001/getSupplements – alle Beilagen/Artikelvarianten
http://localhost:8001/getAdditions – alle Zutaten
http://localhost:8001/getDiscounts – alle Rabate
http://localhost:8001/getPrinterDrivers – alle Drucker
http://localhost:8001/getPrintersInCategories – alle Zuordnungen der Drucker zu Warengruppen
http://localhost:8001/ConfigComplete – alle Configvariablen
http://localhost:8001/getCustomers – alle Kunden
http://localhost:8001/getDiscounts – alle Rabbat typen
http://localhost:8001/getHappyHours – alle HappyHour
http://localhost:8001/getBarcodeFormats – alle Barcode formats
http://localhost:8001/getBarcodeFormatFields – alle Feldeinstellungen für Barcode formats
Rechnungs-Daten
http://localhost:8001/getLookupReceipts
Letzte Rechnung:
http://localhost:8001/getLastReceipt – gibt den gesammten letzten Bon zurueck mit den Products schon drinnen.
Dinamische Daten
http://localhost:8001/getAllCompositeOrders – alle Bestellungen
Beispiel von getLevels:
Wenn man in Browser http://localhost:8001/getLevels aufruft, bekommt man folgendes JSON-Antwort:
[
{„takeoutOrder“:true,“taxMode“:0,“name“:“S.Verkauf“,“id“:38,“priceDeviation“:0,“tagCaption“:““,“levelDetails“:[],“color“:“#0080FF“,“imageMode“:1,“description“:“S.Verkauf“,“modeId“:1285242460,“sortId“:1,“users“:[1,2,3,4,5,6,7],“userList“:[],“imageName“:“/BlitzkasseRestaurant;component/Data/Ressources/Images/Bar.png“,“runCustomerSelect“:false},
{„takeoutOrder“:false,“taxMode“:0,“name“:“Restaurant“,“id“:40,“priceDeviation“:0,“tagCaption“:““,“levelDetails“:[],“color“:“#008040″,“imageMode“:1,“description“:“Restaurant“,“modeId“:1,“sortId“:2,“users“:[1,2,3,4,5,6,7],“userList“:[],“imageName“:“/BlitzkasseRestaurant;component/Data/Ressources/Images/Restaurant.png“,“runCustomerSelect“:false},
{„takeoutOrder“:false,“taxMode“:0,“name“:“Terrasse“,“id“:41,“priceDeviation“:0,“tagCaption“:““,“levelDetails“:[],“color“:“Silver“,“imageMode“:1,“description“:“Terrasse“,“modeId“:2,“sortId“:3,“users“:[1,2,3,4,5,6,7],“userList“:[],“imageName“:“/BlitzkasseRestaurant;component/Data/Ressources/Images/Terrasse.png“,“runCustomerSelect“:false},
{„takeoutOrder“:false,“taxMode“:0,“name“:“Drausen“,“id“:42,“priceDeviation“:0,“tagCaption“:““,“levelDetails“:[],“color“:“#008040″,“imageMode“:1,“description“:“Drausen“,“modeId“:1,“sortId“:4,“users“:[1,2,3,4,5,6,7],“userList“:[],“imageName“:“/BlitzkasseRestaurant;component/Data/Ressources/Images/Terrasse.png“,“runCustomerSelect“:false}
]
So werden es z.B. so alle Verkaufsebenen ausgelesen und im weiteren Schritt die aktive Ebene für die laufende Session registriert.
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace TseRpcTest
{
class TestClass
{
public static string ServerUrl { get; set; }
public static string SessionId { get; set; }
public static async Task<string> DownloadObjectAsync(string apiUrl)
{
using (var client = new WebClient())
{
client.Encoding = Encoding.UTF8;
var fromJson = await client.DownloadStringTaskAsync(new Uri(„http://“ + ServerUrl + „:8001/“ + apiUrl));
return fromJson;
}
}
public static string DownloadObject(string apiUrl)
{
using (var client = new WebClient())
{
client.Encoding = Encoding.UTF8;
var fromJson = client.DownloadString(new Uri(„http://“ + ServerUrl + „:8001/“ + apiUrl));
return fromJson;
}
}
public static async Task<string> PostToServerAsync(object payload, string apiUrl)
{
var httpClient = new HttpClient();
#pragma warning disable 618
var toSend = payload is string ? payload.ToString() : await JsonConvert.SerializeObjectAsync(payload);
#pragma warning restore 618
var content = new StringContent(toSend, Encoding.UTF8, „application/json“);
var response = await httpClient.PostAsync(„http://“ + ServerUrl + „:8001/“ + apiUrl, content)
.ConfigureAwait(false);
var result = await response.Content.ReadAsStringAsync();
return result;
}
public static string PostToServer(object payload, string apiUrl)
{
string resultJsonString;
var httpWebRequest =
(HttpWebRequest)WebRequest.Create(„http://“ + ServerUrl + „:8001/“ + apiUrl);
httpWebRequest.ContentType = „application/json“;
httpWebRequest.Method = „POST“;
payload ??= string.Empty;
var toSend = payload is string ? payload.ToString() : JsonConvert.SerializeObject(payload);
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
streamWriter.Write(toSend);
streamWriter.Flush();
streamWriter.Close();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream() ?? throw new InvalidOperationException()))
{
resultJsonString = streamReader.ReadToEnd();
}
return resultJsonString;
}
public async Task<List<Level>> GetLevelsAsync()
{
var fromJson = await DownloadObjectAsync(„GetLevels“);
return JsonConvert.DeserializeObject<List<Level>>(fromJson);
}
public List<Level> GetLevels()
{
var fromJson = DownloadObject(„GetLevels“);
return JsonConvert.DeserializeObject<List<Level>>(fromJson);
}
public async Task<bool> SelectLevelAsync(Level selectedLevel)
{
var result = await PostToServerAsync(selectedLevel, „SelectLevel?me=“ + SessionId);
return JsonConvert.DeserializeObject<bool>(result);
}
public bool SelectLevel(Level selectedLevel)
{
var result = PostToServer(selectedLevel, „SelectLevel?me=“ + SessionId);
return JsonConvert.DeserializeObject<bool>(result);
}
}
public class Level
{
public bool TakeoutOrder { get; set; }
public int TaxMode { get; set; }
public string Name { get; set; } = string.Empty;
public int Id { get; set; }
public int PriceDeviation { get; set; }
public string TagCaption { get; set; } = string.Empty;
public string Color { get; set; } = string.Empty;
public int ImageMode { get; set; }
public string Description { get; set; } = string.Empty;
public int ModeId { get; set; }
public int SortId { get; set; }
public int[] Users { get; set; }
public string ImageName { get; set; } = string.Empty;
public bool RunCustomerSelect { get; set; } = false;
}
}
Blitz!Kasse INSIKA 2020 API Beschreibung als PDF Datei
(Win 10 empfohlen, mind .NET Framework 4.6.1 erforderlich )
TSE2020, KassenSichV, DSFinV-K konform
bis 2 Drucker (Küche, Theke + Rechnung)
1 Raum + Thekenverkauf
max 25 Tische
Warengruppenanzahl – Unbegrenzt
Artikelanzahl – Unbegrenzt
Bedieneranzahl – Unbegrenzt
bis 2 Handheld (Windows oder Android) möglich
EC Cash -Schnittstelle (Optional)
Netzwerkversion
DEMO mit 30 TAGE Lizenz
Nach der Erstinstallation können Sie das Programm 30 Tage vollkommen kostenlos und unverbindlich ausprobieren.
Wenn Sie das Programm nach der Testzeit weiter nutzen möchten, bestellen Sie einfach eine Lizenznummer für das gewünschte Produkt und geben diese im Programm ein.
Bei Fragen zur Software, zur Installation oder Deinstallation können Sie uns telefonisch oder per E-Mail kontaktieren
(Win 10 empfohlen, mind NET Framework 4.6.1 erforderlich )
TSE2020, KassenSichV, DSFinV-K konform
bis 2 / 3 Drucker (Küche, Theke + Rechnung)
2 Räume + Thekenverkauf
bis 50 Tische
Warengruppenanzahl – Unbegrenzt
Artikelanzahl – Unbegrenzt
Bedieneranzahl – Unbegrenzt
bis 6 Handheld (Windows oder Android) möglich
EC Cash -Schnittstelle (Optional)
Netzwerkversion
WEB/ HTTP Zugang über Port :8001
DEMO 30 TAGE
Nach der Erstinstallation können Sie das Programm 30 Tage vollkommen kostenlos und unverbindlich ausprobieren.
Wenn Sie das Programm nach der Testzeit weiter nutzen möchten, bestellen Sie einfach eine Lizenznummer für das gewünschte Produkt und geben diese im Programm ein.
Bei Fragen zur Software, zur Installation oder Deinstallation können Sie uns telefonisch oder per E-Mail kontaktieren
(Win 10 empfohlen, mind. NET Framework 4.6.1 erforderlich )
bis 3 Bondrucker (Küche, Theke, Rechnung)
A4 Rechnung
3 Räume
bis max. 75 Tische
Warengruppenanzahl – Unbegrenzt
Artikelanzahl – Unbegrenzt
Bedieneranzahl – Unbegrenzt
bis 24 Handheld (Windows oder Android) möglich
EC Cash -Schnittstelle (Optional)
Bildschirmauflösung ab 800 x 600 / 1024 x 768 empfohlen
DEMO 30 TAGE
Nach der Erstinstallation können Sie das Programm 30 Tage vollkommen kostenlos und unverbindlich ausprobieren.
Wenn Sie das Programm nach der Testzeit weiter nutzen möchten, bestellen Sie einfach eine Lizenznummer für das gewünschte Produkt und geben diese im Programm ein.
Bei Fragen zur Software, zur Installation oder Deinstallation können Sie uns telefonisch oder per E-Mail kontaktieren