Promo Codes Content Setup

Live link for PDF copy: https://rbictg.atlassian.net/wiki/spaces/CG/pages/edit-v2/984973325

If this document does not contain what you are looking for, you may be looking for the Technical Documentation or the Product Spec Doc.

Note on Testing: Custom campaign codes for Voucherify and Talon One codes can only be tested in QA & Production. Dev & Staging testing are limited to the defined set of offers and codes listed in the the technical documentation.

Sanity Setup - Traditional Offers Platform

For Promo Code Offers on Offers Page
  1. Create a regular offer in sanity or go to the offer that you want to change into a promo code offer. The offer must have the ‘requires assignment’ ruleset on. Make sure all other required rulesets are before the ‘requires assignment’ ruleset. Note: Any rulesets listed after ‘requires assignment’ will not be respected.

    1.  

  2. Set the UI Pattern to Promo Code Offer

    1.  

       

  3. Fill out the fields in the Promo Code Panel as needed. See image for which line the panel fields control.

    1. Ignore the campaign ID field. This field will be deprecated.

    2.  

  4. If it is not already, add the offer to Feature Offers so it is visible on the app.

For Cart Promo Codes on Checkout Page
  1. Create a regular Total $ or % off offer in sanity (similar to current support offers) or go to the offer that you want to change into a cart promo code offer. The offer must have the ‘requires assignment’ ruleset on. Make sure all other required rulesets are before the ‘requires assignment’ ruleset. Note: Any rulesets listed after ‘requires assignment’ will not be respected.

  2. Set the UI Pattern to Promo Code Offer

  3. If you are copying an existing support offer, turn the ‘For Support’ flag off. Note that the ‘Cart promo code’ UI pattern has built in logic to hide the offer from the /offers page

  4. If it is not already, add the offer to Feature Offers so it is available through the promo code at cart field.

Sanity Setup - Loyalty Offers Platform

For the loyalty platform integration we are essentially setting up the documents needed to create a personalized offer - template and config documents.

As of now the template id is a constant within Sanity LoyaltyOffersUI document, while the config id is what will be linked to each code in the 3rd party vendors.

In Sanity, navigate to Loyalty Configs → Loyalty Offers UI → Offer Promotion Template

Use a created template document and reference it in the Offer Promotion Template field.

For the time being, this template document must be without rules.

For the offer to work, after its creation, the config offer has to be added to the section “live config offers”.


Voucherify Setup - FOR PLK US, PLK CH, BK CH, PLK ES

For Promo Code Offers or Cart Promo Codes
  1. Log onto Voucherify DUS3 environment Voucherify: a developer friendly, API-first promotion platform

  2. In the left sidebar click ‘Campaigns’ and click the + in the top right to create a new campaign

    1.  

  3. Select Discount Coupons. Note the offer’s discount is still determined by sanity so most settings applied in Voucherify will not affect the offer in our app.

  4. Determine if you want bulk codes or a standalone code. Add a name and description for the campaign. This will only be visible for voucherify users. Confirm redemption limits and the number of codes to generate. Click Next Step when done.

    1. See Voucherify documentation for more detail Voucherify Complete User Guide

  5. Set the time duration if required.

    1. Note that the time limit you set in Voucherify will control when promo codes are valid and redeemable.

    2. You can set a time duration for the campaign, as well as a time duration for individual promo codes

    3. Traditional Offers Platform:

      1. For promo code offers, the sanity offer expiry time will determine when the offer is visible and redeemable

      2. For cart promo codes, the sanity offer expiry time will determine when the offer is redeemable after a successful promo code has been applied. Offers that are not immediately redeemed will be held in the ‘View Saved Promotions’ link underneath the cart promo code field as long as it remains available subject to sanity rulesets.

      3. In most cases, you should set the sanity expiry and voucherify code expiry to the same times.

      4. If the codes expire earlier than the offer, the offer will only be available for the remainder of it’s available time to users who already applied a successful code - this case may apply for a ‘limited redemption’ offer .

      5. If the offer expires earlier than the codes, guests will see a successful code confirmation but get no offer applied - this should be avoided as this will cause guest confusion and complaints.

      6. Leave blank if the codes do not expire.

    4. Loyalty Offers Platform

      1. For loyalty platform coupons, the offer expiry time will determine when the offer associated with the promo code is redeemable after a code has been applied.

      2. When a personalized offer is created, it will use the start and end date of the campaign, unless specific coupon start and end dates are specified.

      3. ex:

        1. if you set campaign start to [Jan 1 2022] and campaign end to [Dec 1, 2022], but coupon start date to [Feb 1, 2022] and coupon end date to [March 1, 2022], the personalized offer created will only be valid between [Feb 1, 2022 ]and [March 1, 2022].

      4. When creating promo codes to be integrated with the loyalty platform, a start date and end date for the campaign/coupon must be specified

      5. Otherwise, an error will appear during coupon validation

    5. Click Next Step when done.

      1. See Voucherify documentation for more detail Voucherify Complete User Guide

  6. Set the discount to ‘Amount Type’ for 1 USD. Do not add any validation rules. Click Next Step when done.

    1. The true discount and rulesets will be determined by the sanity offer.

  7. Metadata Setup:

    1. CBA - Click the pencil to edit the offerId. Paste in the offer ID from sanity. This is required for the promo code to work. Click Next Step when done.

    2. Loyalty - Click the pencil to edit the configId. Paste in the configId from sanity. This is required for the promo code to work. Click Next Step when done.

offerId and configId must have capital “I”, writing offerid or configid will result in Promo Code failure.

  1. Confirm all of your settings are correct. Click Save when done.

  2. You will be taken to the campaign page. Click on the voucher tab to view all codes. If live, the codes should be active.

    1. Any campaign can be activated or de-activated from the voucherify dashboard once code generation is complete. Manual de-activation will cause all codes to respond with an error to guests and and is not preferable to expiry.

  3. To add more codes to an existing campaign, click the + in the top right corner and select ‘Add vouchers to this campaign’. Any additional codes added will correspond to the same sanity offer Id on the whole campaign.

  4. To create codes via import, click on the 3 dot drop down in the top right and select ‘Import CSV file’. Your can also export all your existing codes using ‘Export to CSV’ here.

  5. Upload a file CSV file with your codes and settings

    1. Sample file below

 

Steps to Turn On Cart Promo Codes At Checkout

Please reach out to your CSM to enable the mentioned LD flags in Production or Staging for your brand.

  • Enable the flag: enablePromoCodeAtCheckout;

  • At least one offer in Sanity (doesn’t matter if is live or not) has to be configured with the UI Pattern Sanity field value set to Cart promo code. For this you can do two things:

  • Set the actual Voucherify offer awarded after redeeming the code to this value.

  • Create a placeholder Config Offer, not visible to anyone, with this value.

 

Talon One Setup - FOR BURGER KING US ONLY

For Promo Code Offers or Cart Promo Codes
  1. Log onto Talon One Campaign Manager | Talon.One

  2. Select ‘BK Production’ application for QA & Prod offers. Select 'Promo Code Staging & Dev' for lower env offers.

  3. Select New Campaign in left sidebar

  4. Name your campaign and select ‘Coupon’

    1.  

  5. Go to Rule Builder and select ‘Add Rules’

    1.  

    2.  

  6. In the Conditions, add ‘Check coupon code is valid’ and save. You do not need a name or effect

    1.  

    2. Use the left sidebar to go back to dashboard

      1.  

  7. Set the time duration if required. Note that the time limit you set in Talon One will control when promo codes are valid and redeemable.

    1. CBA

      1. For promo code offers, the sanity offer expiry time will determine when the offer is visible and redeemable

      2. For cart promo codes, the sanity offer expiry time will determine when the offer is redeemable after a successful promo code has been applied. Offers that are not immediately redeemed will be held in the ‘View Saved Promotions’ link underneath the cart promo code field as long as it remains available subject to sanity rulesets.

        1. In most cases, you should set the sanity expiry and Talon One code expiry to the same times.

        2. If the codes expire earlier than the offer, the offer will only be available for the remainder of it’s available time to users who already applied a successful code - this case may apply for a ‘limited redemption’ offer .

        3. If the offer expires earlier than the codes, guests will see a successful code confirmation but get no offer applied - this should be avoided as this will cause guest confusion and complaints.

      3. Leave blank if the codes do not expire.

    2. Loyalty Platform

      1. For loyalty platform coupons, the offer expiry time will determine when the offer associated with the promo code is redeemable after a code has been applied.

      2. When a personalized offer is created, it will use the start and end date of the campaign, unless specific coupon start and end dates are specified.

      3. ex:

        1. if you set campaign start to [Jan 1 2022] and campaign end to [Dec 1, 2022], but coupon start date to [Feb 1, 2022] and coupon end date to [March 1, 2022], the personalized offer created will only be valid between [Feb 1, 2022 ]and [March 1, 2022].

      4. When creating promo codes to be integrated with the loyalty platform, a start date and end date for the campaign/coupon must be specified

      5. Otherwise, an error will appear during coupon validation

  8. Click ‘coupons’ in the Performance & Budget section of the dashboard or ‘Coupons’ in the left sidebar to add codes.

  9. To Create a coupon, click ‘Create Coupons’

    1. Set up the type of codes you need. You can create different batches of codes within the same campaign. Each batch can be a different type, have a different expiry date, and different redemption limits. Once created, coupons can also be edited on a batch by batch basis.

    2. CBA

      1. Under custom attributes, add ‘Offer ID’. This must be the sanity ID of the offer you want the codes to be applied to. NOTE: This is required for any promo code to work

      2. Additional information about code settings https://help.talon.one/hc/en-us/articles/360010114559-How-to-Create-Coupon-Codes#RedemptionLimits

    3. Loyalty

      1. Under custom attributes, add ‘configId’. This must be the configId of the sanity offer document you want the codes to be associated with. This is required for any promo code to be properly validated and redeemed.

  10. To import a list of coupons, click the dropdown to select ‘Import Coupons’

    1. Download their example file by clicking ‘here’ and upload your codes in a CSV matching the column headers. Remove expiry columns and the customer id column empty if not needed.

    2. Once you have uploaded your codes, select one of the codes you uploaded and click ‘Edit Coupon Batch’

    3. Add a custom attribute and paste in the sanity offer ID.

    4. Once complete, validate that the offer ID was added to to all of the coupons in your batch. You can filter the codes for the batch ID and see the offer ID in the ‘Attributes’ column.

  11. From the dashboard, activate your campaign. If you have not set a time limit, this will make your codes live.

    1.