Customize Receipts Using Functions

Functions in Point of Sale receipt layouts dynamically display relevant information, improving clarity and reducing clutter. For instance, cash details are hidden for credit card payments, and employee discount info is omitted for non-employee sales, ensuring a cleaner, more user-friendly receipt.

Function Description Example
=IF(expression,TrueOutput, FalseOutput) If the expression is true, TrueOutput will be displayed otherwise FalseOutput will be displayed. Only "=" will be honored in the expression. =IF(:ps_p_fulfillment_type=Online,(S),(I))
=DATEFORMAT(TimestampPSTag, DateFormat)

Timestamp PS Tags can configured to display a custom date format.

Note
Note The date format can have a maximum of 75 characters.

Supported: Modern POS >= 8.1.1

To display the time with minute precision (e.g., "08/28/2024 10:01 AM") use the formula:

=DATEFORMAT(:ps_order_time, MM/dd/yyyy hh:mm a)

To display the time with second precision (e.g., "08/28/2024 10:01:38 AM"), use the formula:

=DATEFORMAT(:ps_order_time,MM/dd/yyyy hh:mm:ss a)

Notes

  • All content will be shown on the receipt as visibility of rows and cells cannot be toggled.
  • There can only be one function per cell, functions cannot be chained together, i.e., =IF(=DATEFORMAT(tag,format) == time, A, B)
  • Functions can only contain one PS tag at a time.
  • Functions MUST be the only configuration for a given cell. They can not be mixed with text.
  • If functions are not formatted correctly, the receipts will display an incorrect output or the raw input function.

Functions For Truncations

Starting in POS version 9.2.1, when the =IF function returns an empty string, the receipt line will be truncated, thus removing the empty row where the =IF function result would have been. As of 9.2.1 this only applies to the Payment Tender receipt component.

For example, take the functions:

  1. =IF(:ps_payment_tender_type=Gift Card,:ps_gc_tender_balance,)
  2. =IF(:ps_payment_tender_type=Cash,:ps_cash_tendered_amount,)

Example functions for determining the payment details to display on a receipt.

If an order is paid with cash:

  • In the first function
    • The PS Tag, :ps_payment_tender_type in the expression :ps_payment_tender_type=Gift Card will be replaced with “Cash”.
    • As “Cash” does not equal “Gift Card” we will return the false output. False output is “” and since it is an empty string then the receipt line will be truncated and an empty space will not be rendered on the receipt.
  • In the second function
    • The PS Tag, :ps_payment_tender_type in the expression :ps_payment_tender_type=Cash will be replaced with “Cash”.
    • As “Cash” does equal “Cash” we will return the true output.

To summarize, the configuration of the PS tags and functions determines the outcome. As the order was placed using cash as the payment method, the function =IF(:ps_payment_tender_type=Gift Card,:ps_gc_tender_balance,) yields a false output. On the other hand, the function =IF(:ps_payment_tender_type=Cash,:ps_cash_tendered_amount,) generates a true output. The following receipt example shows the gift card details are omitted and instead displays the relevant cash information, ensuring that no empty space is left on the receipt.

Example receipt displaying details for a cash payment.

Language and Functions

When operating in a non-English language, ensure that conditional selections are adjusted to match the language of the region. For instance, update "Gift Card" to "Carte cadeau" for the IF statement to align correctly.

  • France
    • =IF(:ps_payment_tender_type=Carte cadeau,Solde de carte cadeau,) or
    • =IF(:ps_payment_tender_type=Carte cadeau,:ps_gc_tender_balance,)
  • Mexico
    • =IF(:ps_payment_tender_type=Efectivo,Monto Pagado en Efectivo,) or
    • =IF(:ps_payment_tender_type=Efectivo,:ps_cash_tendered_amount,)

Gift Card Balance & Serial Display for Gift Card Products

To display the Gift Card Balance & Serial Number for Gift Card Products only, use these functions:

  • Gift Card Balance

    =IF(:ps_p_id=<GC Product ID>,:ps_p_gc_balance,)

  • Gift Card Serial Number

    =IF(:ps_p_id=<GC Product ID>,:ps_p_serial_num,)

Note
Note Ensure that 'GC Product ID' corresponds to the product ID configured in the CMS (Integrations > Payment Gateway (Adyen) > Gift Card Settings > Gift Card SKU).

For example, if the configured product ID is "GIFT CARD," the function should be:

=IF(:ps_p_id=GIFT CARD,:ps_p_gc_balance,)

Example functions for modifying product details on a receipt.