System Requirements

- A Windows or Linux web server with PHP5 or higher.
- Ability to run ionCube encoded files. Minimum v4 ioncube loaders are required.
- 1 MySQL database to hold the script tables. MySQL5+ is recommended.
- CURL support enabled for certain payment gateways and admin version check.
- ZipArchive Class enabled for zipping functions. This is optional.
- Support for .htaccess and Mod_Rewrite if using search engine friendly urls option.
- SimpleXML functions enabled for auto updating currencies either via admin or via the cron.
- Modern web browser (Internet Explorer, Firefox, Opera, Maxthon, Safari, Chrome etc) with Javascript enabled.

Do Not Password Protect Store Folder

DO NOT password protect your store folder with .htaccess. This will prevent the gateway callback routines from working.

Step 1: Create MySQL Database

If you haven`t already done so, create a database to hold the script tables. An existing database is fine. As this procedure can vary from server to server, if you are unsure of this, please contact your host.

Step 2: Edit Connection File

Using a good quality text editor (Notepad, PSPad, Notepad++, RJ TextEd etc), open the following file:


Perform the following operations: [A] Edit database connection parameters to point to the database you wish to use. Contact your host if you aren`t sure. Prefix is required if you only have a single database. This might be something with an underscore. Its fine to leave the prefix as is, so don`t change if you aren`t sure. See notes.


define('DB_HOST', 'localhost');
define('DB_USER', 'joeblogs_admin');
define('DB_PASS', '12345XX');
define('DB_NAME', 'shop');
define('DB_PREFIX', 'mc_');
[B] Specify character set for database. Can be left blank if preferred. Used for 'Set Character Set' and 'Set Names'. If you aren`t sure, utf8 should be fine. See notes:

define('DB_CHAR_SET', 'utf8');
[C] Specify locale for your database. Only really required to be changed if your language isn`t English. This will ensure text data in dates converted by MySQL is in your local language. For English, 'en_GB' should be fine for all. See notes:

define('DB_LOCALE', 'en_GB');
[D] Specify secret key (or salt). This is for security and is encrypted during script execution. Random numbers, letters and characters are recommended. You can use md5 or sha1 functions for increased security if you wish.


define('SECRET_KEY', 'fd764%^]h9[-)[87fde');
define('SECRET_KEY', md5('fd764%^]h9[-)[87fde'));
define('SECRET_KEY', sha1('fd764%^]h9[-)[87fde'));
[E] The option to display MySQL errors should only be enabled if you are having problems. This will display the possible problem. As its a security risk to display MySQL errors because of server paths, this is disabled by default. Instead a simple message appears whenever a MySQL error occurs. Edit as required.


NOTE! At this point you should make sure that the file didn`t save with whitespace before the opening <?php tag or after the closing ?> tag. You should also make sure that your text editor does NOT save with the Bom Byte Order Mark. This can potentially fail PHP files.

Step 3: Set Administrator Access Login Details

Again, using your text editor, open the following file:


Create a administrator username/password. Example: define('USERNAME', 'joebloggs');
define('PASSWORD', 'xxx123789');

This administrative user is not controlled by user management and is a useful tool if you need to gain access to the system if you have forgot your user password or your client has forgot their password.

More information on the users page here.

Step 4: Transfer Files to Server

Using a good FTP program such as FileZilla or WinSCP, transfer the 'store' folder to your web server.

Most good FTP programs auto detect 'ascii' mode for PHP files. However, if you are presented with an option, you should specify 'ascii' and not 'binary'.

- 'store' may be renamed if you wish.
- Files can also be uploaded to root of web server if you wish. Open 'store' folder and transfer files.

Step 5: Permissions

The following folders are required to have read/write permissions. On Linux 0777 or 0755 should be used: admin/attachments/
product-downloads (Can be moved later)
For help on how to change permissions on a linux server using Filezilla, click here.

Step 6: Accessing the Installer or Manual Install

Once the files have transferred successfully, access the 'install' folder in your browser. An example if your website was at '': Follow the on screen instructions. At this point if you see an error message related to ionCube, you should refer to the ionCube section!

Alternatively, if you are an advanced user and you are familiar with executing SQL files, run the following file in your MySQL database management program. docs/schematic/maian_cart_schema.sql The following FREE applications can be used to administer MySQL and are all excellent: HeidiSQL (My software of choice for local administration on Windows and one of the best free pieces of software out there)
PHPMyAdmin (Installed on many servers as the default database software. PHP based.)
SQL Buddy (Lightweight PHP based software. Great alternative to PHPMyAdmin.)
MySQL Query Browser (Alternative Windows based software from the MySQL creators)
Database Beaver (Free database management software for Windows)
NOTE: If you manually run the 'docs/schematic/maian_cart_schema.sql' file you do NOT need to access the install folder! Also the manual install will NOT install the demo store items.


If you have successfully run the installer or the SQL file manually you should make absolutely sure that the 'install' directory NO longer exists in your installation. If you wish to keep a copy of it on the server rename it or move it somewhere else.

Leaving the 'install' folder in place is a major security risk. Your store can be compromised if this file is run again. For added security the system will check that this folder does not exist.

Step 7: Update Settings / Check Paths

Log into your administration area using the administrative details you specified earlier. An example if your website was at '': From the main menu select: SYSTEM > General Settings Check the paths for 'Web Installation HTTP Path' & 'Server Path to Store Folder' are correct. The installer will have attempted to calculate these. If they haven`t or you ran the SQL file manually, these paths MUST be correct.

You should also update any other settings to suit your requirements. Most options can remain as is for testing as the defaults should be fine.

Step 8: SMTP Settings

Easiest way to find out if e-mails are currently working is to use the contact option in the store. If you receive e-mails ok, your SMTP options probably won`t need enabling. Some servers require that all mail is sent via SMTP, so if this is the case OR if the e-mails aren`t working, enter your SMTP details on the following page: SYSTEM > SMTP Options Note that you may be testing on localhost which doesn`t have mail correctly configured. If this is the case, you may need to totally disable system e-mails while testing. Do this by going to the following page: SYSTEM > General Settings Note that if you are going to send attachments for orders via order update screens, SMTP will be required.

Step 9: Set Up New Users

If you have additional members of your team that will be accessing the administration area, set up accounts for them via the 'User Management' page: SYSTEM > User Management

Step 10: Rename administration folder

For security it is highly recommended you rename your 'admin' folder. To do this perform the following operations: [A] Manually rename the 'admin' folder to something unique. Letters, numbers, underscores or hyphens should be used, no special characters. [B] Access the following page in your administration: SYSTEM > General Settings

Enter your new folder name in the option 'Admin Folder Name'.

Step 11: Getting Started

Now that the system is installed, see the 'Getting Started' section for help on setting up products and getting your store up and running.

Note that test data is added on install so you can see an idea of how everything works. Simply update or delete this as required.

Step 12: Templates/Colours/Images

Once you are getting familiar with the system, see the 'Templates' section for help on adapting the layout into an existing website or changing colours.

Step 13: Search Engine Friendly Urls

See the SEO Urls section for further assistance.

Step 14: Language & Text

See the Language & Text section for further assistance.

Step 15: Google Analytics or Other Tracking Software

See the Google Analytics section for further assistance.

Step 16: User Defined Options

There are many other options that can be changed from within the script which may be of some use. This is for advanced users.

See the User Defined Options section for further assistance.

Step 17: Script Usage/Help

The script usage section above details information about the many features in this script. Please read this carefully. In your administration area, clicking 'Help' will load the relevant help page. There may also be some tutorial videos on the Maian Cart website. Good luck.

Step 18: Secure Product Downloads

If you are selling downloadable products, make sure your "product-downloads" folder is moved outside of your web root for security. This will prevent them from being accessible on the web and will prevent people from emailing the links to their friends. Note that with the cloud storage solutions and standard email, its virtually impossible to prevent file sharing.

Help Tips

The same or additional information may be provided by hovering your cursor over the image next to each heading in the admin area if applicable.