def METHOD_NAME(self, *args, **options):
    try:
        courses = json.loads(options["courses_json"])["courses"]
    except ValueError:
        raise CommandError("Invalid JSON object")  # lint-amnesty, pylint: disable=raise-missing-from
    except KeyError:
        raise CommandError("JSON object is missing courses list")  # lint-amnesty, pylint: disable=raise-missing-from
    for course_settings in courses:
        # Validate course
        if not self._course_is_valid(course_settings):
            logger.warning("Can't create course, proceeding to next course")
            continue
        # Retrieve settings
        org = course_settings["organization"]
        num = course_settings["number"]
        run = course_settings["run"]
        user_email = course_settings["user"]
        try:
            user = user_from_str(user_email)
        except User.DoesNotExist:
            logger.warning(user_email + " user does not exist")  # lint-amnesty, pylint: disable=logging-not-lazy
            logger.warning("Can't create course, proceeding to next course")
            continue
        fields = self._process_course_fields(course_settings["fields"])
        # Create the course
        try:
            new_course = create_new_course_in_store("split", user, org, num, run, fields)
            logger.info(f"Created {str(new_course.id)}")
        except DuplicateCourseError:
            logger.warning("Course already exists for %s, %s, %s", org, num, run)
        # Configure credit provider
        if ("enrollment" in course_settings) and ("credit_provider" in course_settings["enrollment"]):
            credit_provider = course_settings["enrollment"]["credit_provider"]
            if credit_provider is not None:
                CreditProvider.objects.get_or_create(
                    provider_id=credit_provider,
                    display_name=credit_provider
                )