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ál
Aktualizovat
.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řipojen
Nedoporuč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í transakci
v 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}}