Korzystając z interfejsu Comarch ERP Enterprise dla systemów POS, systemy POS mogą wysyłać zapytania do Comarch ERP Enterprise, a paragony POS mogą być zapisywane do dalszego przetwarzania, np. transferu do księgowości.
Zakres funkcji
Interfejs obejmuje następujące funkcje:
- Zapytanie o artykuł
- Zapytanie o klienta
- Zapytanie o sprzedawcę
- Przygotowanie paragonu kasowego
- Wysyłanie paragonu kasowego
- Zapytanie o firmę
Opis interfejsu
Interfejs adaptera
Adapter systemu POS jest udostępniany za pośrednictwem następującej klasy:
com.cisag.app.sales.cashpoint.interfaces.log.CashPointAdapterFactory
Klasa ta wykorzystuje java.util.ServiceLoader do utworzenia instancji CashPointAdapterProvider. To z kolei tworzy adapter systemu POS.
Realizacja adaptera systemu POS obejmuje implementację następujących interfejsów:
- com.cisag.app.sales.cashpoint.interfaces.spi.CashPointAdapterProvider
- com.cisag.app.sales.cashpoint.interfaces.spi.CashPointAdapter
Interfejs Comarch ERP Enterprise
Aktywując funkcję Comarch POS w aplikacji Konfiguracja, zdefiniowana zostaje organizacja sprzedaży, dla których system POS ma być podłączony do Comarch ERP Enterprise. Więcej informacji na temat ustawień konfiguracji można znaleźć w artykule Konfiguracja: Sprzedaż.
Uruchomienie aplikacji działającą w tle Import dokumentów sprzedaży, spowoduje uruchomienie dwóch zadań przetwarzania:
- Edycja żądań systemu POS
- Generowania faktur sprzedaży z paragonów kasowych
Zadanie przetwarzania: Edycja zapytań systemu POS
Zadanie przetwarzania Edytuj zapytania systemu POS odbiera zapytania wysłane do interfejsu Comarch ERP Enterprise i przetwarza je.
Zadanie przetwarzania: Generowanie faktur sprzedaży z paragonów kasowych
Zadanie przetwarzania Generowanie faktur sprzedaży z paragonów kasowych generuje faktury sprzedaży z wygenerowanych paragonów.
Parametry
Parametry są podzielone na parametry wejściowe i wyjściowe. Parametry wejściowe są przesyłane z systemu POS do Comarch ERP Enterprise. Istnieją obowiązkowe i opcjonalne parametry wejściowe. Parametry wyjściowe są określane przez Comarch ERP Enterprise na podstawie parametrów wejściowych i zwracane do kasy. Parametry, które są tylko parametrami wyjściowymi, nie mogą być wypełnione podczas wywoływania interfejsu Comarch ERP Enterprise.
W poniższych tabelach obowiązuje następujące oznaczenie:
- X dla parametru obowiązkowego.
Ogólne
Obiekt parametru jest dostarczany z każdym żądaniem. Obiekt ten zawsze zawiera następujące parametry.
| Parametr | Rodzaj danych | Wejście/Wyjście | Pole obowiązkowe | Oznaczenie |
| salesOrganization | String | Wejście | X | Organizacja sprzedaży |
| time | long | Wejście | Czas wystawienia paragonu | |
| cashPoint | String | Wejście | Identyfikator kasy | |
| currency | String | Wejście | X | Waluta (kod ISO) |
| cashier | String | Wejście | Kasjer | |
| language | String | Wejście | X | Język kasy, używany m.in. do generowania tekstów |
| messages | List<Message> | Wyjście | Lista komunikatów o błędach | |
| Message.id | enum (CashPointInterface.MessageId) | Wyjście | Identyfikator komunikatu, pozwala określić zakres błędu | |
| Message.messageText | String | Wyjście | Krótki ogólny tekst komunikatu | |
| Message.detailMessages | List<String> | Wyjście | Szczegółowe teksty, odpowiadające krótkim komunikatom z Comarch ERP Enterprise |
Zapytanie o pozycję
Dane pozycji można sprawdzać za pomocą zapytania o pozycję.
| Parametr | Rodzaj danych | Wejście/Wyjście | Pole obowiązkowe | Oznaczenie |
|---|---|---|---|---|
| item | Item | Wejście | X | Artykuł |
| item.ean | String | Wejście | Numer EAN | |
| item.number | String | Wejście | X | Numer artykułu |
| item.description | String | Wyjście | Nazwa artykułu | |
| identifier | String | Wejście | Wariant | |
| customer | Customer | Wejście | Klient | |
| Customer.number | String | Wejście | Numer klienta | |
| Customer.discounts | List | Wyjście | Zastosowane rabaty bazowe | |
| Discount.percentValue | BigDecimal | Wyjście | Procentowa wartość rabatu | |
| Discount.monetaryValue | BigDecimal | Wyjście | Kwota rabatu | |
| Discounts.definitionGuid | String | Wyjście | Odniesienie do definicji | |
| customer.discounts[…].discountType | String | — | Nieużywane przy zapytaniu o artykuł | |
| customer.maxDiscounts | int | Wejście | Maksymalna liczba rabatów | |
| warehouse | String | Wejście | Lokalizacja magazynowa | |
| priceDefinitionGuid | String | Wyjście | Odniesienie do ceny brutto | |
| grossPriceValue | BigDecimal | Wyjście | Wartość ceny brutto | |
| netValue | BigDecimal | Wyjście | Wartość netto | |
| quantity | Quantity | Wejście | Ilość | |
| Quantity.amount | BigDecimal | Wejście | Ilość liczbowa | |
| Quantity.unitOfMeasure | String | Wyjście | Jednostka miary | |
| taxCode | TaxCode | Wyjście | Klucz podatkowy | |
| taxCode.country | String | Wyjście | Kraj podatkowy | |
| taxCode.code | String | Wyjście | Kod podatkowy | |
| maxDiscount | int | Wejście | Maksymalna liczba rabatów pozycyjnych | |
| detailDiscounts | List | Wyjście | Zastosowane rabaty pozycyjne | |
| Discount.percentValue | BigDecimal | Wejście/Wyjście | Procentowa wartość rabatu | |
| Discount.monetaryValue | BigDecimal | Wejście/Wyjście | Kwotowa wartość rabatu | |
| Discounts.definitionGuid | String | Wejście/Wyjście | Definicja rabatu pozycyjnego | |
| selectionList | List | Wyjście | Lista wyboru dla niejednoznacznych przypadków | |
| valuesIncludingTax | boolean | Wejście | X | Wskaźnik, czy wartości zawierają podatek |
Zapytanie klienta
Zapytanie o klienta może być użyte do zapytania o dane klienta przy użyciu numeru klienta.
| Parametr | Rodzaj danych | Wejście/Wyjście | Pole obowiązkowe | Oznaczenie |
|---|---|---|---|---|
| customer | Customer | Wejście | X | Dane klienta |
| Customer.number | String | Wejście | X | Numer klienta |
| Customer.discounts | List | Wyjście | Rabaty bazowe klienta | |
| Discount.percentValue | BigDecimal | Wyjście | Procentowa wartość rabatu | |
| Discount.monetaryValue | BigDecimal | — | Nieużywane przy zapytaniu | |
| Discount.definitionGuid | String | Wyjście | Odniesienie do definicji | |
| Customer.maxDiscounts | int | Wejście | Liczba rabatów do ustalenia | |
| name | String | Wyjście | Nazwa klienta | |
| address | List | Wyjście | Adres klienta | |
| creditLimit | BigDecimal | Wyjście | Limit kredytowy klienta |
Zapytanie o sprzedawcę
Zapytanie o sprzedawcę może być użyte do zapytania o dane sprzedawcy przy użyciu numeru sprzedawcy.
| Parametr | Rodzaj danych | Wejście/Wyjście | Pole obowiązkowe | Oznaczenie |
|---|---|---|---|---|
| number | String | Wejście | X | Numer sprzedawcy |
| name | String | Wyjście | Nazwa sprzedawcy |
Przygotowanie paragonu
Funkcja ta służy do edycji danych paragonu kasowego przed jego zaksięgowaniem.
Dane paragonu kasowego
| Parametr | Rodzaj danych | Wejście/Wyjście | Pole obowiązkowe | Oznaczenie |
|---|---|---|---|---|
| number | String | Wejście | Numer kasy fiskalnej | |
| details (Attributliste) | List | Wejście | Pozycje paragonu | |
| customer | Customer | Wejście | Dane klienta | |
| Customer.number | String | Wejście | Numer klienta | |
| Customer.discounts | List | Wejście | Rabaty klienta (bazowe) | |
| Discount.percentValue | BigDecimal | Wejście | Procentowa wartość rabatu klienta | |
| Discount.monetaryValue | BigDecimal | Wejście | Kwotowa wartość rabatu klienta | |
| Discount.definitionGuid | String | Wejście | Odniesienie do definicji rabatu klienta | |
| customer.maxDiscounts | int | — | Nieużywane przy księgowaniu paragonu | |
| grossValue | BigDecimal | Wejście | Kwota końcowa paragonu brutto | |
| paymentMethod | String | Wejście | Identyfikator metody płatności | |
| warehouse | String | Wejście | Identyfikator magazynu | |
| taxValues | Map<TaxCode, TaxValue> | Wejście | Kwoty podatku według klucza podatkowego | |
| TaxCode.country | String | Wejście | Kraj klucza podatkowego | |
| TaxCode.code | String | Wejście | Identyfikator klucza podatkowego | |
| TaxValue.taxBase | BigDecimal | Wejście | Podstawa opodatkowania | |
| TaxValue.value | BigDecimal | Wejście | Kwota podatku | |
| paid | boolean | Wejście | Wskaźnik, czy płatność została dokonana | |
| valuesIncludingTax | boolean | Wejście | Wskaźnik, czy kwoty i rabaty zawierają podatek |
Dane pozycji paragonu kasowego
| Parametr | Rodzaj danych | Wejście/Wyjście | Pole obowiązkowe | Oznaczenie |
|---|---|---|---|---|
| SalesSlipDetail.number | int | Wejście | Numer pozycji paragonu | |
| SalesSlipDetail.itemNumber | String | Wejście | Numer artykułu | |
| SalesSlipDetail.priceDefinitionGuid | String | Wejście | Odniesienie do definicji ceny brutto | |
| SalesSlipDetail.grossPriceValue | BigDecimal | Wejście | Kwota brutto | |
| SalesSlipDetail.quantity | Quantity | Wejście | Ilość | |
| Quantity.amount | BigDecimal | Wejście | Wartość ilościowa | |
| Quantity.unitOfMeasure | String | Wejście | Jednostka miary | |
| SalesSlipDetail.taxCode | TaxCode | Wejście | Klucz podatkowy | |
| TaxCode.country | String | Wejście | Kraj klucza podatkowego | |
| TaxCode.code | String | Wejście | Identyfikator klucza podatkowego | |
| SalesSlipDetail.identifier | String | Wejście | Wariant | |
| SalesSlipDetail.discounts | List | Wejście | Rabaty pozycyjne | |
| Discount.percentValue | BigDecimal | Wejście | Procentowa wartość rabatu pozycyjnego | |
| Discount.monetaryValue | BigDecimal | Wejście | Kwotowa wartość rabatu pozycyjnego | |
| Discount.definitionGuid | String | Wejście | Odniesienie do definicji rabatu pozycyjnego | |
| SalesSlipDetail.taxValue | BigDecimal | Wejście | Kwota podatku dla pozycji paragonu | |
| SalesSlipDetail.salesPerson | String | Wejście | Identyfikator sprzedawcy |
Księgowanie dokumentu sprzedaży
Podczas księgowania dokument sprzedaży jest zapisywany w Comarch ERP Enterprise.
Tej funkcji można użyć do edycji danych dokumentu sprzedaży przed zaksięgowaniem.
Dane paragonu gotówkowego
| Parametr | Rodzaj danych | Wejście/Wyjście | Pole obowiązkowe | Oznaczenie |
|---|---|---|---|---|
| number | String | Wejście | X | Numer paragonu |
| details (Attributliste) | List | Wejście | X | Pozycje paragonu |
| customer | Customer | Wejście | X | Dane klienta |
| Customer.number | String | Wejście | X | Numer klienta |
| Customer.discounts | List | Wejście | Rabaty klienta (bazowe) | |
| Discount.percentValue | BigDecimal | Wejście | Procentowa wartość rabatu klienta | |
| Discount.monetaryValue | BigDecimal | Wejście | X | Kwotowa wartość rabatu klienta |
| Discount.definitionGuid | String | Wejście | Odniesienie do definicji rabatu klienta | |
| customer.maxDiscounts | int | — | Nieużywane przy księgowaniu paragonu | |
| grossValue | BigDecimal | Wejście | X | Kwota końcowa paragonu brutto |
| paymentMethod | String | Wejście | Identyfikator metody płatności | |
| warehouse | String | Wejście | X | Identyfikator magazynu |
| taxValues | Map<TaxCode, TaxValue> | Wejście | Kwoty podatku według klucza podatkowego | |
| TaxCode.country | String | Wejście | X | Kraj klucza podatkowego |
| TaxCode.code | String | Wejście | X | Identyfikator klucza podatkowego |
| TaxValue.taxBase | BigDecimal | Wejście | X | Podstawa opodatkowania |
| TaxValue.value | BigDecimal | Wejście | X | Kwota podatku |
| paid | boolean | Wejście | X | Wskaźnik, czy płatność została dokonana |
| valuesIncludingTax | boolean | Wejście | X | Wskaźnik, czy kwoty i rabaty zawierają podatek |
Dane pozycji paragonu kasowego
| Parametr | Rodzaj danych | Wejście/Wyjście | Pole obowiązkowe | Oznaczenie |
|---|---|---|---|---|
| SalesSlipDetail.number | int | Wejście | X | Numer pozycji paragonu |
| SalesSlipDetail.itemNumber | String | Wejście | X | Numer artykułu |
| SalesSlipDetail.priceDefinitionGuid | String | Wejście | Odniesienie do definicji ceny brutto | |
| SalesSlipDetail.grossPriceValue | BigDecimal | Wejście | X | Kwota brutto |
| SalesSlipDetail.quantity | Quantity | Wejście | X | Ilość |
| Quantity.amount | BigDecimal | Wejście | X | Wartość ilościowa |
| Quantity.unitOfMeasure | String | Wejście | X | Jednostka miary |
| SalesSlipDetail.taxCode | TaxCode | Wejście | X | Klucz podatkowy |
| TaxCode.country | String | Wejście | X | Kraj klucza podatkowego |
| TaxCode.code | String | Wejście | X | Identyfikator klucza podatkowego |
| SalesSlipDetail.identifier | String | Wejście | Wariant | |
| SalesSlipDetail.discounts | List | Wejście | Rabaty pozycyjne | |
| Discount.percentValue | BigDecimal | Wejście | Procentowa wartość rabatu pozycyjnego | |
| Discount.monetaryValue | BigDecimal | Wejście | X | Kwotowa wartość rabatu pozycyjnego |
| Discount.definitionGuid | String | Wejście | Odniesienie do definicji rabatu pozycyjnego | |
| SalesSlipDetail.taxValue | BigDecimal | Wejście | Kwota podatku dla pozycji paragonu | |
| SalesSlipDetail.salesPerson | String | Wejście | Identyfikator sprzedawcy |
Zapytanie o firmę
Ta funkcja oferuje możliwość określenia firmy dla organizacji sprzedaży. Jest to pomocne na przykład przy określaniu danych zależnych od firmy.
| Parametr | Rodzaj danych | Wejście/Wyjście | Pole obowiązkowe | Oznaczenie |
|---|---|---|---|---|
| financialsOrganization | String | Wyjście | Numer firmy |
Konfiguracja
Zapytanie o artykuł
Spośród ustawień w aplikacji Konfiguracja następujące ustawienia w podfunkcji Artykuł funkcji głównej Podstawowe są istotne dla wyszukiwania artykułów w systemie POS:
Sekcja Priorytety wyszukiwania artykułów sprzedaży
W tej tabeli dla organizacji sprzedaży z systemem POS należy ustawić, które identyfikatory artykułów mają być brane pod uwagę i w jakiej kolejności.



