Cash Back and Loyalty

Shopify Plus merchants can create a bespoke Cash Back and Loyalty program with Shopwaive in just a few minutes (and only a few clicks)

There are many different workflows and options available, in the example below we walk through setting up a Cash Back Loyalty program. For more automations you can achieve and other helpful tips see Shopify Flows or download examples of our Shopify Flows

Getting started

Cash Back and Loyalty programs are made easy with Shopwaive's integration with Shopify Flows. Trigger deposits when Orders are placed, on a recurring cycle, and much more. Shopify Flows allows merchants to unlock powerful workflows that are triggered by events, such as when an order is placed customers receive a cash back, discount incentive, or reward

Create a Cash Back program

Connecting Shopwaive to Shopify Flows assumes you have already installed the app on your store and purchased a subscription plan. Learn more about our pricing plans and features.

For this example, we will create a Cash Back Rewards flow that deposits 20% cash back on each purchase, or for only specific SKUs, variants, or those defined in a specific collection. You can even set a minimum purchase requirement

Follow these steps to create a Cash Back Loyalty program:

Step 1: Add the Order created trigger, which will activate the flow to run when an order is created

Step 2: Click the Then plus icon on the Order created trigger, select Condition, select If all conditions are met from the dropdown, and then choose Add criteria

Step 3: Choose Order, and then fullyPaid

Step 4: Select Equal to and True

Step 5: Select Then and choose Action then select the Shopwaive app

Step 6: Choose the Increment balance action from the Shopwaive actions list. Next you'll select Add a variable to the amount input field.

An example of this is shown below, when an Order created is set as the trigger, you can choose the order.totalPriceSet.presentmentMoney.amount when the order.fullyPaid is TRUE as a dynamic variable for the amount. Then, you can choose a multiplier to multiply this by any value, for 20% cash back on every purchase we choose 0.2. You can add any note when this transaction occurs, your customers can view this in their transaction history after logging into their account.

Step 7: Next, choose your audience for the 20% Cash Back program. You can choose an entire customer segment by providing the customer segment_query or you can choose a single customer by providing the email. Note that you need to choose between customer_email OR segment_query, but not both. Whichever you choose, leave the other input blank. The former selects a single customer while the latter selects a group of customers in a segment (if any exists). In this example, we chose to limit the 20% Cash Back program to only customers that are tagged with FALL2023.

If you choose to use the segment_query, ensure you follow the same query syntax you use to define Customer segments in the Shopify Admin, for example customer_tags CONTAINS 'FALL2023'. Note that in this query definition the tag is enclosed with single quotes

Variable syntax is supported in Shopify Flows, which means you can use data from an action upstream in the flow like an email address from a draft order that was created {{}} or the shop's contact email address {{shop.contactEmail}}, as a few examples

You are done! Now select Apply changes and Turn on your flow. Place a test order and check to see your Cash Back rewards are deposited.

For Overachievers: This next step is only for the overachievers that need to earn that "extra credit" 🎉

Further constrain your Cash Back program to only make 20% cash back deposits on every purchase IF the minimum purchase amount is met. Simply click the Condition block created in Step 2 above, and were just going to add another criteria order.subtotalPriceSet.presentmentMoney.amount is Greater than 100. Now, only orders with subtotals that are greater than $100 will trigger the Cash Back deposit. Depending on your Cash Back program preference, you can choose totals using totalPriceSet instead of subtotalPriceSet

Last updated