6.8.5. Gating E-Commerce Service Features#

You can release new E-Commerce service features and functionality behind a feature gate. This project uses the Waffle library for feature gating.

6.8.5.1. Types of Feature Gates#

Waffle supports the following types of feature gates.

  • Flag: This gate allows you to enable a feature for specific users, groups, users who meet certain criteria (such as authenticated users or staff), or a certain percentage of visitors.

  • Switch: This gate is a Boolean that turns a feature on or off for all users.

  • Sample: This gate allows you to define the probability with which a given feature will be on.

For more information about creating or updating features and feature gates, see the Waffle documentation.

6.8.5.2. Feature Gates#

Waffle offers the following feature gates.

Name

Type

Purpose

user_enrollments_on_dashboard

Switch

Display a user’s current enrollments on the dashboard user detail page.

publish_course_modes_to_lms

Switch

Publish prices and SKUs to the LMS after every course modification.

async_order_fulfillment

Sample

Specify what percentage of orders are fulfilled asynchronously.

ENABLE_CREDIT_APP

Switch

Enable the credit checkout page, from which learners can purchase credit in a course.

ENABLE_NOTIFICATIONS

Switch

Enable email notifications for a variety of user actions, such as when an order is placed.

PAYPAL_RETRY_ATTEMPTS

Switch

Enable users to retry unsuccessful PayPal payments.

6.8.5.3. Enable a Feature Permanently#

If you want to make a feature permanent, remove its feature gate from relevant code and tests, and delete the gate from the database.