Omnichannel: Shopper Managed Loyalty
    • Dark
      Light

    Omnichannel: Shopper Managed Loyalty

    • Dark
      Light

    Article summary

    Products


    Loyalty & Referrals
    Supported plans

    Premium, Enterprise

    eCommerce Platform

    Shopify, Shopify Plus, BigCommerce, Salesforce Commerce Cloud, Adobe Commerce (Magento), Custom

    One of Yotpo's In-store loyalty solutions is integrating your Point of Sale and Yotpo's mobile in-store widget. The advantage of this flow is that the ownership is in the hands of the customer, and not the clerk. It also requires less integration with the POS itself.  With this integration, your customers can:

    1. Earn points for purchasing in-store 
    2. Redeem existing points to get discounts in-store. 
    3. Create a loyalty account in the store. 
    Available for
    Yotpo Loyalty & Referrals merchants on Platinum and Enterprise plans.

    In-store customer flow

    When the customer walks into the store, they scan a QR code and get to our mobile redemption page. They easily log in (no need for a password), and they can redeem on their phone. They show the redemption to the clerk and get their discount.

    How the integration works

    These are the flows of information needed for the Shopper Managed Loyalty to work. 

    Step 1: Create in-store redemptions on Yotpo

    In order to present redemptions on top of the POS, first Yotpo needs to know these redemption options. To create an In-Store redemption option on Yotpo, go to Rewards > Redeeming Points on the Yotpo admin. Click on "Create a New Coupon", choose the "Custom" Coupon option, and then select In-Store for where this coupon will be used.

    When you create the custom coupon, you need to define a fixed number of points that will be deducted for that coupon.

    Once you click save coupon, you will have the option to upload the coupon codes using a CSV file. For more details, check out our coupon guide.

    Optional: Upload coupon codes via API

    For using the API to upload coupons instead of a CSV, use our upload coupons API endpoint. This API endpoint needs to get the redemption_option_id . In order to get the redemption option ID, you need to click on the redemption that was created on Yotpo admin, and it will appear at the top.

    Optional: Enable redemption reversal

    When using our In-Store Widget, you have the option to Enable Redemption Reversal. This means that you will allow your customers to return the coupon they redeemed & receive their points back. 

    If you'd like to support this functionality, you'll need to:

    1. Listen for our Redemption Cancellation Request webhook.
      1. This webhook will notify you that a customer is attempting to return the coupon to receive their points back. We will pass all the necessary information in order for you to invalidate the correct coupon code.
    2. Use the Approve Redemption Cancellationendpoint.
      1. Once you've received our webhook and invalidated the coupon code, we'll need to be notified that this job is complete so we can continue returning the points to the customer

    Step 2: Set up your In-store module

    Next, let's build the widget your customers will use to redeem their points in-store! Head to our extensive In-Store Module article to get started.

    Step 3: Send Yotpo order data

    Once the order is placed on the POS, the order information needs to be sent back to Yotpo with the Create Order endpoint. 

    The order information needs to include three things: 

    • Order information - order id, the total amount in cents, and currency code are required. 
    • Customer information - customer identifier: email or phone number. 
    • Discount information - The discount code that was part of the order. 

    Order information

    Customer information

    Discount information

    Discount information in an order 

    The discount information is used in the order for two purposes:

    - Delayed point deduction. If you chose to only deduct points when a redemption was actually used, we must have the discount information in the order in order to know that we need to deduct points. Read more about Delayed Point Deduction.

    - Reporting. We use the discount information in the order to know that the customer really used the redemption and then we are able to properly report on redeeming customers and other relevant metrics. 

    Step 4: Send Yotpo refund data

    Refund data is important because usually, brands want to deduct the points that the customer received for a purchase if that purchase was returned and refunded. In order to retroactively deduct points for a refunded purchase in-store, we need to get refund data via the Ceeate Refund endpoint. The refund data must include two parameters - order id and refund amount (total amount cents). We use the order id to find the specific order (and customer) that earned the customer points/tier status/etc. This is how we are able to reverse these actions. Email is not required since the ID is enough for us to learn all of the information directly from the order.


    Was this article helpful?