Installation

Requirements

PHP extensions: curl, fileinfo, json, openssl, pdo, pdo_mysql, zip

The installer will do a pre-flight check to ensure your server meets the minimum requirements.

Storage space: Depends on the amount of products you want to list, and the potential traffic. A typical small-medium store on any standard shared or VPS hosting (4GB+ RAM, 1GB+ SSD storage space) should be sufficient.

Email delivery: PHP's native mail() can be used as a fallback, but for reliable email delivery (avoiding spam folders and rejections) we strongly recommend using SMTP.

Orders: To test and start accepting orders, you will need a PayPal developer account and be able to obtain sandbox and live account API credentials.

Installation

SMTP Configuration

As mentioned above, to avoid emails going into spam boxes, we strongly recommend using SMTP as the mail delivery method. The popular PHPMailer library is used for the job.

To configure SMTP, edit /includes/config_smtp.php

define('SMTP_FROM_NAME',   SITE_NAME); // Leave as-is

define('SMTP_FROM',        'mail@example.com');
define('SMTP_REPLY_TO',    'noreply@example.com');

define('SMTP_HOST',        'mail.example.com');
define('SMTP_USER',        'mail@example.com');
define('SMTP_PASS',        'password');
define('SMTP_PORT',        587);
define('SMTP_SECURE',      'tls');

If you would prefer to use PHP's native mail() sending method, rename the /vendor/phpmailer folder to anything else, e.g. /vendor/phpmailer.disabled

PayPal Configuration

Your PayPal business account must have access to Expanded Checkout which involves completing their onboarding process form.

You won't be able to test orders, or take real orders until you have PayPal client and secret API keys. Go to the developer dashboard to get them (see Apps & Credentials).

Edit /includes/config_paypal.php

define('PAYPAL_CLIENT_ID',  'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
define('PAYPAL_SECRET',     'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
define('PAYPAL_MODE',       'sandbox'); // 'sandbox' or 'live'
define('PAYPAL_CURRENCY',   CURRENCY_CODE); // Leave as-is

For a list of test card numbers, click here. An easy Visa test card number to remember is 4111 1111 1111 1111

Once you have confirmed that orders work correctly in sandbox mode, you can change the PAYPAL_CLIENT_ID and PAYPAL_SECRET to the 'live' credentials and set the PAYPAL_MODE to 'live'.

If you have any issues installing XCMS, feel free to contact us.