Release August 2025 - v7.19
Learn about the new releases in Loyalife
-
Add Audit Trail Support for Bulk Points Adjustment (Upload + Approval/Rejection) and Trigger Audit Log Entry for File Uploads via Loyalife UI
- The system now automatically logs all events related to bulk points adjustment operations, including file uploads and approval/rejection actions, providing a complete audit trail for compliance and traceability purposes.
- The system now captures the following information for each bulk points adjustment event
- Date with standard timestamp format (YYYY-MM-DD HH:MM:SS)
- Username automatically captured from the logged-in user session
- Action as "Bulk points adjustment" (new audit category)
- Page URL showing current page location where the action was performed
- Activity with detailed description including filename (e.g., "Bulk points adjustment via upload. File bulk_upload_100.csv.")
- IP Address dynamically captured from the user's network session
- Browser automatically detected browser and version information.
-
Decouple Plum Button Visibility from Platform Configuration Permission
- With the above improvement, User who has permission to login to the Loyalife application can see the plum link.
- Plum link would be seen only if the marketplace details are configured at the program level. And to configure marketplace user needs to have platform view and platform edit privilege.
- User who has access to Loyalife but not plum will be redirected to plum member section.
- User with admin access is plum will be redirected to plum admin section.
-
Support Automated Report Upload with Optional Approval Workflow
- This release introduces the Report Upload Automation Configuration feature under Advanced Configuration, providing program administrators with comprehensive control over automated report generation and SFTP upload processes.
- The feature includes a robust Maker-Checker approval workflow
- User with "Manage Report Automation" permission will be able to setup automated report upload
- Only Auto generated reports which are active is listed for automated report upload setup
- Approval workflow can be enabled or disabled at individual report level
- Auto-generated reports create approval requests immediately after generation
- Future uploads are disabled when configuration is deleted, while existing history is retained
- Entries are properly removed from dropdown and upload attempts are stopped for deleted reports
4.Custom Report Configuration (SQL-based)
- This release introduces the Custom Report SQL Query feature, enabling users with appropriate permissions to create highly customized reports using SQL queries
- Custom reports are generated based on SQL queries with automatic variable replacement
- Used variables are automatically replaced with actual values during report generation
- Report data is displayed based on the executed SQL query results
- Users can create custom reports using daily, weekly, monthly, yearly, custom monthly, or one-time generation schedules
- Only SELECT and EXEC statements are allowed; other SQL standard words are restricted
- When variable values are updated, changes are considered from the next cron execution onwards
- Only admin role users can create custom reports
- Users with create report permission can view, delete, and share reports but cannot create custom reports
- Users with view report permission can only see shared reports, not custom reports
5.‘Membership Blocked’ for Full Program Restriction
- Blocked Status is Renamed To "Login Blocked" to better reflect existing functionality (restricts login and redemption, allows accrual)
- New Status Added "Membership Blocked" for complete program restriction.
- With Membership Blocked status user would be restricted from below features
- Login restricted
- Accrual restricted (transactions, referrals, campaigns, peer-to-peer, API, bulk uploads, SFTP)
- Redemption restricted
- Tier Bonus is not in scope for this story due to tech feasibility.
- Status can only be set/unset by Admin with “Allow Membership Block” role permission.
- Maker-Checker approval required, with reason
- Audit Trail records user, timestamp, action, and reason
6.Enable Dynamic Column Configuration in Member Transaction Summary Table
- Default columns: Merchant Name, Amount, Points, Transaction Date, Processing Date, Transaction Type,
- Narration will be visible by default and cannot be deselected.
- User can select/deselect additional transaction attributes from Global Attributes, Local Attributes and System Attributes
- Dynamic column selections made via session filter are not reflected in the exported report.
- Selected columns do not persist when switching programs within the same session
7.Report Configuration and Download Experience Overhaul – Transaction, Member & Communication Reports
- This release introduces a comprehensive revamp of the reporting system across Transaction Reports, Member Reports, and Communication Reports.
- The enhancement unifies the reporting experience, improves usability, removes legacy field dependencies, supports advanced filtering, and introduces dynamic period generation logic for better operational efficiency and user experience.
- Merged "Global Columns" and "Custom Columns" into a unified "Report Columns" selector with category-wise segmentation (Global Attributes, Local Attributes, System Attributes)
- Consolidated existing "Filters" and "Narration" fields into a single "Report Filters" section for better organization
- Introduced flexible period generation options including Daily, Weekly, Monthly, Quarterly, Yearly, and Custom Monthly Range (supporting up to 5 date ranges)
- Multiple period of generation of selection is forbidden. Existing reports continue to support multiple period generation if already configured.
- In the member report, Removed Enrollment Date from filter list and integrated it with Period of Generation for more logical data organization
- Existing operator logic is maintained.
- Streamlined report creation, viewing, and download flows for improved usability
- Report listing screen allows downloading of the most recently generated report
- In the view report section, preview of records is removed and now displays all generated reports with pagination, including File Name, Date of Generation, Period of Generation, Status, and Download options Report Summary is not present currently and will be available in upcoming release
- When the export of member PI (Personally Identifiable) data is disabled, but PI attributes are already configured in recurring member reports, the PI column values will be displayed in encrypted format. Conversely, when the export of member PI data is enabled, the values will be displayed in decrypted format.
8.Segment Linkage with Rule Groups This release introduces the Rule Group Segment Linkage feature, enabling targeted rule-based point awarding by introducing member segmentation at the Rule Group level.
- Users can successfully select active Manual Segments during Rule Group creation
- Rule Groups automatically default to "All Members" when no segment is selected
- Linked segments cannot be changed after Rule Group creation, ensuring data integrity
- Only Manual Segments are displayed in the dropdown, with Smart Segments properly excluded
- New members added to Manual Segments become eligible for future transactions
- Segments linked to Rule Groups or Campaigns cannot be deleted, protecting data integrity
- Real-time member count display for linked segments is not yet implemented
- Linked segment details (name, type, status, member count) are not fully displayed in the UI
- Providing ability to add Pre-Processing Functions via Frontend for SFTP Files This release introduces a powerful Pre-Processing Script feature in the Advanced Configuration module, enabling super administrators to customize and transform data files before processing
- This is applicable only for CPD and TXN files. BNS/CRD files are excluded. Also data coming from API(CPD/TXN/CRD/BNS) are not part of pre-processing
- Only super administrators can set up and configure pre-processing scripts
- Normal CPD and TXN processing continues to work without interruption when pre-processing is not configured
- Supports testing with .csv and .txt file extensions only
- Test function works with maximum 100 records; files exceeding this limit generate error messages
- System accepts only comma-separated and pipeline delimiters.
- The system allows creating new columns or removing columns using dynamic attributes, static values, or combinations, supports data type requirements and multiple conditional operators (equals, not_equals, greater_than, less_than), but does not support greater_equals, lesser_equals, contains, starts_with, ends_with, or matches_regex.
- The system supports removing specific rows based on multiple if-else conditions and adding new rows by duplicating data from previous rows. It also enables row-level operations with conditional processing and allows skipping or bypassing specific column cell values when creating new rows.
- The system allows updating specific cell values using multiple if-else conditions while supporting complex conditional logic. All cell modifications adhere to defined data type constraints.
- The system supports delimiter conversion from pipeline to comma-separated formats and can process files without headers using pre-processing scripts. It ensures successful execution by requiring index matching between the JSON script and file, and also handles files containing single records.
- The system treats empty values as empty during addition and as zero during multiplication or division, and supports float data types with both int and float combinations. While integer types allow such combinations in testing, they fail during actual execution, and static default values can be used in column operations.
- The system provides string flexibility by allowing all data types within the string data type, while the date data type strictly accepts only valid date formats. During concatenation, any blank column values result in empty outputs.
-
Implementing Maker-Checker Workflow for Member and Rule Engine Attributes This release introduces a comprehensive Maker-Checker approval workflow for Attribute Management, ensuring controlled and auditable changes to member attributes, rule engine attributes, and related configurations
- Maker-Checker can be successfully enabled through Advanced Configuration → Modules → Attribute Management
- Once activated, the feature cannot be disabled, ensuring consistent approval workflow enforcement Create, Edit and Delete operations of member and rule engine attributes are routed through the approval process
- Enabling/disabling, adding, editing, and bulk uploading product codes are passed through the approval process
- Sub-product code operations are properly integrated with the approval workflow
- Aggregate attribute modifications are successfully routed through the approval process
-
Streamline Direct Report Download Functionality Now user gets a option to download the report directly from the listing page. And when clicking on the download icon, the report download happens immediately and no date/calendar widget is seen
-
Providing Maker-Checker Report for Comprehensive Approval Tracking This release introduces comprehensive CSV export functionality for the Maker Checker approval workflow, enabling users with appropriate permissions to export approval request data
- CSV export feature is available in both Pending and All Actions views
- Export option is only visible to users with Maker/Checker/Approver roles
- Exported files are properly organized under Reports > Administrative Data section
- Users without access to specific modules cannot see corresponding approval requests or export related data
- Each export action generates a proper audit trail entry for compliance and tracking
-
Implement Monthly Customer Tiering and Tiering Point Reports Based on Member Balance
- Two reports "Tiering User Report" and "Tiering Point Report" part of custom report were configured and reports were generated appropriately
- In both reports, header are missing. If headers are to be seen then this needs to be handled explicitly in the query
- The report creates buckets dynamically based on available member data. Specifically, if a particular bucket contains no data or members, that bucket is automatically excluded from the report output, and the next bucket with available data is displayed instead.
- Custom report will be executed based on the period of generation (in this case its Monthly)
-
Worldia Use Case : Storefront Redirection Based on Member Country
- Now based on the country selected while registering or when user changes the country using Edit profile feature, storefront would be redirected to a catalog appropriate to member’s country
- When member selects India or any other country apart from UK/US/Canada, then he would be redirected to global storefront
-
Make transaction points as BigInt across Loyalife
- As part of the tech debt Points data type is now upgraded to Bigint.
- All changes were implemented at the backend level only.
- Existing UI limits for various modules remain unchanged as no frontend modifications were done
- With this change now rule engine supports up to 16 digits for points
- All other modules support points as per the UI limits set
-
Configurable Variables in Custom Reports
- Add Variable feature is introduced in Report Settings, enabling users with appropriate permissions to create and manage custom variables for enhanced report customization and automation.
- Admin role users can see the add variable feature
- Only users with "Manage Automation Configuration" permission can add or update variables
- Users with view report/create report permissions cannot access the add variable section
- Users can create variables using string, number, date, or decimal data types and Value input fields accept data according to the specified data type
- Users can update variable names or values, but variable keys and data types cannot be modified
- Variables cannot be created using SQL standard keywords
- Variable keys cannot contain spaces and Keys cannot start with numbers, underscores, or special characters. Only underscore special characters are allowed in variable keys
- Variable keys are case-insensitive and Duplicate variables cannot be created
- Created variables can be used only in custom reports
- All variable creation and update activities are captured in detailed audit trails
-
Holding the Rules Engine points for specific Rule groups for maker checker approval queue
- Now Loyalife has Two Types of Rule Groups: Lifetime (always active, immediate processing) and Time-Bound (defined timeframe, approval required)
- Approval Workflow Toggle Added to each time-sensitive rule group that cannot be disabled once enabled
- Accrual Hold Staging Stores pending accrual eligibility records until approval
- CSV Generation: Auto-generates downloadable files per rule with member details and points
- Lifetime rules credit points immediately, time-sensitive rules create hold records
- "Final Submit" option appears for one-time approval request generation once the end date of the campaign/group is reached
- CSV Generation: Creates downloadable file with member ID, transaction ID, rule ID, accrual points, timestamp
- Approval Process: Checker reviews and approves, moving points from hold to accrual bucket
- Rejection Flow: Checker can reject, download file, modify, and upload via Bonus File Upload module
- Time-bound transactions under approval are skipped from anomaly check
-
Create Additional GL+1 Report Process for BDI with Approval Workflow
- Enhanced the GL+1 reporting system to support governance and compliance requirements through a dedicated approval workflow process.
- GL+1 Report Split: Divided the existing GL+1 report into two distinct processes: Added a dedicated GL+1 report process under "Report Automation Configuration"
- Process is linked to approval workflow before execution to ensure proper governance
- Complete report metadata such as create, delete, share etc and approval trail captured in audit logs
- New process available for configuration under existing feature
- Complete report metadata and approval trail captured in audit logs
-
Remove Member-Level Uniqueness Restriction on Card Number and Account Number
- Removed unique value restriction for last six digits and sub-relation identifier
- If both last six digits and sub-relation identifier have zero values, record will not be inserted
- If both last six digits and sub-relation identifier have empty values, record will not be inserted
- If last six digits has zero value and sub-relation identifier has empty value, record will not be inserted
-
Add Session-Based Column Configuration to Total Points Accrued / Redeemed Sections
- Enhanced the Total Points Accrued section in the member profile with configurable column functionality, providing users with the flexibility to customize their view based on their analysis needs
- Default Columns are Always Visible
- Selected attributes appear instantly in the table, with default columns always positioned first and additional attributes following, supported by horizontal scroll functionality
- Column selections persist for the current session only and reset after logout or when another program is selected. "Reset to Default" option available in the Configure Columns panel
- Column data can only be seen and not exported from here. User can however utilize reports for this information. 21.Customer’s Outstanding Points Report (Monthly Generation)
- Admin/backend team can insert the members outstanding points report in the REPORT_DETAILS table using SQL query
- The report cron job will generate CSV files containing all previous months' data on the next scheduled run
- Users can download and view the generated CSV files
- CSV file contains the following columns:
- Total earned points (Rule credit engine points, manual credit points, tier bonus, campaign bonus, and referral bonus)
- Total reversal points (Rule engine negative points)
- Total redeemed points (Manual debit transactions and Redeem API)
- Total expired points (Expired points + Closed account points)
- Total outstanding points (Total earned points - Total reversal points - Total redeemed points - Total expired points)
22.Extend Manual Bonus Point Upload Limit from 1,000 to 30,000
- System now accepts CSV uploads of up to 30,000 records for manual bonus point allocations
- Processes 30,000 manual points transactions in 45 minutes with an average processing rate of ~667 transactions per minute
- Processes 30,000 invalid transactions with all failed records properly captured and reported, maintains stable email notification system, prevents system crashes or performance degradation, and correctly identifies and communicates failed records via email
23.Generate Monthly Custom Report for Transaction Type, Points, and Amount
- Currency is not displayed in monthly report
- Headers are not included in monthly report
- The monthly report generates data for the previous month only
- All Redemption transactions are currently displayed in the report as:
- REDEMPTIONS DPOINT INFINIA
- REDEMPTIONS MILES
- Transaction Types to be included:
- Accruals Credit Card
- Accruals Debit Card
- Accruals EChannel
- Accruals Investment
- Accruals SME Lending
- Accruals Mortgage Loan
- Reversal Credit Card
- Reversal Debit Card
- Redemption Air
- Redemption Hotel
- Redemption Charity
- Redemption Giftcard
- Redemption Merchant
23.Irreversible PII Toggle Enablement
- Once the PII Data Toggle is enabled for a report, it becomes a one-way action and cannot be disabled afterward
- If the toggle is OFF, users can enable it, but once enabled (ON), the toggle is locked and cannot be switched back to OFF
- The one-way toggle mechanism provides better audit trail and governance for reports containing personally identifiable information
24.Custom Report for Miles Exchange (JAL Miles)
- Admin/backend team can insert the JAL Miles report in the REPORT_DETAILS table using SQL query which will be for monthly frequency
- The report cron job generates CSV files containing data for the selected date range on the next month start date, allowing users to download and view the generated CSV files
- The report utilizes the Sp_GetJALMileageReportInfo stored procedure to fetch JAL mileage data for the specified date range and program ID
25.Monthly Customer Tiering and Tiering Point Reports Based on Member Balance
- Queries were inserted successfully in the DB and based on the cron setup, the custom report generated successfully
- In both reports, header are missing. If headers are to be seen then this needs to be handled explicitly in the query
- The report creates buckets dynamically based on available member data. Specifically, if a particular bucket contains no data or members, that bucket is automatically excluded from the report output, and the next bucket with available data is displayed instead
- Custom report will be executed based on the period of generation (in this case its Monthly)
- This is verified on multiple programs having different data sets (Large and small data set)
26.New GL Report Using 3 Stored Procedures under Custom Reports
- Streamlined Stored Procedures - New GL Report uses only 3 specified stored procedures, eliminating the dependency on the fourth stored procedure "get gl redemption" used in the previous GL+1 report
- Modified Query Logic - Updated existing query logic to align with the new set of stored procedures, ensuring optimal data processing and report generation
- Custom Reports Integration - New GL Report is created and accessible under the Custom Reports module, providing easy access for users
- Daily Scheduling - Report is configured to run on a daily basis, ensuring regular and timely GL data updates
- Business Requirements Validation - Report output matches expected business requirements and format of GL reporting standards
27.Automated Housekeeping for Transaction History (>3 Years) and Monthly Housekeeping Summary Report for Deleted Transactions
- Introduced an automated quarterly housekeeping report that provides comprehensive audit and compliance tracking for transaction data cleanup processes
- Automated Generation - Report is auto-generated every quarter/Monthly after the housekeeping cron completes, ensuring timely and consistent reporting
- Summarized Transaction Totals - Report includes summarized totals (points) for Accrual, Redemption, and Expiry transactions, providing comprehensive data overview
- Execution Tracking - Execution Date is set to the date of cron run, providing clear audit trail for when the housekeeping process was executed
- System Attribution - Deleted By field is set to "System" since the process is automated, clearly identifying the source of the cleanup operation
- Data Reconciliation - Totals must reconcile with actual records deleted in the database, ensuring accuracy and data integrity
- Audit and Compliance Access - Report is accessible to product and client teams for audit and compliance purposes, supporting regulatory requirements
28.Block Code & Color Code Mapping for Debit/Credit Cards at CRD Level
- Implemented comprehensive card blocking and CIF management system with color-coded access control, points processing rules, and automated CIF closure functionality for the D-Point loyalty accrual system
- Card-Level Blocking Logic - When a card is blocked, prevent customer portal access through that specific card while maintaining access through other active cards under the same CIF
- Authentication Control - Block authentication attempts using blocked card numbers with appropriate error message
- Points Accrual Rules - Handle points accrual differently based on card type and block reason
- CIF-Level Management - When ALL cards under a CIF are blocked with specific conditions, close the CIF and delete all points
- Color-Coded Access Matrix - Implement access control based on color codes (Green, Yellow, Orange, Purple, Red)
- Pre-Processing Filter - Check card block status before Rule Engine Processing
- Authentication Service - Verify card number, check block status, apply access rules, allow/deny access
- CIF Management Service - Monitor all cards under CIF, evaluate blocking status, trigger CIF closure when criteria met
- BDI Integration - Implement Block Code and Color Code mappings at the CRD level, based on BDI's mapping logic
- Hadoop Data Source - Extract and transform block code from Hadoop tables and load into CRD level tables
- Points Protection Logic - Prevent points deletion if member still has at least one active card
- Points Deletion Rules - Points deletion occurs only if all CRD cards are blocked with delete-points condition
- Comprehensive Logging - Implement logging for all blocking decisions, provide manual override capability, and maintain audit trail
- Performance Optimization - Ensure minimal impact on transaction processing
- Data Integrity - No data loss during status transitions
29.Monthly Cancelled Points Report
- Introduced a new monthly Cancelled Points Report that provides comprehensive tracking and visibility into point cancellation activities
- Report is generated once every month, providing regular insights into point cancellation activities
- Report includes Relation Reference identifier for transaction/member relation, enabling precise tracking of cancelled points
- Identifies cancellations that occurred due to block code mapping from CRD level, supporting compliance and audit requirements
- Identifies cancellations that occurred due to purging of CIF data, ensuring complete visibility into data cleanup activities
30.Update GL+1 Report to Capture Original Points Before Discount
- Enhanced the GL+1 report to support the new discount voucher flow by capturing original_points_before_discount instead of only net redeemed points.
- Modified the Redemption Store Procedure to pull original_points_before_discount whenever available, ensuring correct liability calculations.
- Applied the updated logic consistently in:
- Custom Report generated for GL+1
- GL Upload process (managed by Vina)
- Backward Compatibility:
- If original_points_before_discount is empty or not provided, the system will continue using existing redeemed points as before.
- Once values are received in the payload, the system switches to using original_points_before_discount for reporting and GL+1 calculations.
- Acceptance Criteria:
- GL+1 report reflects correct liability based on original_points_before_discount where applicable.
- No impact on transactions without discount fields.
- Both report output and GL upload files reflect updated calculation.
- SQL Configuration:
- Admin/back end team can insert the GL+1 Redemption Daily Report in the REPORT_DETAILS table using SQL query.
- On the next cron job run, cumulative member redemption data for the previous day is generated in a CSV file.
- Users can download and view detailed redemption records.
- Formula Updates:
- AMOUNTLCY = original_points_before_discount * Redemption rate * 100
- AMOUNTTCY = original_points_before_discount * Redemption rate * 100
- Decimal values are rounded up to the nearest higher number.
- Example: 70.8 * 1 * 100 = 7080 ≈ 7100 31.Rule Engine Description Stamping Enhancement
- The Rule Engine now gives you more control over how transaction descriptions are handled when issuing points.
- A new Description Mapping option lets you choose whether to use the incoming transaction value (merchant_name) or stamp the transaction with the configured Rule Name.
- When enabled, the Rule Name will always be used as the transaction description, ensuring consistency even if merchant_name is missing.
- Once activated, this setting is locked for that rule and cannot be unchecked later, preserving data integrity.
- All historical data remains unchanged, and APIs, exports, and reports continue to work without modifications.
32.Occasion Reward Campaigns in Engage
- We’re introducing a new Occasion Reward Campaign type in the Engage → Campaigns module, designed to automate milestone-based rewarding and drive deeper member engagement.
- New Campaign Type: Alongside “Send Promotion” and “Send Rewards to Members,” program owners can now set up Occasion Rewards.
- Supported Occasions:
- Birthdays
- Membership Anniversaries (configurable from Enrollment Date or Activation Date)
- No Segments Needed: Eligibility is auto-determined based on milestone dates, eliminating the need for manual targeting.
- Flexible Scheduling: Every campaign requires a Start Date, with optional End Date. If no End Date is set, the campaign runs indefinitely.
- Bonus Points Issuance: Mandatory configuration ensures members always receive milestone rewards. Bonus points are credited automatically through a daily job that checks eligible members.
- Visibility & Tracking: Campaign view includes details like:
- Start and End Dates
- Total Members Reached
- Points Issued (count of transactions)
- Total Points Issued (cumulative points)
- Safeguards:
- Members can only receive one birthday bonus and one anniversary bonus per year.
- Blocked members remain ineligible.
- Failed transactions (e.g., wallet issues) are logged and retried automatically.
- This update makes it easy to set up personalized birthday and anniversary campaigns that strengthen emotional connection, improve retention, and reduce manual effort.
- Discount Voucher Support in Storefront Redemption
- We’ve enhanced Loyalife to handle discount vouchers during storefront redemptions, ensuring accurate reporting of both member points deduction and bank liability.
- New Storefront Scenario:
- Product cost: 100 points
- Customer uses a 10% discount → pays 90 points
- Bank liability remains 100 points (discount absorbed by bank)
- New API Fields (Optional):
- original_amount (Numeric) — e.g., 100
- original_points_before_discount (Numeric) — e.g., 100
- discount_code (String) — e.g., DIS100
- discount_value (Numeric) — e.g., 10
- discount_type (String) — only FIXED or PERCENTAGE
- Reporting Exposure:
- All five fields are available as system-generated columns under:
- Transaction Report Module
- Redemption Configurable Columns
- Main Transaction Summary
- Validation & Rules:
- discount_type accepts only FIXED or PERCENTAGE
- Numeric fields cannot be negative
- Null values are allowed for backward compatibility
- Backward Compatibility:
- Existing storefronts, transactions, and reports continue to work unchanged
- No historical data migration is required
- Old reports continue to function without errors
- Impact:
- This enhancement ensures that redemption transactions and GL reporting correctly reflect both the points paid by members and the bank liability, even when discount vouchers are applied. Note: These attributes will be exposed in the transaction report module
33.Discount Coupon Code at Checkout
We are excited to announce the release of the Discount Coupon Code feature on the BDI Custom Marketplace. This enhancement allows end users to apply discount codes at checkout for eligible product categories, delivering a seamless and rewarding shopping experience.
- Feature Overview
- Coupon Generation: Discount codes will be generated and managed in the backend by the BDI team.
- User Redemption: End users can apply these coupon codes at checkout on the BDI Storefront.
- Applicable Categories:
- E-Vouchers
- Shop
- Mobile Top-up
- Users receive discount codes directly from the BDI team.
- At checkout, users enter the coupon code in the “Apply Coupon” field.
- The system validates the coupon in real-time and applies the relevant discount on the order.
- Once the order is placed:
- Discount details will be visible in the Order History along with payment information and in delivery emails.
- Admins can view and analyze coupon usage through the Transaction Report in the Loyalife platform.
Updated about 2 months ago
