Omnichannel: Shopper Managed Loyalty

      Omnichannel: Shopper Managed Loyalty


        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?