Na vzdálených firemních pobočkách/prodejních místech zpřístupnit tiskárny využitím pomocné aplikace (POS Connector). V nastavení aplikace se specifikují tiskárny které má obsluhovat.
POS Connector využívá tiskárny nainstalované v operačním systému. V nastavení se zadává název tiskárny a další parametry.
Ovladače tiskáren stáhnete z webu výrobce tiskárny a nainstalujete standardním postupem.
Tiskárny TSC
Tiskárny Epson
Aplikace je ke stažení na tomto odkazu https://factorify.cz/hw/pos-connector-1.0.0.zip
Na disku vytvořte složku (např. C:\pos-connector ) a stažený zip soubor do této složky rozbalte.
Struktura složek by měla být taková:
C:\pos-connector\bin
C:\pos-connector\log
C:\pos-connector\runtime
V adresáři C:\pos-connector je třeba vytvořit soubor application.properties (viz níže).
Ve složce C:\pos-connector\bin jsou pomocné skripty pro instalování/spouštění služby.
Script service-verbose.bat je určen pro ladění (apliakce se pustí v okně v popředí a uvidíte výpis logu pro ověření že funguje jak má).
Pokud je vše v pořádku, okno můžete zavřít a použitím skriptu service-install.bat službu nainstalujete, aby se pouštěla na pozadí při startu PC. Aplikace pak vypisuje údaje do souborů ve složce log.
pos.id=
pos.messaging.queue=
spring.artemis.user=
spring.artemis.password=
Při změně nastavení je třeba restartovat aplikaci
Podporovány jsou tiskárny komunikující ESC/POS jazykem.
pos.receipt.printer.name=EPSON TM-T88IV Receipt
pos.receipt.printer.charset=CP852_Latin2
Standardně používaná TSC TC-200, případně jiná podporovaná v aplikaci Factorify.
pos.label.printer.name=TSC TC200
Aplikace POS-Connector běží skrytě na pozadí a poskytuje jednoduché rozhraní pro otestování funkčnosti. V internetovém prohlížeči můžete zadat následující URL:
Pro otestování komunikace se serverem pro předávání zpráv lze použít následující URL. POS-Connector pošle sám sobě testovací zprávy a vytiskne je na příslušné tiskárně.
Pokud se na URL /status nedá připojit, zřejmě aplikace neběží nebo se vyskytl jiný problém
server.port=8097)Ve složce aplikace je podsložka log se souborem pos-connector.log. Do něj aplikace zapisuje provozní výpisy a případné chyby. Pokud si nevíte rady, pošlete tento soubor odpovědné osobě ve Factorify.
V definici síťové tiskárny vyplňte položku Messaging queue. Tento údaj je preferovaný před nastavením IP/port. Celá adresa se skládá z {pos.messaging.queue}.pos.printer.{pos.id}

V případě propojení platebního terminálu s pokladnou je nutné v definici Point of sales zaškrtnout Terminál propojený.

Po propojení platebního terminálu s pokladnou můžeme odesílat požadavky na platbu kartou do terminálu přímo z pokladny.
Stav propojení je znázorněn v horní liště po vstupu do pokladny či aktualizaci stránky.
Terminál je připojen - hláška po několika sekundách zmizí
Terminál není připojen - vypadlo spojení, nepoužívejte terminál. Hláška zobrazena až do doby, než dojde k opětovnému připojení
Tlačítko servisního menu se nachází v patičce checkoutu pokladny.
| funkce | popis |
|---|---|
Mezisoučet |
Používáme k ověření aktuálního stavu terminálu. Vrací součty transakcí, které proběhly od uzávěrky. Pokud se součty na terminálu a v bance liší, zobrazí se obě hodnoty. |
Uzávěrka |
Po kliku na tlačítko rovnou vytvoří uzávěrku. Vrací stejná data, jako mezisoučet. Po provedení uzávěrky nelze rušit předchozí platby. |
Poslední transakce |
Vrací informace o poslední transakci. |
Zrušit poslední transakci |
Používá se ke zrušení poslední transakce, pokud z důvodu nějaké chyby nebyla propsána do pokladny. Nejprve se vrátí informace o poslední transakci a po kontrole, že se jedná o transakci, kterou chcete zrušit se kliknutím na Zrušit transakci odešle žádost do terminálu. Dostupnost této funkce je podmíněna oprávněním TERMINAL_REVERSE_LAST_TRANSACTION |
Vrácení prostředků na účet zákazníka |
Po zadání částky se odešle žádost na terminál a po načtení platební karty zákazníka se odešle částka na jeho účet. Poté se vytisknou dva lístečky, jeden pro nás s podpisovým polem, které musí zákazník podepsat a druhý pro zákazníka. Dostupnost této funkce je podmíněna oprávněním TERMINAL_REFUND. Na detailu prodejního místa v agendě Point od sales lze nastavit maximální vrácenou částku přes terminál. |
Znovu inicializovat |
V případě problémů lze restartovat spojení mezi terminálem a POS Connectorem. Při úspěšném připojení vrací informace o aplikaci |
Platební terminálAktualizovat.Zkusit znovu, nebo zavřít dialogPotvrdit přidáme platbu do pokladnyPotvrdit v případě, že se podpisy shodují. Pokud se neshodují, tak tlačítkem Zrušit platbu odešleme požadavek na zrušení platby.Potvrdit odstraníme platbu z pokladny.Lístečky z terminálu se tisknou na tiskárně účtenek. Při dokončení nákupu a vytvoření faktury se vytisknou lístečky pro zákazníka pro všechny platby terminálem, které jsou v tomto nákupu použity. Pokud dokončíme nákup vytvořením účtenky je nutné, aby v šabloně účtenky nechyběla zástupka {{terminalTicket}}, která lístečky doplní do účtenky.
Aktualizovat, čekáme než přijde zpráva nebo se zobrazí Terminál není připojenNedoporučujeme zavřít dialog a zadat nový požadavek na terminál, ztratila by se návaznost na proběhlou platbu, na kterou něpřišla odpověď, a nebylo by již možné ji zrušit přes příkaz
Zrušit poslední transakciv servisním menu.
Zrušit poslední transakci.Pro vytvoření šablony účtenky se používá agenda "Šablony štítků", jako typ ze zvolí "Receipt"
Tiskárny účtenek používají ESC/POS tiskový jazyk který je řádkově orientovaný, takže do zdrojového kódu se zadává čistý text. Lze využít zástupky a logiku Mustache jako u štítků.
Pro účtenky jsou dostupné tyto specifické zástupky
| zástupka | popis |
|---|---|
{leftPad N TEXT} |
doplní mezery zleva aby TEXT byl celkově N znaků dlouhý |
{rightPad N TEXT} |
doplní mezery zprava aby TEXT byl celkově N znaků dlouhý |
{escImg L|C|R URL} |
vytiskne obrázek z URL zarovnaný L - doleva, R - doprava, C - vycentrovaný na řádku |
{escQrcode L|C|R CODE} |
vytiskne QR CODE zarovnaný L - doleva, R - doprava, C - vycentrovaný na řádku |
{escBarcode L|C|R CODE} |
vytiskne čárový kód CODE zarovnaný L - doleva, R - doprava, C - vycentrovaný na řádku |
{escStyle <J>,<B>,<U>,<I>,<S>} |
nastavení stylu textu, musí být na začátku řádku a platí pro celý řádek. Vždy musí být uvedeno 5 hodnot ale můžou být prázdné, pak se použije výchozí hodnota. Výchozí hodnota se použije také pro neplatnou hodnotu. Např. {escStyle ,B,,,} nastaví pouze tučné písmo.<J> L/C/R - zarovnání řádku (vlevo, centrovat, vpravo)<B> B - tučný text<U> 1 nebo 2 - tloušťka podtržení<I> invertované barvy (bílý text na černém pozadí)<S> velikost písma (1-8), výchozí je 1. |
| zástupka | popis |
|---|---|
{{accountingDocumentId}} |
ID účetního dokladu |
{{documentNumber}} |
číslo účetního dokladu |
{{currency}} |
měna účetního dokladu |
{{totalAmountTaxIncluded}} |
celková částka včetně DPH |
{{totalAmountTaxExcluded}} |
celková částka bez DPH |
{{posName}} |
název prodejního místa |
{{logoUrl}} |
url obrázku s logem |
{{dateTime}} |
aktuální datuma a čas tisku účtenky |
{{myAddressName}}{{myAddressLine1}}{{myAddressLine2}}{{myStateIdentNo}}{{myVatNo}} |
údaje / adresa prodejce |
{{storeName}}{{storeAddressName}}{{storeAddressLine1}}{{storeAddressLine2}}{{storePhone}} |
adresa prodejny |
{{billingAddressName}}{{billingAddressLine1}}{{billingAddressLine2}}{{billingStateIdentNo}}{{billingVatNo}}{{billingResponsiblePersonName}} |
fakturační údaje / adresa zákazníka |
{{deliveryAddressName}}{{deliveryAddressLine1}}{{deliveryAddressLine2}}{{deliveryAddressPhone}}{{deliveryResponsiblePersonName}} |
dodací adresa zákazníka |
{{items}} |
Položky účetního dokladu Každá položka obsahuje následující zástupky {{code}} kód zboží{{name}} název položky{{quantity}} množství{{pricePerUnit}} cena za kus{{price}} celková cena položky{{sale}} sleva (%){{saleAmount}} částka slevy{{pricePerUnitBeforeSale}} cena za kus před slevou{{priceBeforeSale}} celková cena položky před slevou |
{{taxes}} |
Pozpis položek DPH (jen existující) Každá položka DPH obsahuje následující zástupky: {{ratePct}} sazba DPH (%){{base}} základ (bez DPH){{tax}} částka DPH{{total}} celkem (s DPH) |
{{barcode}} |
formát ad-<accountingDocumentId> |
{{paymentMethodName}} |
platební metoda |
{{terminalTicket}} |
lísteček z terminálu |
{escImg C {{logoUrl}}}
{escStyle C,B,,,}{{myAddressName}}
{escStyle C,,,,}{{myAddressLine1}}
{escStyle C,,,,}{{myAddressLine2}}
{escStyle C,,,,}IČ: {{myStateIdentNo}}, DIČ: {{myVatNo}}
Daňový doklad č. {{documentNumber}}
{escStyle ,B,,,}Odběratel: {{billingAddressName}}
{{billingAddressLine1}}
{{billingAddressLine2}}
{{#billingStateIdentNo}}IČ: {{billingStateIdentNo}}{{/billingStateIdentNo}}{{#billingVatNo}}, DIČ: {{billingVatNo}}{{/billingVatNo}}
{{storeName}}
{{storeAddressName}}{{#storeAddressLine1}}
{{storeAddressLine1}}, {{storeAddressLine2}}{{/storeAddressLine1}}{{#storePhone}}
{{storePhone}}{{/storePhone}}{{#storeEmail}}, {{storeEmail}}{{/storeEmail}}
{{posName}}
---------------------------------------
{{#items}}
{{code}} {{name}}
{leftPad 8 {{quantity}}} × {leftPad 12 {{pricePerUnit}}}{leftPad 16 {{#formatCurrencyDecimalOrZero}}{{price}}{{/formatCurrencyDecimalOrZero}}}
{{/items}}
----------------------------------------
{escStyle ,B,,,}Celkem k platbě: {leftPad 22 {{#formatCurrencyDecimalOrZero}}{{totalAmountTaxIncluded}}{{/formatCurrencyDecimalOrZero}}}
========================================
Sazba Základ DPH Celkem
{{#taxes}}
{leftPad 6 {{ratePct}} %}{leftPad 12 {{base}}}{leftPad 9 {{tax}}}{leftPad 13 {{#formatCurrencyDecimalOrZero}}{{total}}{{/formatCurrencyDecimalOrZero}}}
{{/taxes}}
========================================
1234567890123456789012345678901234567890
{escQrcode C {{barcode}}}
{escBarcode C {{barcode}}}
Datum a čas: {{dateTime}}
{{#terminalTicket}}
{escStyle L,,,,}{{.}}
{{/terminalTicket}}