This service performs multiple functions:
Gift Card to Loyalty Conversion
Loyalty Expiration
Gift Card to Loyalty Conversion
This service is responsible for converting Loyalty points into Gift Cards using pre-defined rules.
Both Loyalty and Gift Card modules must be enabled.
Loyalty Conversion Rules can be configured with one of the following Conversion Type:
We currently only support 1 Type: Fixed Points to Fixed Dollars
However, it has been architected to support the addition of new rules once they are defined/requested with little coding effort.
Only customers with a valid Loyalty Code assigned to them will be considered for this feature.
Fixed Points Conversion
GC Code Example: "LOYTOGC" Specify one GC Code from CP
Unit Points Value Example: 5,000 Define in Settings
Unit Dollar Value Example: $5.00 Uses the Default Amount set in the specified Gift Card Code.
Loyalty Code Example: "Level-1" From CP Settings * Optional restriction to a specific Customer Loyalty Code
The service will run at an interval defined in app.setting CP_LOY_GFC_CONVERT_INTERVAL which defaults to each hour.
Identify qualifying customers per the rule type
Identify the number of conversion units the customer qualifies for using the Unit Points Value and Customer Loyalty Balance. E.G. 12,000 point balance with UnitPoint setting of 5,000 points will calculate to 2 conversion units. =rounddown(12,000/5,000)
Create a Negative Loyalty Adjustment (referencing the GC Number in the comment)
Create a New Gift Card using the GC Code in the configuration
Multiple Conversion Handling
When multiple Conversion Units are identified for a qualifying customer, this rule will use the Gift Card Code setting for "Can Change" (field: ALLOW_AMT_CHNG) to determine whether conversions will be consolidated or created as separate Gift Cards.
If the "Can Change" setting is enabled on the specified Gift Card Code, then only one card will be created for the total amount of points to be converted. E.G. If customer has 10,000 points available for Conversion and the Fixed Unitpoints was set at 5,000 points, a single adjustment for -10,000 points will be created and a single Gift Card for $10.00 would be created (Assuming $5.00 was the default amount on the GFC_COD).
If the "Can Change" setting is not enabled, then one card for each unit will be generated. E.G. the same 10,000 points would result in (2) -5,000 point adjustments and (2) $5.00 gift cards.
Please note:
This service trusts that the customer loyalty balance on the AR_CUST record is correctly set.
Reserved Gift Card Ids are randomized (same as described in the CP Extender: Gift Card Module)
Gift Card Reservations, Loyalty Adjustments, Events and Gift Card Creation is all performed inside a transaction, so the entire activity will be rolled back if an error were to occur during the activity cycle. This means that there will never be a situation that could result in a negative loyalty point adjustment but no Gift Card created. Either all are performed successfully, or none are performed and rolledback.
Completed Gift Card and Loyalty Adjustment
โ
Loyalty Expiration
Rule: 1 year Inactive Earnings Rule
Expirations will only process for customers who have any Loyalty Program assigned, they must have a current loyalty balance > 0. The last Earning date must be dated prior to 1 year from the runtime date.
The last Earning Date will be determined by the latter of the most recent customer sale with loyalty earnings from (Standard Counterpoint field: AR_CUST: LST_LOY_EARN_TKT_DAT) or the last positive point adjustment entry for that customer in AR_LOY_PT_ADJ_HIST or AR_LOY_PT_ADJ_TRX.
Rule Event: For each identified customer, a unique Counterpoint event and a POSTED Loyalty Adjustment will be created equal to the open balance value bringing the account to 0 points.
The loyalty expiration adjustment will be referenced with "Expiration" and commented with "Inactive Expiration"
The customer record will also be updated to reflect changes:
Last Adjustment Date = Runtime date
Last Adjustment points = 0
Last Adjustment Doc = "Expiration"
Run Frequency: Occur every 5 minutes and runs in 1,000 customer batches. * this may change