Model danych
Przegląd
W Syrve Loyalty możesz tworzyć i używać szablonów Razor:
- do drukowania paragonów, rachunków gości i faktur dostaw
- do wysyłania wiadomości tekstowych
- do wyświetlania komunikatów w Syrve POS
Aby stworzyć taki szablon, musisz nie tylko znać składnię Razor, ale także wiedzieć, które dane mogą być drukowane na paragonach, wysyłane w SMS-ach oraz wyświetlane w komunikatach. Ten artykuł omawia model takich danych.
Model bazowy jest rdzeniem takich danych i jest dostępny na paragonach, w SMS-ach oraz komunikatach niezależnie od używanych akcji.
Poza modelem bazowym, każda akcja ma własny zestaw właściwości, które można wykorzystać do skonfigurowania szablonu paragonu, SMS-a lub komunikatu.
Listę właściwości, które można użyć w szablonach Razor dla konkretnej akcji, znajdziesz w ustawieniach akcji. Wystarczy kliknąć Pobierz pola modelu.
Model bazowy
Właściwości modelu bazowego są dostępne wszędzie: na paragonach, w SMS-ach oraz we wszystkich akcjach, gdzie można użyć szablonu Razor.
| Nazwa | Typ danych | Opis |
| Właściwości | ||
| Store | Store | Dane firmy. |
| Guest | Guest | Dane gościa (opcjonalne). |
| Certificate | Certificate | Dane karty podarunkowej (opcjonalne). |
| Order | Order | Dane zamówienia. W przypadku akcji Wyślij SMS do klienta, jeśli jest używana w akcjach okresowych, ta właściwość jest niedostępna. |
| Metody | ||
| Counter(CounterMetric, CounterPeriod) | string | Pobierz wartość metryki klienta wskazującą walutę. |
| NumericCounter(CounterMetric, CounterPeriod) | decimal | Pobierz wartość metryki klienta. |
Dostępne właściwości
W akcjach, oprócz modelu bazowego, możesz używać właściwości specyficznych dla danej akcji.
| Akcja | Właściwość | Typ danych | Opis |
Doładuj konto o % wartości zamówienia Modele: RefillWalletPercentActionCheque Doładuj konto o kwotę Modele: AdditionalBonusFixedSumActionCheque | BalanceAfter | decimal | Saldo konta po doładowaniu |
| BalanceAfterWithCurrency | string | Saldo konta po doładowaniu z oznaczeniem waluty | |
| BalanceBefore | decimal | Saldo konta przed doładowaniem | |
| BalanceBeforeWithCurrency | string | Saldo konta przed doładowaniem z oznaczeniem waluty | |
| ChequeGenerationMode | ChequeGenerationMode | Tryb generowania tekstu Używany tylko na paragonach | |
| Delivery | Delivery | Dostawa (opcjonalne) | |
| Percent | decimal | Ile punktów procentowych zostało zaksięgowanych Dostępne tylko w akcji Doładuj konto o % wartości zamówienia | |
| Sum | decimal | Kwota do zaksięgowania | |
| SumWithCurrency | string | Saldo konta z oznaczeniem waluty | |
| Wallet | Wallet | Konto płatnicze (opcjonalne) | |
Płatność z konta Modele: PaymentActionCheque | BalanceAfterPaymentWithCurrency | string | Saldo konta po płatności z oznaczeniem waluty |
| BalanceWithCurrency | string | Saldo konta z oznaczeniem waluty | |
| ChequeGenerationMode | ChequeGenerationMode | Tryb generowania tekstu Używany tylko na paragonach | |
| Delivery | Delivery | Dostawa (opcjonalne) | |
| PayFromWalletOperation | PayFromWalletOperation | Informacje o transakcji płatniczej. | |
| PaymentSumWithCurrency | string | Kwota płatności z konta | |
| Wallet | Wallet | Konto płatnicze | |
Drukuj informacje na rachunku/paragonie/fakturze dostawy gościa PrintChequeActionCheque | ChequeGenerationMode | ChequeGenerationMode | Tryb generowania tekstu paragonu |
| Delivery | Delivery | Dostawa (opcjonalne) | |
Wyślij SMS SmsActionRazorModel | Dostępne są tylko właściwości modelu bazowego W akcjach okresowych właściwość Order nie jest dostępna. | ||
Podpowiedź UpsellingTipSuggestion | Delivery | Delivery | Dostawa (opcjonalne) |
Opis typów danych
Tabela zawiera szczegółowy opis typów danych oraz ich właściwości.
| Klasa | Właściwości | Typ danych | Opis |
| AuthType | Metoda uwierzytelniania gościa (enum) | ||
| None = 0 | Brak | ||
| CardTrack = 1 | Według ścieżki karty | ||
| CardNumber = 2 | Według numeru karty | ||
| Phone = 3 | Według numeru telefonu | ||
| FindFaceId = 4 | Według FindFaceId (nieużywane) | ||
| Certificate = 5 | Według numeru karty podarunkowej | ||
| Email = 6 | Według e-maila | ||
| ChequeGenerationMode | Tryb generowania tekstu paragonu (enum) | ||
| Bill = 1 | Generuj tekst rachunku gościa | ||
| CashRegister = 2 | Generuj tekst paragonu kasowego | ||
| DeliveryBill = 3 | Generuj tekst faktury dostawy | ||
| Certificate | Szczegóły karty podarunkowej | ||
| Number | string | Numer karty podarunkowej | |
| ComboItemInformation | Szczegóły zestawu | ||
| ComboId | Guid | ID zestawu (po stronie klienta) | |
| SourceId | Guid | SourceId elementu zestawu | |
| GroupId | Guid | ID grupy elementu zestawu | |
| CounterMetric | Typ metryki (enum) | ||
| OrdersSum = 1 | Suma zamówień | ||
| OrdersCount = 2 | Liczba zamówień | ||
| PayFromWallet = 3 | Kwota płatności z konta | ||
| CounterPeriod | Okres (enum) | ||
| AllTime = 0 | Za cały czas | ||
| Day = 1 | 1 dzień | ||
| Week = 2 | 7 dni | ||
| Month = 3 | 30 dni | ||
| Quarter = 4 | 90 dni | ||
| Year = 5 | 365 dni | ||
| WeekBegin = 6 | Od 1. dnia bieżącego tygodnia | ||
| MonthBegin = 7 | Od 1. dnia bieżącego miesiąca | ||
| Delivery | Dostawa | ||
| DeliveryDate | DateTimeOffset | Data dostawy | |
| DeliveryType | DeliveryType | Typ usługi (enum):
| |
| MarketingSource | string | Źródło marketingowe (reklama) | |
| SourceKey | string | Źródło dostawy | |
| City | string | Miasto | |
| Street | string | Ulica. | |
| Region | string | Dzielnica. | |
| Guest | Gość | ||
| Name | string | Imię | |
| LastName | string | Nazwisko | |
| Sex | Sex | Płeć | |
| Birthday | DateTime? | Data urodzenia | |
| Categories | IList<GuestCategory> | Lista kategorii. | |
| UserWallets | IList<UserWallet> | Lista kont gościa. | |
| MagnetCards | IList<MagnetCard> | Lista powiązanych kart. | |
| MagnetCard | Szczegóły karty gościa | ||
| Track | string | Ścieżka karty magnetycznej | |
| Number | string | Numer karty magnetycznej | |
| Order | Zamówienie | ||
| Items | IList<OrderItem> | Lista pozycji. | |
| OpenTime | DateTimeOffset | Czas utworzenia zamówienia | |
| CloseTime | DateTimeOffset | Czas zamknięcia zamówienia | |
| SumAfterDiscount | decimal | Kwota zamówienia po rabatach i narzutach | |
| AuthType | AuthType | Metoda uwierzytelniania klienta | |
| AuthCredential | string | Metoda uwierzytelniania: numer telefonu, numer karty, numer karty podarunkowej itp. | |
| GetAuthInfo() | string | Drukuj szczegóły metody uwierzytelniania klienta na paragonie | |
| OrderItem | Pozycja zamówienia | ||
| Id | Guid | ID pozycji zamówienia | |
| ParentId | Guid | ID nadrzędnego komponentu w drzewie pozycji zamówienia. Możliwe, że używany jest inny ID pozycji zamówienia w przypadku modyfikatorów oraz ID zestawu w przypadku połówek | |
| ComboInformation | ComboInformation | Szczegóły zestawu Nieobowiązkowe | |
| ProductCode | string | Kod produktu (SKU) | |
| ProductName | string | Nazwa produktu. | |
| ProductCategory | string | Kategoria produktu. | |
| Size | string | Rozmiar produktu | |
| Amount | decimal | Ilość pozycji zamówienia | |
| SumAfterDiscount | decimal | Cena produktu po rabatach Syrve Office | |
| Comment | string | Komentarz do pozycji | |
| Type | OrderItemType | Typ pozycji zamówienia | |
| OrderItemType | Typ pozycji zamówienia (enum) | ||
| ProductItem | Prosta pozycja zamówienia | ||
| CompoundComponent | Część zestawu | ||
| Modifier | Modyfikator | ||
| CommonModifier | Wspólny modyfikator pozycji składającej się z kilku części | ||
| Store | Sklep | ||
| Name | string | Nazwa | |
| Currency | ICurrency | Waluta. | |
| PayFromWalletOperation | Transakcja płatności z konta | ||
| Wallet | Wallet | Konto. | |
| UserWalletId | Guid | ID konta klienta | |
| DayLimit | decimal | Limit dzienny | |
| WeekLimit | decimal | Limit tygodniowy | |
| MonthLimit | decimal | Limit miesięczny | |
| AllowMinusBalance | bool | Czy dozwolony jest debet | |
| RealBalance | decimal | Saldo konta | |
| PaymentLimit | PaymentLimit | Maksymalna kwota płatności dla akcji płatniczej:
| |
| IsOffline | bool | Czy płatność została dokonana offline | |
| ProgramType | Typ programu (enum) | ||
| Money = 0 | Program pieniężny | ||
| Bonus = 1 | Program nagród | ||
| Product = 2 | Program żywnościowy | ||
| Discount = 3 | Rabaty, Prezenty, Zestawy | ||
| Certificate = 4 | Program kart podarunkowych | ||
| Sex | Płeć (enum) | ||
| NotSpecified | Nieokreślona | ||
| Male | Mężczyzna | ||
| Female | Kobieta | ||
| UserWallet | Szczegóły konta klienta | ||
| Id | Guid | ID konta klienta | |
| Wallet | Wallet | Szczegóły konta | |
| Balance | decimal | Saldo konta | |
| Wallet | Szczegóły konta | ||
| Name | string | Nazwa | |
| IsInteger | bool | Atrybut całkowity | |
| IsActive | bool | Czy program jest aktywny | |
| ProgramType | ProgramType | Typ programu | |
Abstrakcyjna klasa bazowa dla wszystkich głównych modeli szablonów, która będzie używana do generowania paragonów, to TemplateBase. Klasa zawiera funkcje do standardowego formatowania danych. Każdy szablon jest niejawnie dziedziczony z klasy TemplateBase i zapewnia dostęp do metod formatowania.
| Funkcja | Opis | |
| Metoda | string FormatAmount(decimal amount) | Format ilości |
| string FormatMoney(decimal price, ICurrency currency) | Format ceny to „123,45”. | |
| string FormatMoneyMin(decimal price, ICurrency currency) | Format ceny to „123,45” lub „123”, jeśli wartość jest liczbą całkowitą. | |
| string FormatPercent(decimal percent) | Format procentowy. | |
| Format czasu | string FormatTime(DateTime time) | HH:mm |
| string FormatLongTime(DateTime time) | HH:mm:ss | |
| string FormatLongDateTime(DateTime dateTime) | dd.MM.yyyy HH:mm | |
| string FormatFullDateTime(DateTime dateTime) | d MMM HH:mm | |
| string FormatDate(DateTime dateTime) | dd.MM.yyyy | |
| string FormatDateTimeCustom(DateTime dateTime, string format) | Dowolny format. | |
| Pozyskiwanie metryk | string Counter(CounterMetric metric, CounterPeriod period) | Pobiera metryki określonego typu na wskazany okres w formie łańcucha znaków. Jeśli gość nie jest zalogowany lub okres jest niedostępny dla metryk, metoda zwraca pusty łańcuch. Przykład użycia: @Model.Counter(CounterMetric.OrdersSum, CounterPeriod.Month) @Model.Counter(CounterMetric.OrdersCount, CounterPeriod.AllTime) Dostępny jest tylko okres „Dla całego czasu” dla metryki „Liczba zamówień” . |
| decimal NumericCounter(CounterMetric metric, CounterPeriod period) | Pobiera metryki określonego typu na wskazany okres w formie liczbowej. Jeśli gość nie jest zalogowany lub okres jest niedostępny dla metryk, metoda zwraca pusty łańcuch. Przykład użycia: @Model.NumericCounter(CounterMetric.OrdersSum, CounterPeriod.Month) @Model.NumericCounter(CounterMetric.OrdersCount, CounterPeriod.AllTime) Dostępny jest tylko okres „Dla całego czasu” dla metryki „Liczba zamówień”. |
Formatowanie tekstu
W szablonach paragonów i promptów można używać języka znaczników do formatowania tekstu.
Aby tekst był poprawnie wyświetlany, należy otoczyć go specjalnymi znakami:
- zamiast < ‒ <
- zamiast > ‒ >
Przykład:
<center>Nagrody</center>