Loyalty service

The Loyalty service calculates loyalty points both when selling items and when using them for payments and/or discounts. The service also authorizes loyalty point payments by checking the point status of the loyalty card being used for payment.

Possible customization includes a calculation of awarded loyalty points, rounding and local/external loyalty payment authorization.

Configurations

There are various configurations of loyalty cards, barcodes, schemes and etc. that must be concluded before the POS can start using the loyalty functionality. Please see the section on loyalty functionality on our online help for more information about all of these configurations.

Main functionality

 

Name Description
AddCustomerToLoyaltyCard Displays a dialog where a customer and a loyalty card can be connected.
AddLoyaltyCardToTransaction This function adds a loyalty card and the customer attached to the loyalty card to the transaction. This function also calculates the points that are on the transaction (if the loyalty card was added after some items were added to the sale).
AddLoyaltyPayment This function is called from the Pay loyalty operation. It retrieves loyalty card information from the user and the number of points that should be used for payment.
AddLoyaltyPoints This function calculates the points on each item and the total number of points on the transaction. This function is called from the ConcludeTransaction from the Transaction service when the POS is finishing the sale.
AddLoyaltyPointsDiscount Uses GetLoyaltyCardInfo to retrieve information about a loyalty card and the number of points that should be used for the discount. The points are then turned into a discount and divided between all the items on the transaction.
GetLoyaltyCardInfo Displays a dialog where the user must enter a loyalty card number and information about the loyalty card is retrieved including point status, point value and etc. It depends on the context of what operation and/or functionality is calling this function how the dialog is displayed. The same dialog is used to view loyalty card status, pay with loyalty cards and add a loyalty point discount.
LoyaltyDiscountRecalculationNeeded Returns true if the loyalty discount needs to be recalculated due to the total amount having changed.
LoyaltyCardExistsForLoyaltyScheme Checks if the scheme is in use by any card.
UpdateIssuedLoyaltyPoints Updates the central database with the loyalty points that have been issued (accrued) during the sale or when a sale with a loyalty points tender line is being returned. This function is called from the ConcludeTransaction from the Transaction service when the POS is finishing the sale.
UpdateUsedLoyaltyPoints Updates the central database with the loyalty points that have been used as a discount during the sale or when a sale is being paid for with loyalty points tender line. This function is called from the ConcludeTransaction from the Transaction service when the POS is finishing the sale.
VoidLoyaltyPayment This function is called from the Void payment operation if the payment line that is selected for voiding is a loyalty point tender line.

POS Operations

Many operations in the POS directly call the Loyalty service. Here below is a list of all the operations and which functions they call

Name Description
Add customer to loyalty card Calls function AddCustomerToLoyaltyCard
Get loyalty card information Calls function GetLoyaltyCardInfo
Loyalty request Calls function AddLoyaltyCardToTransaction
Loyalty point discount Calls function AddLoyaltyPointsDiscount
Pay loyalty Calls function AddLoyaltyPayment
Use loyalty card (on Customer edit dialog) Calls function AddLoyaltyCardToTransaction
Void payment Calls function VoidLoyaltyPayment

Development pack

To find this service in the development pack go to DevPack\Source\POS\Services

See also

Transaction service