Elevate Loyalty: Minting Polygon-Based Rewards with Wix Backend Events

RMAG news

This is a submission for the Wix Studio Challenge .

What I Built

I’ve developed an innovative loyalty program platform using Wix Studio and Velo (Service Plugins). This platform incentivizes user engagement and fosters brand loyalty through:

Polygon-Based Rewards: Users earn loyalty points in the form of Polygon tokens, offering them real value and the ability to participate in the wider Web3 ecosystem.
Event-Driven Minting: Points are minted automatically when users complete actions like making purchases, submitting reviews, or referring friends.
Gamified Experience: The platform encourages participation with a tiered rewards system and exciting redemption options.

Demo

https://ubinix5warun.wixstudio.io/wix-x-devto-airdrop

Development Journey

Purpose of onCheckoutCompleted()

This event is your golden ticket to trigger actions right after a customer successfully completes a purchase on your Wix store. It’s a crucial point to:

Award Loyalty Points: Calculate and mint loyalty tokens on the Polygon blockchain based on the purchase amount or specific items bought.
Update User Balances: Increase the customer’s loyalty point balance in your Wix database.
Trigger Personalized Messages: Send a thank-you email or notification, potentially including the newly earned loyalty point amount.
Analyze Purchase Data: Gather data for insights into purchasing trends, which can help refine your loyalty program.

Code Example (Velo – Backend):

import wixData from ‘wix-data’;
import { mintLoyaltyTokens } from ‘backend/polygon-api’; // Your custom Polygon interaction module

export function wixEcom_onCheckoutCompleted(event) {
const { checkout } = event;
const customerId = checkout.buyerInfo.memberId;
const totalAmount = checkout.totals.total;

// 1. Calculate Loyalty Points (Example logic: 1 point per $10 spent)
const pointsEarned = Math.floor(totalAmount / 10);

// 2. Mint Loyalty Tokens on Polygon (Assuming you have this function)
mintLoyaltyTokens(customerId, pointsEarned);

// 3. Update User’s Loyalty Points in Database
wixData.query(“Members”)
.eq(“_id”, customerId)
.find()
.then((results) => {
const member = results.items[0];
member.loyaltyPoints += pointsEarned;
wixData.update(“Members”, member);
});

// 4. (Optional) Trigger Personalized Email/Notification
// … (using Wix Automations or a 3rd-party service)
}

How to Set Up

Backend Function: Create the wixEcom_onCheckoutCompleted function in a backend module (e.g., backend/events.js).
Event Registration: Register this function as an event handler in your site’s backend (Wix dashboard -> Velo -> Backend).
Polygon Interaction: Develop the mintLoyaltyTokens function (or equivalent) to interact with your Polygon smart contract and mint the loyalty tokens.
Database: Ensure you have a “Members” collection in your Wix database to store user loyalty points.

Please follow and like us:
Pin Share