How to convert all the enrollments from audit to professional

How to convert all the enrollments from audit to professional or how to solve the problem with enable free certificates? in Ironwood

Hi @jaqusa!

What platform release are you running? If you are running the latest ironwood.2 there’s support for free certificates.

To set them up, you’ll need to follow these instructions:

  1. Make sure the feature flag that disables honor certificates is disabled. To set it, edit lms.env.json and cms.env.json and edit the FEATURES keys as following:
    "FEATURES": {
  1. Then, follow the certificate set up instructions as per described in the edX documentation:
  2. After the certificates are set up, you’ll need to add the honor mode to the courses that you wish to offer certificates. You can do that using the django admin panel: http://localhost:18000/admin/course_modes/coursemode/add/ (change localhost:18000 by the url of your instance).
    You just need to set course, mode and display name and leave the other as defaults.
  3. From that point on, Studio will enable you to set up certificates for the selected course.

With certificates enabled and set up, you’ll just need to make sure you users are enrolled as honor instead of audit if you’re using and external enrollment API.
New users that enroll into the course through the platform will be enrolled as honor.

As for changing enrollment tracks, I’m not sure if it can be easily done through django shell, but there are some implications on the grades as described in the docs.


Hi @giovannicimolin
Thank you for your help.

I have already done all these steps before, the problem I have is that the users I register always register as audit.
Do you know how that can change?

How are you enrolling your users? Are they self-enrolling, or are you running some sort of bulk-enrollment command?

Hi @jill They are invited by the instructors of the courses through their instructor panel

@jaqusa Ah yes, thank you for the clarification.

The default course mode used by enrollments is determined by the LMS environment settings, so will require a sysadmin to change it for your site.


Update the /edx/app/edxapp/lms.env.json to insert this block:

    "name": "Honor",
    "slug": "honor",
    "bulk_sku": null,
    "currency": "usd",
    "description": null,
    "expiration_datetime": null,
    "min_price": 0,
    "sku": null,
    "suggested_prices": ""

Code references:

Juniper and above

Recent releases use a YAML file instead of the JSON file to set environment variables, so add this block to /edx/etc/lms.yml:

  name: 'Honor'
  slug: 'honor'
  bulk_sku: null
  currency: 'usd'
  description: null
  expiration_datetime: null
  min_price: 0
  sku: None
  suggested_prices: ''

Via ansible configuration

Add the above COURSE_MODE_DEFAULTS block to the EDXAPP_LMS_ENV_EXTRA variable.