X-Cart CDN integration

Introduction

X-Cart is a PHP shopping cart software that was designed to ease the life of online shoppers. They just choose necessary items, add them to the shopping cart and get the final sum to be paid (including shipping expenses and taxes). Online merchants add X-Cart to their stores because:

  • It is a PHP shopping cart program that doesn't cost much.
  • X-Cart is 100% PCI-DSS compatible.
  • It comes with several professional eCommerce design templates.
  • It is search engine friendly.

If you want to speed up your online store, integrate CDN with your X-Cart platform. Read the detailed instructions how to do this below.

Before you start

  • Before you take any steps please back up your files and database.
  • In the following, we will integrate a CDN service using the CDN domain 12345.r.cdnsun.net. Please visit the Services/How-To section to obtain your CDN domain.
  • To integate a CDN service on https:// website you can use https://12345.r.cdnsun.net or you can use a custom CDN domain with SSL enabled.
  • If your website embeds custom fonts then please first enable CORS for them.
  • Before you take any steps please make sure that your CDN domain is ready-to-use here.

Create CDN Static service

Please refer to Creating a CDN Static service for more details.

Enable CDN in X-Cart

Open the file smarty.php located in the root directory of X-Cart.

Replace the following lines.

$smarty->assign('ImagesDir',        $xcart_web_dir . $smarty_skin_dir . '/images');
$smarty->assign('SkinDir',          $xcart_web_dir . $smarty_skin_dir);

With the following lines.

$smarty->assign('ImagesDir',        'http://12345.r.cdnsun.net' . $smarty_skin_dir . '/images');
$smarty->assign('SkinDir',          'http://12345.r.cdnsun.net' . $smarty_skin_dir);

Open the file /include/templater/plugins/function.load_defer_code.php.

Replace the following line.

$cacheWebFile = $var_dirs_web['cache'] . '/' . $label . '.' . $md5Suffix . '.' . $type;

With the following lines.

$cacheWebFile = 'http://12345.r.cdnsun.net' . $var_dirs_web['cache'] . '/' . $label . '.' . $md5Suffix . '.' . $type; 

Open the file /include/func/func.files.php.

Find (not replace) the following line.

global $config, $sql_tbl, $xcart_dir, $current_location;

And add (not replace) the following lines.

$current_location = 'http://12345.r.cdnsun.net';

Open the file /include/templater/plugins/function.get_category_image_url.php.

Replace the following line.

return func_convert_amp(func_get_image_url($category['categoryid'], 'C', $category['image_path']));

With the following line where www.mycompany.com is supposed to be the domain of your website.

return str_replace('www.mycompany.com', '12345.r.cdnsun.net', func_convert_amp(func_get_image_url($category['categoryid'], 'C', $category['image_path'])));

Open the file /skin/common_files/modules/Banner_System/banner_rotator.tpl.

Replace the following line.

src="{$content.image_path|amp}"

With the following line where www.mycompany.com is supposed to be the domain of your website.

src="{$content.image_path|amp|replace:'www.mycompany.com':'12345.r.cdnsun.net'}"

Notes

  • View HTML source code of your web pages to verify that you are using CDN, you should see source attribute of your images, CSS, JavaScript, etc. beginning with your CDN domain.
  • Don't see your CDN domain in source code of your web pages? If your website is using any cache plug-in/mechanism then you might want to clear/flush its cache.
  • Having troubles with custom fonts? Please refer to Using custom fonts with CDN - setting CORS for more details.
  • Still having troubles? Check your CDN URLs in our CDN content check or please refer to Debugging a CDN service for more hints.

Contact Us

  _  __     ___    __    __  
 | |/ //   / _ \\  \ \\ / // 
 | ' //   / //\ \\  \ \/ //  
 | . \\  |  ___  ||  \  //   
 |_|\_\\ |_||  |_||   \//    
 `-` --` `-`   `-`     `