Przejdź do głównej zawartości

Model danych

Przegląd

W Syrve Loyalty możesz tworzyć i używać szablonów Razor:

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 i wyświetlane w wezwaniach. Ten artykuł omawia model takich danych.

Model bazowy jest rdzeniem takich danych i jest dostępny na paragonach, w SMS-ach oraz wezwaniach niezależnie od używanych akcji.

Oprócz modelu bazowego każda akcja ma własny zestaw właściwości, które można wykorzystać do skonfigurowania szablonu paragonu, SMS-a lub wezwania.

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.

NazwaTyp danychOpis
Właściwości
StoreStoreDane firmy.
GuestGuestDane gościa (opcjonalne).
CertificateCertificateDane karty podarunkowej (opcjonalne).
OrderOrder

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)stringPobierz wartość metryki klienta wskazującą walutę.
NumericCounter(CounterMetric, CounterPeriod)decimalPobierz 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.

AkcjaWłaściwośćTyp danychOpis

Doładuj konto o % wartości zamówienia

Modele:

RefillWalletPercentActionCheque 
RefillWalletPercentActionSms





Doładuj konto o kwotę

Modele:

AdditionalBonusFixedSumActionCheque
AdditionalBonusFixedSumActionSms

BalanceAfter decimal Saldo konta po doładowaniu
BalanceAfterWithCurrencystring Saldo konta po doładowaniu wraz z oznaczeniem waluty
BalanceBefore decimal Saldo konta przed doładowaniem
BalanceBeforeWithCurrency stringSaldo konta przed doładowaniem wraz z oznaczeniem waluty
ChequeGenerationModeChequeGenerationMode

Tryb generowania tekstu

Używany tylko na paragonach

DeliveryDeliveryDostawa (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
SumWithCurrencystringSaldo konta wraz z oznaczeniem waluty
Wallet Wallet Konto płatnicze (opcjonalne)

Płatność z konta

Modele:

PaymentActionCheque
PaymentActionSms

BalanceAfterPaymentWithCurrencystringSaldo konta po płatności wraz z oznaczeniem waluty
BalanceWithCurrencystring Saldo konta wraz z oznaczeniem waluty
ChequeGenerationMode ChequeGenerationMode 

Tryb generowania tekstu

Używany tylko na paragonach

DeliveryDeliveryDostawa (opcjonalne)
PayFromWalletOperationPayFromWalletOperationInformacje o transakcji płatniczej.
PaymentSumWithCurrency stringKwota płatności z konta
WalletWalletKonto płatnicze

Drukuj informacje na rachunku/paragonie/fakturze dostawy

PrintChequeActionCheque

ChequeGenerationModeChequeGenerationModeTryb generowania tekstu paragonu
DeliveryDeliveryDostawa (opcjonalne)

Wyślij SMS

SmsActionRazorModel

Dostępne są tylko właściwości podstawowego modelu

W akcjach okresowych właściwość Order nie jest dostępna.

Podpowiedź

UpsellingTipSuggestion

DeliveryDeliveryDostawa (opcjonalne)

Opis typów danych 

Tabela zawiera szczegółowy opis typów danych oraz ich właściwości.

KlasaWłaściwościTyp danychOpis
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
ChequeGenerationModeTryb generowania tekstu paragonu (enum)
Bill = 1 Generuj tekst rachunku gościa
CashRegister = 2 Generuj tekst paragonu kasowego
DeliveryBill = 3 Generuj tekst faktury dostawy
CertificateSzczegóły karty podarunkowej
NumberstringNumer karty podarunkowej
ComboItemInformationSzczegóły zestawu
ComboIdGuidID zestawu (po stronie klienta)
SourceIdGuidSourceId elementu zestawu
GroupIdGuidID grupy elementu zestawu
CounterMetricTyp metryki (enum)
OrdersSum = 1 Suma zamówień
OrdersCount = 2 Liczba zamówień
PayFromWallet = 3 Kwota płatności z konta
CounterPeriodOkres (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
DeliveryDostawa
DeliveryDateDateTimeOffsetData dostawy
DeliveryTypeDeliveryType

Typ usługi (enum): 

  • Delivery = 0, dostawa
  • SelfPickup = 1, odbiór własny
MarketingSourcestringŹródło marketingowe (reklama)
SourceKeystringŹródło dostawy
CitystringMiasto
StreetstringUlica.
RegionstringDzielnica.
GuestGość
NamestringImię
LastNamestringNazwisko
SexSexPłeć
BirthdayDateTime?Data urodzenia
CategoriesIList<GuestCategory>Lista kategorii.
UserWalletsIList<UserWallet>Lista kont gościa.
MagnetCardsIList<MagnetCard>Lista powiązanych kart.
MagnetCardSzczegóły karty gościa
TrackstringŚcieżka karty magnetycznej
NumberstringNumer karty magnetycznej
OrderZamówienie
ItemsIList<OrderItem>Lista pozycji.
OpenTimeDateTimeOffsetCzas utworzenia zamówienia
CloseTimeDateTimeOffsetCzas zamknięcia zamówienia
SumAfterDiscountdecimalKwota zamówienia po rabatach i dopłatach
AuthTypeAuthTypeMetoda uwierzytelniania klienta
AuthCredentialstringMetoda uwierzytelniania: numer telefonu, numer karty, numer karty podarunkowej itp.
GetAuthInfo()stringDrukuj szczegóły metody uwierzytelniania klienta na paragonie
OrderItemPozycja zamówienia
IdGuidID pozycji zamówienia
ParentIdGuidID komponentu nadrzędnego w drzewie pozycji zamówienia. Możliwe, że używany jest inny ID pozycji zamówienia w przypadku modyfikatorów oraz ID złożonego posiłku w przypadku połówek
ComboInformationComboInformation 

Szczegóły zestawu

Nieobowiązkowe

ProductCodestringKod pozycji (SKU)
ProductNamestringNazwa pozycji.
ProductCategorystringKategoria pozycji.
SizestringRozmiar pozycji
AmountdecimalIlość pozycji zamówienia
SumAfterDiscountdecimalCena pozycji po rabatach Syrve Office
CommentstringKomentarz do pozycji
TypeOrderItemTypeTyp pozycji zamówienia
OrderItemTypeTyp pozycji zamówienia (enum)
ProductItem Prosta pozycja zamówienia
CompoundComponent Część zestawu posiłku
Modifier Modyfikator
CommonModifier Wspólny modyfikator pozycji składającej się z kilku części
StoreSklep
NamestringNazwa
CurrencyICurrencyWaluta.
PayFromWalletOperationTransakcja płatności z konta
WalletWalletKonto.
UserWalletIdGuidID konta klienta
DayLimitdecimalLimit dzienny
WeekLimitdecimalLimit tygodniowy
MonthLimitdecimalLimit miesięczny
AllowMinusBalanceboolCzy dozwolone jest debetowanie
RealBalancedecimalSaldo konta
PaymentLimitPaymentLimit

Maksymalna kwota płatności dla akcji płatności:

  • IsInteger (bool) ‒ czy limit jest liczbą całkowitą
  • Count (int) ‒ maksymalna ilość
  • Sum (decimal) ‒ maksymalna kwota płatności
IsOfflineboolCzy płatność została dokonana offline
ProgramTypeTyp 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
SexPłeć (enum)
NotSpecified Nie określono
Male Mężczyzna
Female Kobieta
UserWalletSzczegóły konta klienta
IdGuidID konta klienta
WalletWalletSzczegóły konta
BalancedecimalSaldo konta
WalletSzczegóły konta
NamestringNazwa
IsIntegerboolAtrybut całkowity
IsActiveboolCzy program jest aktywny
ProgramTypeProgramTypeTyp programu
Metody formatowania  -------------------

Abstrakcyjna klasa bazowa dla wszystkich głównych modeli szablonów, które będą używane 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.

 FunkcjaOpis
Metodastring 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 całkowita.
string FormatPercent(decimal percent)Format procentowy.
Format czasustring 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 „Na cały czas” dla metryk „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 „Na cały czas” dla metryk „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ć tekst specjalnymi znakami:

  • zamiast < ‒ <
  • zamiast > ‒ >

 Przykład:

<center>Nagrody</center>