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.
Screenshots
Installation of the module
- Moodle 1.8 - checkout CVS MOODLE_18_STABLE branch or download the 1.8 build
- Moodle 1.9 - checkout CVS MOODLE_19_STABLE branch or download the 1.9 build
The source codes of the module live in CVS contrib/plugins/mod/cord. To checkout the MOODLE_19_STABLE branch of the module, go to the Moodle mod/ directory and use:
cvs -z3 -d:ext:myusername@cvs.moodle.org:/cvsroot/moodle co -d cord -r MOODLE_19_STABLE contrib/plugins/mod/cord
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 of the enrolment plugin
The source codes of the enrolment plugin live in CVS contrib/plugins/enrol/cord. To checkout the MOODLE_19_STABLE branch of the plugin, go to the Moodle enrol/ directory and use:
cvs -z3 -d:ext:myusername@cvs.moodle.org:/cvsroot/moodle co -d cord -r MOODLE_19_STABLE contrib/plugins/enrol/cord
As usually, visit your /admin page to finish the installation.
Post-installation setup
Moodle 1.9 specific
- configure and enable the enrolment plugin
Moodle 1.8 specific
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
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.
- 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 orderd using Course ordering and invoicing module. Set the cost of all orders 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
TODO
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.
Capabilities
Capability | Description | Status |
---|---|---|
mod/cord:ordercourse | a user can submit course ordering form | implemented |
mod/cord:manageorders | a user can approve or delete submitted orders | implemented |
UML diagrams