# Promo Codes (Discounts on Memberships)

HTML version: [Promo Codes (Discounts on Memberships)](https://support.gladstonesoftware.cloud/gooperator/promo-codes-discounts-on-memberships)

## Problem
You need to offer a discount on a membership, either through a promotion code customers type on Go Join or automatically when staff sell the membership in 360.

## Resolution

The discount itself is built on the subscription in the GMC. The code customers type is created in Operator and linked to one or more of those discounts, so one code can apply several discounts across several membership types.

### GMC: add the discount to the subscription

1. **Open the subscription types**
   - Go to `GMC > Configuration Manager > Configuration > Gladstone 360 Front of House > Subscription types` (the second tab).
   - Find the subscription. Search by its code, including any prefix (for example, `1.PREMIUM…`).

2. **Open the Discounts table**
   - Click the ellipsis (**…**) / edit icon on the far right and scroll to the **Discounts** table at the bottom.
   - Old discounts from the previous online joining system can be set **inactive**.

3. **Add a new discount**
   - Click **New discount**. **Application ID** defaults to **Gladstone 360 Front of House**; other applications (for example, Join@Home) can also be selected.
   - Complete the fields:

   | Field | Meaning |
   |---|---|
   | **Site** | Which sites see the discount |
   | **Subscription start date** | Pre-sales function: forces the subscription start date to be this date or later |
   | **Discount applies from / to** | If the discount is active and the subscription start date falls between these dates, the discount applies. This range only affects **360** sales; the online range is set on the Operator code, so for a Go Join-only offer it can be left blank |
   | **Regular discount of** | Affects ongoing (recurring) payments, for example the monthly DD |
   | **Applies for** | How long the regular discount lasts (for example, a number of months) |
   | **Perpetual** | Makes the regular discount permanent |
   | **Introductory discount** | Applies to the first payment: the pro-rata fee and one-off products, or the full price on an annual subscription |
   | **Apply single discount to every one-off product** | One discount on all one-off products (for example, joining fee); does not affect the pro-rata |
   | **Apply discounts to individual one-off products** | Separate discounts on one or more specific one-off products (not supported for Go Join) |
   | **Round to nearest** | Rounding for percentage discounts |
   | **Discount banner** | Bold text shown when the membership is added in a 360 workflow |
   | **Discount text** | Shown under the banner in the workflow |
   | **Reason** | See Notes |
   | **2nd Language Discount Text** | Join@Home only |
   | **Status** | Must be **Active** to apply |

   - For Go Join, use a **percentage** discount of type **Regular** (off the recurring payment) or **One-off** (off one-off fees such as joining fees).
   - Putting the promotion code wording in **Discount text** makes the discount easy to find later in Operator.

4. **Activate and save**
   - Set **Status** to **Active** and save.
   - Repeat for every other subscription the same code should apply to.

### Operator: create the promotion code

5. **Open Promotion Codes**
   - Go to `Configuration > Centre Management > Promotion Codes` (or search "Promotion codes" in **Configuration**). It must be enabled for the environment; ask Gladstone if it is missing in test.
   - Click **Add New** (**+**).

6. **Enter the code details**
   - Enter the **Promotion Code** customers will type. Check the spelling: the code text cannot be changed later.
   - Set **Valid From** and/or **Valid To** (optional). **Valid To is the day the code stops working** (it is exclusive): for a February offer, set Valid From 1 February and Valid To **1 March**.
   - The earliest Valid From is today; the earliest Valid To is tomorrow.
   - Switch **Active** on.

7. **Choose the discounts and save**
   - Choose the discounts from **Available Discounts** (use the search icon, and the discount text from step 3 to find the right one). They move to **Selected discounts**.
   - Unsupported discounts show **greyed out** and cannot be chosen; inactive discounts do not appear.
   - Click **Save**. The code is available on Go Join from its Valid From date.

### Test

8. **Test on Go Join**
   - On Go Join (test), choose the membership and select **Continue To Payment**, choose the option to enter a promo code, type it and click **Apply**.
   - Use a start date inside the code's validity. Check the new price and saving, and the discounted pro-rata and recurring amounts.
   - If the code is not valid, the customer sees a message telling them there is a problem with it. Clear the cache if the code does not appear.

9. **Test in 360**
   - Sell the membership with a start date inside the GMC *applies from/to* dates and check the discount banner appears.

## Notes

- **Managing codes**:
  - When editing a code you can change the dates (within the rules below), the active status and the discounts, but not the code text.
  - Once a code has **started**, its start date cannot be changed. Once it has **finished**, it cannot be extended or restarted, and making it active again will not make it work. Create a new code for a repeat campaign.
  - **Inactive** stops a code straight away and hides it from the list (use **Show Inactive** to see it). Set codes inactive once expired to keep the list tidy. You can also make a code inactive early and issue a new one (for example, rotating a corporate code every few months); members who already used the old code keep their discount.
  - If a selected discount later becomes inactive or unsupported, it is highlighted on the code (inactive discounts in **red** at the top). Remove it and save. It cannot be added back.
- There may be a delay before a new GMC discount appears in Operator, because of caching.
- If several discounts on one subscription have **overlapping dates**, only the first applies.
- **Discount types**: **Regular** is off the recurring DD for a set number of months (or perpetual); **Introductory** is off the first (pro-rata) payment; **One-off** is off one-off fees such as joining fees.
- **Sources differ on what Go Join supports**:
  - One guide lists only percentage **Regular** and **One-off** discounts as supported for Go Join, with pro-rata discounts unsupported; another describes using the **Introductory** discount with a promo code. Check on your version that an introductory discount is selectable on the Operator code before relying on it.
  - Training guidance says discounts are **percentages only** ("amount off" and "fixed price" are not supported), so a fixed amount must be converted (for example, £5 off £35 = 14.29%); fixed-amount discounts have been requested. The 360 workflows documentation says a regular discount can be an **amount, a percent, or a fixed member price**. This may describe 360 behaviour while Go Join is percentage-only; confirm before promising a fixed-amount online offer.
  - One guide says a single discount applies to all one-off products and values can only be rounded to the nearest £0.01, which may limit the **Round to nearest** choices.
  - **Which GMC field holds the code**: some guidance says to enter the code (for example, `NEWYEAR26`) in the **Reason** and **Discount text** fields, while the 360 workflows documentation says **Reason** is used only by Join@Home. The code customers type is created in Operator; confirm with Gladstone which GMC field, if any, must match it on your version.
- **Limitations**:
  - The discount is not dynamic with the pro-rata. A percentage applies to whatever the pro-rata amount is, so late joiners get a smaller £ saving and "£X off" marketing will not match exactly. Consider advertising a percentage, or applying the discount to DD payments only.
  - Plan multi-month offers around DD cut-off dates (a sign-up after the cut-off rolls the first DD into the following month).
  - Promo codes work on Go and 360, not Plus2.
  - Promo codes belong to a **membership, not a member**: anyone with the code can use it while it is active. For renewal-only offers, apply the code in-house (staff add the membership with the code, and the customer can then pay online), or rotate codes.
- **Discounts at front of house (360)**:
  - An active GMC discount is applied **automatically** when staff sell the subscription in 360 (no code to type), if the start date falls within the discount's dates.
  - Otherwise only **one-off fees** (joining fee, admin fee, add-on products) can be discounted at the desk, with the POS permission **Apply Membership Discounts (one-off fees only)**. Membership fees cannot be discounted in the basket; this is controlled by the *one-off fee* tick on the subscription's fees in Plus2 (see [Joining Fee, Promo and Till Products in Plus2](../plus2/joining-fee-promo-and-till-products-in-plus2.md)).
  - Basket/item discount buttons (by % or value) need the **Apply Discounts** permission; restricted users need an authorisation code (see [Taking Payments, Discounts and Refunds at the Gladstone360 Till](../gladstone360/taking-payments-discounts-and-refunds-at-the-gladstone360-till.md)).
  - **Renewal discounts at the desk**: either set up a discount with a 360 application ID, or add a **variable-price negative product** (for example, "Renewal discount") as a till button and enter the amount. A communication job can email members a month before an annual membership expires, inviting them to renew.
- **Common uses**:
  - **Seasonal offers** (for example, Black Friday): use a promo code on the normal membership rather than a separate seasonal membership; the price reverts when the code ends.
  - **Separate discounted rates** (for example, staff or alumni): everyone buys the same subscription and only code holders get the discount. Reporting is weaker, since all buyers share one subscription.
  - The **Discount ending soon** communication job warns customers before a discounted DD returns to full price (see [Business Rules and Communication Jobs in the Gladstone Go Automation Portal](the-automation-portal-and-sms-in-gladstone-go.md)).
- **Troubleshooting**:
  - **Code rejected or discount greyed out**: check the code is active, inside Valid From/To, with the discount selected; and in the GMC that the discount is **Active**, percentage, and Regular or One-off.
  - **Discount applies in 360 but not online**: check the Operator code dates and selected discounts. The GMC applies from/to dates affect 360 only.
- **Reporting**: where enabled, Gladstone Reporting can show live promotional codes, promotion-related sales, promotional sales as a share of all sales, recent code usage and promotions approaching expiry.
- A step-by-step video is usually provided in the Training folder on Gladstone Drive.
- For recurring member discounts on activities, use [Price Level Override (PLO)](../plus2/price-level-override-plo.md).
- Related: [Configuring Membership Discounts in the GMC](../gladstone360/configuring-membership-discounts-in-the-gmc.md); [Configuring Subscription Types (Sub Types) in the GMC](../gladstone360/configuring-subscription-types-sub-types-in-the-gmc.md).
