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.

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.

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.
allow_missing_lms_user_id Switch Allow a missing LMS user id without raising a MissingLmsUserIdException. For background, see 0004-unique-identifier-for-users

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.