Course ordering and invoicing
Note: You are currently viewing documentation for Moodle 2.3. Up-to-date documentation for the latest stable version is available here: Course ordering and invoicing.
The module allows authenticated users to fill course enrolment order form. Payment reminder is sent automatically. Administrator has to manually approve the order, eg. according to a bank account listings. After approving the order, the invoice is emailed to the users. Supports VAT calculation (since 1.9). The module uses its own enrolment plugin that has to be installed. It may be useful for sites where users must pay to be enrolled into a course but for some reasons, PayPal and other plugins can not be used.
Both the module and the enrolment plugin were created and are currently maintained by David Mudrak.
- 1 Screenshots
- 2 Step 1 - Installation of the module
- 3 Step 2 -Installation of the enrolment plugin
- 4 Step 3 - Post-installation setup
- 5 How to customize the invoice
- 6 How to report a bug
- 7 Capabilities
- 8 UML diagrams
- 9 See also
Step 1 - Installation of the module
- Moodle 1.8 - checkout CVS MOODLE_18_STABLE branch or download the 1.8 build module zip file
- Moodle 1.9 - checkout CVS MOODLE_19_STABLE branch or download the 1.9 build module zip file
If you download the zip file, unzip then install the cord/ folder into your moodle mod/ folder.
cvs -z3 -d:ext:email@example.com:/cvsroot/moodle co -d cord -r MOODLE_19_STABLE contrib/plugins/mod/cord
Step 2 -Installation of the enrolment plugin
- Moodle 1.8 - you can use standard External database enrolment plugin to control enrolments
- Moodle 1.9 - checkout CVS MOODLE_19_STABLE branch or download the 1.9 build the enrolment plugin zip file
If you download the zip file, unzip then install the cord/ folder into your moodle enrol/ folder.
cvs -z3 -d:ext:firstname.lastname@example.org:/cvsroot/moodle co -d cord -r MOODLE_19_STABLE contrib/plugins/enrol/cord
As usual, visit your /admin page to finish the installation.
Step 3 - Post-installation setup
- configure and enable the enrolment plugin (admin > courses > enrolments)
The module saves the information about confirmed course orders into its own table. This table can be used by External database enrolment plugin to control enrolments. You need to configure your Moodle site to use External database enrolment to use this module.
- Go to the Administration > Courses > Enrolments
- Edit settings of External Database
- enrol_dbtype, enrol_dbhost, enrol_dbuser, enrol_dbpass, enrol_dbname - set these fields point to the Moodle database itself, i.e. use the same values as are in your config.php
- enrol_dbtable = mdl_cord_enrolments (use your own prefix instead of mdl_ if you have such one)
- enrol_localcoursefield = id
- enrol_localuserfield = id
- enrol_db_localrolefield = shortname
- enrol_remotecoursefield = courseid
- enrol_remoteuserfield = userid
- enrol_db_defaultcourseroleid = default
- enrol_db_autocreate = No
- Enable External Database plugin
Both Moodle 1.9 and 1.8
Create an instance of the module
- Usually, you will want just one instance of the module. The Front page is a good place for it (add an Activity > Course Order).
- Override desired roles and allow them to order courses (mod/cord:ordercourse). You will probably want to allow Authenticated user role to order your courses.
Set up the courses
- Only courses with not-zero cost can be ordered using Course ordering and invoicing module. Within your course(s) Settings, select the Course Ordering enrolment plugin, save then again within Settings set the cost of the course(s) you want to offer your students
- Do not forget to change course setting 'Course enrollable' to 'No' to prevent users from direct enrolment
How to customize the invoice
How to report a bug
Please, use Tracker. Course ordering if one of the components in "Non-core contributed modules" project. See the list of tracked issues at http://tracker.moodle.org/browse/CONTRIB/component/10327.
|mod/cord:ordercourse||a user can submit course ordering form||implemented|
|mod/cord:manageorders||a user can approve or delete submitted orders||implemented|