Change log

Gift vouchers

Gift vouchers can be issued to your customers or purchased by them online via the shopping cart.

Treepl CMS gives you control to manually create or override gift vouchers as needed and send out via email to any recipient, along with a customised message.

Managing Gift Vouchers

Found under ‘eCommerce’ > ‘Gift vouchers’, here you’ll find a list of all gift vouchers either manually created (via the admin) or purchased via your shopping cart.

Clicking the pencil icon () to the right of each item will allow editing of that gift voucher. Clicking the trash can icon () will delete the gift voucher.

To manually create a new gift voucher, click the “ADD NEW VOUCHER” button above the item list.

Adding / Editing

When setting up a new gift voucher you’ll be able to configure the details, and after saving, set the recipient information and send out the voucher.

Below are further details for the fields available.


The currency in which you want the gift voucher created in.
The actual code your customers need to enter in order to redeem this voucher. This code can contain spaces and special characters and is not case sensitive(when redeeming).
The total value of the gift voucher.
Any remaining value of the voucher(ie:if not used in full with previous order/s).
For shop created vouchers,a link will be available here to the related customers Order)
For shop created vouchers the value will be ‘Via Shop’. Admin created vouchers will have a value of ‘Manual’. This can not be edited.
Uncheck this option to disable the item from being usable in the website shopping cart.


The recipient’s name(can be full name or just first name,or even a nickname. It’s up to you).
The recipient’s email address.
Any personal message to the recipient.

This field supports Liquid!

Email Me
This button sends the gift voucher email to the current admin user’s email address.
Email Recipient
This button sends the gift voucher email to the assigned recipient’s email address.


Gift vouchers are generated via the online shopping cart when a customer purchases a Product that has been configured as a Gift Voucher. See the ‘System Properties’ for a Products settings here.

When a gift voucher product is part of a shopping cart order, three additional fields will be presented to the customer in the checkout form. These allow the customer to enter the recipient's name, email address and, optionally, a personalised message that can be included in the gift voucher email sent to the recipient.

By default, these recipient fields are added to the checkout form layout using a Liquid conditional statement when the shopping_cart object property of hasGiftVoucherProducts is true.

{% if shoppingCartData.hasGiftVoucherProducts == true %}
    <input type="text" name="Payment_GiftVoucher_ReceiverName" value="" required />
    <input type="text" name="Payment_GiftVoucher_ReceiverEmail" value="" required />
    <textarea name="Payment_GiftVoucher_ReceiverMessage" required></textarea>
{% endif %}

All recipient fields are required during checkout.

Gift vouchers, as a Product, can be configured to require shipping (perhaps you want to use a physical voucher mailed out to the customer), include a downloadable component, be discounted with discount codes, or even be purchased with other gift vouchers.


Customers can redeem gift vouchers against products they are purchasing during the shopping cart stage. The gift voucher code is entered into a system input field and will update the cart details automatically after the customer has entered the code and moved focus from the field.
Gift voucher codes are not case sensitive so do not need to match the case of the gift voucher name entered in the admin.

The predefined gift voucher input field can be rendered onto your shopping cart system page using Liquid via the giftVoucherHtml property stored in the shopping cart Liquid object (which should already be present on your shopping cart page).

So, assuming you have the shopping_cart component added like this:

{% component type:"shopping_cart", layout: "", collectionVariable:"shoppingCartData" %}

You could then render the gift voucher input code like this:


And in conjunction, you could also render the applied gift voucher value like this:


The gift voucher balance will be applied to the order total in full if the order total is equal to or greater than the voucher balance, or up to the value of the order if it’s lower. Leaving any difference as a remaining balance on the gift voucher to be available for subsequent orders.

If the gift voucher reduces the order total to 0 then you may want to conditionally switch your checkout payment method to ‘Free Payment’, otherwise you may still be asking the customer for credit card details (or whichever payment method you normally have in place).

One way to achieve this might be to add the select attribute to the payment method dropdown option (if you are using this element), like so:

<select id="Payment_Type" name="Payment_Type">
    <option value="CreditCard">Credit Card</option>
    <option value="Free" {% if shoppingCartData.totalPrice == 0 %}selected{% endif %}>Free Payment</option>
    <option value="Offline">Offline Payment</option>

Or, if you have implemented a hidden input to define the payment method, you could do something like this:

<input type="hidden" value="{% if shoppingCartData.totalPrice == 0 %}Free{% else %}CreditCard{% endif %}" id="Payment_Type" name="Payment_Type">

Recipient Email

When gift vouchers are purchased via the online shop, the recipient of the voucher will receive a system email which can be used to notify them of the details of their voucher and the sender.

Likewise, for admin created gift vouchers, the system email can be optionally sent to the admin’s email address and/or the assigned recipient.

This email can be found under ‘Email Notifications’ > ‘System Emails’ > “GiftVoucher”.

Within this email, the Liquid this object outputs the voucher order details, as per the following example data:

    "Message": "Here’s a gift for you!",
    "SiteUrl": "",
    "GiftVoucher": {
        "Name": "MYCODE01",
        "Amount": 30.0000,
        "AmountHtml": "$30.00",
        "Balance": 30.0000,
        "Type": "Manual / Via Shop",
        "Currency": "$",
        "Enabled": true,
        "RecipientName": "Alex Smith",
        "RecipientEmail": "",
        "RecipientMessage": "Here’s a gift for you!"
    "RecipientName": "Alex Smith",
    "PurchaserName": "Joe Smith",
    "PurchaserEmail": "",
    "GiftVoucherAmount": "30.0000",
    "GiftVoucherCode": "MYCODE01",
    "GiftVoucherCurrency": {
    "Id": "12527484287403950087",
    "Code": "AUD",
    "Symbol": "$",
    "DigitalCode": "36",
    "Name": "Australian Dollar"

For more information on the system email fields see here.

Your site instance should come with a default layout including the key pieces of information for this email. However, you can always reset this layout to default if it’s not currently included or has been modified. Simply click the “RESTORE TO DEFAULT” button at the top of the system email page.

Related Articles

  • Site Settings & Management

    The Treepl CMS Domain settings allow you to control default domain, landing pages, domain authentication for system emails along with country and cultural settings like number and currency formatting.
  • Site Settings & Management
    Payment Settings

    Integrate various payment gateways, for multiple countries and currencies, into Treepl CMS for form payments, subscriptions and eCommerce workflows.
  • CRM

    Orders store accounts of any payments made via the website and provide management for additional payments, invoices, order statuses, tracking info, the products purchased within the order and the details of the form submission used to take the order.
  • CRM
    Advanced CRM Groups

    Advanced CRM Groups allow you to extend the data fields within multiple areas of the CRM, either globally or on a per-record basis.
  • Liquid Objects & Usage
    {{ order }} object

    This liquid object will output the order details of a submitted payment. ...
  • Liquid Components
    module (Catalogs)

    This module component fetches data relating to eCommerce Catalogs and can be used to render Catalog structures and Products within them.
  • Liquid Components
    module (Products)

    This module component fetches data relating to eCommerce Products and can be used to render Product information.
  • Liquid Components

    This component renders an anchor element allowing the javascript function to add the item to the shopping cart.
  • Liquid Components

    This component renders an anchor element allowing the javascript function to add the item to the shopping cart and then proceeding directly to the shopping cart page.
  • Liquid Components

    This component renders a form input element allowing a quantity to be set for when the source item is added to the shopping cart.
  • Liquid Components

    This component fetches all attributes/options for a specified product. By default, each attribute group is rendered, with its options and any prices, according to their specified form inputs.
  • Liquid Components

    This component fetches related items of a specific source item, such as a Product that has had Related Products assign to it.
  • Liquid Components

    This component fetches grouped items of a specific source item, such as a Product that has been Grouped with other Products and allows the ability to navigate between grouped items.
  • Liquid Components

    This component renders a form select element of all currency names, codes and symbols by default, and can also be used to output currency data to a Liquid collection.
  • Liquid Components

    This component fetches data relating to the shopping cart, such as any products added, order totals, tax, shipping, etc.
  • Liquid Components

    This component renders a form select element of all shipping options configured on the site, and can also be used to output shipping option data to a Liquid collection.
  • Liquid Components

    This component provides a placeholder for populating additional Shipping Provider options to the user.
  • Liquid Components

    This component renders a form select element of all tax codes configured on the site, and can also be used to output tax code data to a Liquid collection.
  • Liquid Components

    This component is used to render payment fields, and payment related validation errors, within a form using the capabilities provided by your configured payment gateway.
  • Liquid Components

    This component fetches Orders from the CRM, either owned by the logged-in user or for all customer Orders.
  • eCommerce
    Getting Started

    To get started with the eCommerce module there are some overall settings to configure that provide eCommerce with further context in order to function appropriately for your situation.
  • eCommerce

    Products are one of the most powerful and flexible modules in Treepl CMS. Create customised product schemas with multiple price points, catalogs, inventory tracked attributes/variables, SEO optimisation and more.
  • eCommerce

    When organising any eCommerce store, Catalogs are crucial to your Products structure and browserbility. Easily create and customise unlimited product catalogs for your online store.
  • eCommerce
    Discount codes

    Provide discount code functionality for your Treepl CMS shopping cart. Ideal for promotions, customer loyalty and conversions or to help move more stock.
  • eCommerce

    Create any number of required tax codes specific to the shipping country selected in your Treepl CMS shopping cart.
  • Liquid Components

    This component renders a form select element of all country names and country codes by default, and can also be used to output country codes/names to a Liquid collection.
  • Liquid Components

    This module component retrieves settings associated with the current domain, or optionally from another specified domain configured in the site instance.
  • eCommerce
    Shipping Options

    Treepl CMS provides the ability to configure both custom shipping options and integrated shipping providers based on a variety of conditions during the shopping cart stage.
  • eCommerce

    These various eCommerce settings allow you to further control and customise the way your website functions, both in the admin and on the front-end, in terms of eCommerce functionality.
  • eCommerce
    eCommerce Javascript

    This is the provided javascript options for further controlling/customising the ecommerce javascript provided by the CMS.
  • Extensions
    Abandoned Cart Recovery

    With Abandoned Cart Recovery functionality, you can automatically send email reminders to customers who add products to their cart (while logged in) and leave without completing the order.
  • Public API
    CRM Orders

    Return or update Order item/s via the public API endpoint.
  • Extras
    Migrating to Advanced Payment Flow

    This article describes differences and possible required actions for migrating to the Advanced Payment Gateway flow.

External Resources

There are currently no external resources available.

Please let us know if you have any other contributions or know of any helpful resources you'd like to see added here.


We are always happy to help with any questions you may have.
Visit the Treepl Forum for community support and to search previously asked questions or send us a message at and we will consult you as soon as possible.