Course-Complex Documentation

This documentation was made only with the Documenter

Course-Complex plugin is the only plugin to create a Course Marketplace for Moodle that provides all the features and user experience that you or your customer look for, in any standard marketplace.

About this Documentation

This documentation should help you get started. It covers everything you need to know to get the plugin up and running. Please read this documentation thoroughly, if you still experience any difficulties please get in touch with us.


So, let’s get Course-Complex installed on your Moodle site!

Installer files:

  1. coursecomplex zip

Installation sequesnce:

At first, you will need to install 

  1. coursecomplex zip

Then you will need to install 


The second one is a local block plugin for the users to access the Course-Complex pages easily anywhere from your Moodle site. It is a dependant block plugin on Course-Complex main plugin.


Upload and install via ZIP file

  1. Login to your Moodle site as an admin.
  2. Go to Administration > Site administration > Plugins > Install plugins.
  3. In your downloaded package , open the folder Plugin.
  4. You will see two Zip files there.
  5. Please Choose the coursecomplex zip 
  6. Check that you obtain a 'Validation passed!' message, then click the button 'Install plugin'.

During the next steps the Moodle database will be upgraded. Though you can already set up the theme options at this stage, it is recommended to leave the theme options at the default settings at first and just klick Save Changes to continue.


Installing manually at the server

If you can't deploy the plugin code via the administration web interface, you have to copy it to the server file system manually (e.g. if the web server process does not have write access to the Moodle installation tree to do this for you).
For Main file,
your destination will be:
For block,
your destination will be
1. Unzip it 
2. In your Moodle site (as admin) go to dashboard, you will get the installation prompt.
Then the process is the same as "Upload and install via ZIP file"

Please follow the exact same process for the installation of after you have successfully installed the 

See Also:


Plugin set up: Course-Complex

After installation, please click Site Administration:


You will see Course-Complex settings there:

Click on any of the 4 settings options of Course-Complex to edit it’s settings:

Now, it also has a dedicated single product page to boost your sales. When you click on any course on shop page, it takes you there.

Lets check how it looks like:



Most of the content is fetched automatically, but you will need to put some details manually too.



Lets check the settings one by one:

Product visibility:

  1. Private: If you select this the course won’t appear in the shop page.
  2. Public:  If you select this the course will appear in the shop page.


Product Name: Type your product name or course name when you want a different product name.


Video Embeded Url: You can upload your video description here by pasting a video embedded link.

It is for this section on the Single product page:

If you do not enter any link there, it will display the course image.


Product Details: Type in the details that you want to display here as the item details.



Product Type: Choose whether it is a free or a paid product.


Related Products: Choose which products should appear as the recommended suggestion.

It will then appear as this:


Product Tags: Product Tags is that helps to find similar products on selling purpose 
Note: Syntex to write product tags is enter 'product-tag-text' than give a ',' (comma) than enter another 'product-tag-text' 
Ex: physics,science,quantum


Enrolment Duration: type the number of days for the enrolment period.

If the enrolment period is over, the student is automatically unenrolled from the course.


Payments Settings

Then,  lets check the settings that we need to put in our plugin's settings:

If you want to use PayPal, 

please select Allow PayPal payment to "yes"

In test mode enable the sandbox. In live mode, dibable it.

PayPal business email: Put the email address of your business PayPal account.


The rest of the settings are well described with images on the settings page.




 login ID = Copy API Login ID from merchant account & paste here. transaction key = Copy API Transaction Key from merchant account & paste here

The rest of the settings are well described with images on the settings page.

Note: You need to configure the Default Relay Response URL in you account. The Relay Response URL will be "http://your_moodle_website/enrol/authorizedotnet/ipn.php"


To add a Default Relay Response URL:


Log into the Merchant Interface at or Sandbox Interface

Click Account from the main toolbar.

Click Response/Receipt URLs under Transaction Format Settings.

Click Edit next to Default Relay Response URL. The Relay Response page appears.

In the URL text field, enter the URL where the payment gateway should send the transaction response. This URL must start with either "http://" or "https://". Parameterized URLs are not permitted.

Click Submit. A confirmation message indicates that the URL has been added.



To add a URL to the list of authorized Response or Receipt URLs:


Log into the Merchant Interface at or Sandbox Interface

Click Account from the main toolbar.

Click Response/Receipt URLs under Transaction Format Settings.

Click Add URL.

Enter the new URL. This URL must start with either "http://" or "https://".

Click Submit.


Stripe Settings:

payment Gateway

If you want to use Stripe Payment Gateway

please select Allow stripe payment to "yes"

In test mode enable the sandbox. In live mode, dibable it.

Stripe Publishable Key = The API Publishable Key of your Stripe account

Stripe Secret Key = The API Secret Key of your Stripe account


Creating Stripe Merchant Account :
1) Create account at
2) Complete your merchant profile details from
3) Now set up secret key and publishers key at
4) For test mode use test api keys and for live mode use live api keys.
Now you are done with merchant account set up.

Now click save changes and your Payment gateways are ready.


Select who you want to notify and compile your email body from here for new enrolment.

And click save changes and you are all set.

At first, let’s check how our shop page looks like:





Whatever name you type in there, will appear here:


Next section is the :

 Change this text using this setting :


The next section is the Product category i.e, Course Category. They are automatically created from your Moodle course category.


When you select a category, it will list all the courses in the bottom as products.

The next element is the banner:

You can put any ad or banner using this settings:
The standard size of the banner is 1400px X 320px
The last 2 settings:
For this section on shop page:

You can change the text and put any link there:

You can change the text and put any link there:
Now click save changes and the shop page is all set.

This is the Course-Complex block.

Blocks can be added to a page by turning editing on then using the 'Add a block' drop-down menu.

Please add "Link to Course-Complex block " to any page you want.







The entire code is checked

using and

Intentianal Exception:

1. Stripe SDK, Authorize.Net SDK, since it is not appropriate to alter the supplied code from such standard SDKs.

2. Code Checker Warning: Expected login check (require_login, require_course_login, require_admin, admin_externalpage_setup) following config inclusion. None found.

On shop page and single product page

Reason: they are public page and does not require login.



A blank index.php file is included in the so that users can not download any file from the local folder when directory indexing is turned on on a server.

This is is standard procedure for any local plugin type for moodle.



Installing an update


The steps depend on your Moodle version:
If you are using Moodle 3.0 or any later version, you can update the plugin just like a new installation.

Thank you.