From X-Cart 4 Classic
Jump to: navigation, search



What is the one-license-one-store rule ?

This means that you are permitted to use one instance (a single installation) of the X-Cart software on one web server and one website only; in the event You intend to use the Software or any part thereof on more than one website, the license for each such multiple use must be obtained.

Examples explaining the one-license-one-store rule:

  1. If your store is accessible from multiple domains but the content is the same for each link, this is OK and does not require multiple licenses.
  2. If your store is accessible from multiple domains but each domain shows a different storefront skin style, this is OK and does not require multiple licenses.
  3. If your multiple stores are located at sub-domains or in sub-directories of the same domain, the license for each store is required.
  4. If your store is accessible from multiple domains and your store is customized to show/hide/alter certain part of content based on the domain, the license for each domain is required. In this situation the stores appear to have separate content thereby making them separate stores in the eyes of the license agreement. The content needs to be the same for each domain in order to qualify as a single store.

What is License URL?

License URL is a web address where the license obtained by you permits you to install and run the X-Cart software.

How to transfer the license to another party?

X-Cart License agreement allows you to transfer your license to another party. Read how to submit a request to transfer your license.

How to obtain an additional license?

You can purchase an additional license in Buy products/services section of your X-Cart Account:

- choose the product you require and select the 'Select' checkbox opposite its name;
- click "Checkout" button and follow the ordering dialogue.

I want to move my store to another domain. Is there anything that I must do pertaining to licensing?

Moving to another domain is possible for X-Cart 4.6 and later. The process is, however, subject to limitations as defined in the X-Cart Classic license agreement:

  • If the domain name is changed before the first license registration, the license URL can be changed as many times as needed.
  • After the first license registration, you are permitted to change the domain name in the license URL free of charge only once. Each further license URL change will be subject to license renewal fee.

To move your store to a new domain:

  • Sign in in your X-Cart Account.
  • Go to the 'My licenses' section.
  • Click 'Change URL' link located next to the license. You will be redirected to the "Change license URL" tab.
  • Click on the "Change domain" link.
  • Enter the new URL in the textfield provided and select the option "I understand that I have to remove the software from old_url within 48 hours after the license is reissued".
  • Click 'Change URL'.

I want to move my store to another folder on my web server. Should I submit the updated URL into your license tracking system?

In case you are moving your store to another directory within the same domain (e.g. mydomain.com/store is replaced by mydomain.com/newstore), you should change the license URL in your X-Cart Account.

  • go to 'My licenses' section;
  • click 'Change URL' link located next to the license;
  • you will be redirected to the "Change license URL" tab: enter the folder path in the provided input field;
  • hit 'Change folder location' button.

Installation, configuration and basic usage

Where do I download X-Cart?

Files are available in the File area section of your Qualiteam account. Files are supplied in .tgz or .zip archives.

How can I unpack X-Cart distribution archive in Windows?

If you run Microsoft Windows, you can use WinZip (or WinRAR) tool to extract the files.

  1. If you don't have WinZIP archiver, download it from https://www.winzip.com
  2. Launch WinZIP and open X-Cart distributive package
  3. Click on the Extract button and specify your web server root directory.

See X-Cart:Installation page for help on installation.

How to choose a hosting for my store?

Please study the Choosing hosting provider article. Anyway the hosting must comply with X-Cart:Server Requirements (latest X-Cart version).

How do I know which version of X-Cart I use?

You can find out the version of your X-Cart installation using one of the following links:

X-Cart's files version:


X-Cart's database version:


for example:


or on the 'Summary' page in the X-Cart admin backend.

What is Installation error report?

The report indicates that X-Cart installation may not be completed because the web-server is not configured to run X-Cart software. In most cases, you should contact the hosting support to request to change the server settings.

The report has two sections: REPORT - contains information on the errors that may or may not hinder in the installation procedure, PHP INFO - information on the PHP configuration.

You should pay attention to the first paragraph. Note what errors are reported there, critical (CRITICAL ERRORS) or noncritical (NONCRITICAL ERRORS:).

An example of the installation error report:

X-Cart version: Version 4.1.10
Report time: Sun, 29 Jun 2008 13:56:23 -0400
HTTP_REFERER: https://[store_URL]/[xcart_web_dir]/install.php
- MySQL database support is disabled. MySQL PHP extension must be enabled for correct operation of X-Cart application. [CHECK RESULT: Disabled]

There are CRITICAL ERRORS: MySQL application is not installed on the web-server
For now it is not possible to complete the installation until the problem is rectified.
You should contact the hosting support to request help with MySQL setup.

NONCRITICAL ERRORS do not stop the installation and you can complete it.
However, it is recommended to fix the errors too in order to avoid any possible problems in your future store.

Feel free to contact our support team for an advise.

How to change x-cart web-directory after installation is done?

1. Rename the current x-cart directory. Or if you want your cart to be shown in the root, i.e. www.example.com/home.php, you should move the x-cart files to the root folder on the server.

Note: Make sure you make backup copies of the existing files in the root folder if their names coincide with the names of the files being moved from the /xcart directory (for example, index.html), because they will be replaced when you move the files.

2. Update /config.php file (it is located in the root x-cart folder). You should alter this variable

$xcart_web_dir ="/[dir]";

where [dir] is the current x-cart folder. If you just changed the name of the folder, you should insert the new name in [dir].

If you moved the files to the root, change the string thus

$xcart_web_dir ="";
Note: For versions 4.0.x and lower. If the x-cart images are stored in the file system, you should move them to the database before changing the directory. Images storage location is defined in the admin back end, "Images Location" page.

How to protect my admin area with web authentication system?

Basically, to provide HTTP basic authentication for admin area via the server configuration, you need to set up .htaccess file in the X-Cart's admin/ directory.

For example, if you want to use it with "webmaster" as a login and "webpassword" as a password key, then the protection can be configured as shown below:

1. In X-Cart Admin area, open the Summary page.

2. In the Environment info section, find and copy the X-Cart directory path (something like /home/user/www/xcart). You will need it a bit later.

3. Generate .htpasswd file.

If you have shell access to your hosting server and enter the following command:

htpasswd -c .htpasswd webmaster

and then press Enter. Now enter the merchant key (password) two times.

Alternatively, you can use one of the on-line htpasswd generators to generate an entry for your .htpasswd file (for example https://www.htaccesstools.com/htpasswd-generator/), then copy the generated entry into your .htpasswd file.

So, the content of your .htpasswd file will look like:


4. Copy the .htpasswd file to the X-Cart's admin directory ("admin/")

5. Open admin/.htaccess and paste the following data to it:

AuthName "Private zone"
AuthType Basic
# In the line below, replace /home/user/www/xcart/ with
# the actual X-Cart path shown on your Admin summary page.
AuthUserFile /home/user/www/xcart/admin/.htpasswd
require valid-user
ErrorDocument 401 "Authorisation Required"

Alternatively, you can password-protect the admin area using the password protection setup facility in the control panel of your hosting account.

I have changed domain names of my web-site. How to I set up my X-Cart store to reflect the new domain names?

Edit the host names variables in config.php file of your X-Cart installation to reflect your new domain names, for example:

$xcart_http_host =”www.newdomainname.com”;
$xcart_https_host =”www.newdomainname.com”;
$xcart_web_dir =”/xcart”;

Read more about X-Cart's configuration file.

How do I set up secure checkout and registration in my X-Cart store?

Read about it here: Configuring HTTPS.

How do I move my images to the file system?

X-Cart 4.0or above

First, you should export images to /files directory of X-Cart. X-Cart requires three images' folders: for icons, for thumbnails and for detailed images. You should create individual directories inside /files for each type of images and indicate corresponding paths on the 'Images location' page in the admin zone. During import of images to file system, X-Cart will overwrite images files names to appropriate ones. For ex., "home/public_html/xcart/files/thumbnails" will be a path to thumbnails images.

Thus, to import images to the file system you should follow the following steps:

1. Create three folders inside /files dir: for ex., "icons", "thumbnails" and "detailed_images"

2. Set 777 permissions on these folders (chmod 777 [folder_name])

3. Go to 'Images location' page in the admin back end and type in the paths to the images such as


4. Choose to store images in 'file system' and click 'submit'.

What is Auth code and where can I find it?

X-Cart 4.4or above

For security reasons, we have added Auth code, an additional authentication variable, which the installation script now has to handle. When the script detects that an X-Cart is already installed on the host, it does not allow to proceed with the installation until you enter a valid Auth code.

You can find your Auth code in the [xcart_dir]/config.php file:

* Put installation access code here
* A person who does not know the auth code can not access the install.php installations script
$installation_auth_code = '';

The Auth code is also displayed on the 'Summary' page of the Admin area.

You can modify your auth_code at your discretion by editing the [xcart_dir]/config.php file.

How can I make a local copy of X-Cart?

This video tutorial by Mike White will guide you through creating a local copy of X-Cart that will run directly on your computer and allow you to make changes and test scenarios quickly and easily.

How to change storefront skin after the installation is done?

X-Cart 4.4or above

Starting from X-Cart 4.4 selecting which skin to use has been simplified. You can select the necessary skin in your X-Cart admin area. To do so perform the steps described in the X-Cart manual.

X-Cart 4.3or above

For 4.3.2 and earlier versions fllow these steps:

  1. Run the installation script, i.e. open http://[your_store]/[xcart_dir]/install.php in your browser;
  2. Enter the Auth code, you will find it in the include/install.php file and also in the X-Cart admin zone -> on the "Summary" page;
  3. Choose 're-install skin' and click 'next'. You will be offered to select a desired color scheme, layout and dingbats set. Choose a skin you like.
  4. Complete the re-installation and check how your store looks now.

How to replace the logo shown on the storefront?

For the default skin, the logo can be changed by altering the following IMG tag located in the '/skin/common_files/customer/head.tpl' template:

<img src="{$ImagesDir}/xlogo.gif" width="244" height="67" border="0">

Remember to replace the width and height values with the appropriate ones.

For further details and instructions on replacing the logo for other skins, please refer to Replacing X-Cart's Logo. Changing the logo in Ideal Responsive skin is a bit different; instructions are available in Replacing X-Cart's Logo in the Ideal Responsive Skin.

The logo shown on invoices can be changed by altering the following IMG tag located in the '/skin/common_files/mail/html/order_invoice.tpl' template:

IMG src="{$ImagesDir}/companyname_small.gif" border="0"
Note: Make sure to upload the required logo image to the '/skin/common_files/images' directory.

How to replace logo shown on invoices?

X-Cart 4.4or above

You should replace the logo image in the file '/skin/common_files/images/companyname_small.gif'.

Alternatively, you can edit the path to the X-Cart Invoice logo file in the template '/skin/common_files/mail/html/order_invoice.tpl'.

To do this, find this code:

<img src="{$ImagesDir}/companyname_small.gif" border="0" >

and replace it with this:

<img src="{$ImagesDir}/new_companyname_small.gif" border="0">

where new_companyname_small.gif is the name of the new logo file.

You should have the new logo file uploaded to the '/skin/common_files/images' directory prior to editing the code. Once you have done that, you can edit the image tag the way you need (change file name, adjust image width, image height, etc).

Note: In 4.3.x and older versions, the corresponding logo image file and template file are '/skin1/images/companyname_small.gif' and '/skin1/mail/html/order_invoice.tpl', and the new logo file should be uploaded to the '/skin1/images' directory.
X-Cart 4.5or above
Note: For Ideal Comfort skin, the corresponding logo image file and template file are '/skin/ideal_comfort/images/custom/small_logo.gif' and '/skin/ideal_comfort/mail/html/order_invoice.tpl', and the new logo file should be uploaded to the '/skin/ideal_comfort/images/custom' directory. The line of code that should be adjusted in the template files is:
<img src="{$AltImagesDir}/custom/small_logo.gif" alt="" />
X-Cart 4.6or above
Note: For Ideal Responsive skin, the corresponding logo image file and template file are '/skin/ideal_responsive/images/custom/small_logo.gif' and '/skin/ideal_responsive/mail/html/order_invoice.tpl', and the new logo file should be uploaded to the '/skin/ideal_responsive/images/custom' directory. The line of code that should be adjusted in the template files is:
<img src="{$AltImagesDir}/custom/small_logo.gif" alt="" />

How to set company name?

Refer to X-Cart:Company Options#Company details

Your company name can be set in 'lbl_site_title' language variable.

  1. Log in to the admin area
  2. Go to the "Languages" section
  3. Select a language in the "Edit language" selectbox.
  4. Select a topic: Labels. ("text" for :txt_, "Errors" for err_)
  5. Find the 'lbl_site_title' variable and edit its value in the memo. Alternatively you can just leave the field blank. In this case the company name will be the same as it is in the copyright notice.
  6. Click the "Apply changes" button.
Note: The company name which appears in Copyright field, in the invoices, etc. does not correspond with the company name on the main page of your store and in the navigation bar above. Actually what you're setting via lbl_site_title' variable is your site's title, which can differ from your company name. You can have any text here. That is why setting of your real company name and this site title are carried out separately. Moreover it helps to make a multilingual company name.

Concerning the company name in the e-mail invoices, it is set via your Admin zone->Administration tab->General settings->Company options->Company name field.

How to change my site title appearing in the admin back-end?

  1. Go to the "Languages" section.
  2. Select a language in the "Edit language" select box.
  3. Find the 'txt_site_title' language variable and edit its value in the memo.
  4. Click the Update all button.

How to change my site title appearing in the customer front-end?

1. Generally the way to build any page title of any store page is specified in the "General settings -> SEO -> Page title format".

2. If any value is specified in the "Default site 'Title' tag" field in the "General settings -> SEO" section, this value is used as a page title for all the store pages. Note, the "Page title format" option is ignored in this case.

3. If any value is specified in the "Title tag" field for any of the Product, Category, Manufacturer and Static (embedded) pages, it is used as a page title for this specific page only, and the "Default site 'Title' tag" option is overridden.

Note: Product and Category pages can inherit the value of the "Title tag" from their parent categories, if the "Use the META data and title tag of this category for all the subcategories and products contained in this category" option is enabled for the parent categories.
X-Cart 4.4.4or earlier

How do I set the title meta tag specifically for the home page?

Note: This applies to X-Cart version 4.4.4 or earlier. Skip this if you use X-Cart version 4.4.5 or above.

The default X-Cart software does not allow to do that. However, you can customize your X-Cart to meet your needs.

1. Apply the following SQL queries to your X-Cart admin database:

INSERT INTO xcart_config VALUES ('home_page_title','Home page \'Title\' tag','','SEO',106,'textarea','','','');
INSERT INTO xcart_languages VALUES ('en','opt_home_page_title','Home page \'Title\' tag','Options');

2. Define title meta tag for your home page on the "General settings -> SEO" page, in the "Home page 'Title' tag" field.

3. Modify 'include/templater/plugins/function.get_title.php', add this code:

if ($params['page_id'] == 0) {
$title = trim($config['SEO']['home_page_title']);

right after this code:

case 'C':
// Category page
$title = func_get_category_title($params['page_id']);

How can I customize the look of X-Cart storefront?

Refer to the X-Cart:Customizing storefront page.

How can I add a favicon to my X-Cart based website?

X-Cart 4.4or above

Add the following code to the <xcart_dir>/skin/common_files/customer/home.tpl file between the <head> and </head> tags:

<link rel="SHORTCUT ICON" href="favicon_dir/favicon.ico" type="image/x-icon">

And replace favicon_dir/favicon.ico with the path and the filename of your favicon.

Note: If you use an older version of X-Cart, find the home.tpl file in your <xcart_dir>/skin1/customer directory.

Learn more about favicon on Wikipedia.

How can I remove/replace a favicon in my X-Cart based website?

X-Cart 4.5or above

To remove the favicon delete the following line in <xcart_dir>/skin/common_files/customer/service_head.tpl file:

<link rel="shortcut icon" type="image/png" href="{$current_location}/favicon.ico" />

To replace the icon with your own just upload the new favicon.ico file into X-Cart home directory on the server

How would I insert a YouTube video, so it shows the actual screen to click on, in the front page of the site?

1. Open the video to be inserted, then click the Share button underneath the movie and then click the Embed button in the "About This Video" section that appears.

This brings up the HTML code, for example:

<iframe width="560" height="315" src="https://www.youtube.com/embed/ENW06jOTDYs" frameborder="0" allowfullscreen></iframe>

2. Copy the HTML code in the Embed box to Clipboard and then paste it to your X-Cart's "txt_welcome" language variable or to the "welcome.tpl" template file.

Note: You can resize the player by editing the values of the width and height parameters of the embedded player code.

To learn more about editing templates and language variables, please, refer to:

How do I change the quality of thumbnail images generated by X-Cart?

When generating resized images, X-Cart processes images using the "Unsharp masking" tool (https://en.wikipedia.org/wiki/Unsharp_masking#Digital_unsharp_masking). The parameters of the filter can be adjusted in the file $xcart_dir . '/include/lib/phpunsharpmask.php'
See the following line:

function UnsharpMask($img, $amount = 120, $radius = 0.4, $threshold = 1) {

How do you add a new configuration setting to X-Cart?

Just insert a record for your new configuration setting into the xcart_config table. You may find a lot of examples of SQL queries for this in the xcart-dir/sql/xcart_data.sql file. The new setting will be managed automatically by X-Cart on the General settings page.


INSERT INTO xcart_config VALUES (
'New setting description',
'setting value',
'setting default value',

Then you can use the new configuration setting in the template as


My store says "This is a demo store powered by the X-Cart". How do I change it?

This is a standard welcome message which can be easily modified. If you open the '<xcart_dir>/skin/common_files/customer/main/welcome.tpl' template, you will see following statement there:


When a customer visits your site, the {$lng.txt_welcome} statement is substituted with content of the 'txt_welcome' language variable, i.e. "This is a demo store...".

How to modify the 'txt_welcome' language variable:

  1. Log in to the admin area
  2. Go to the "Languages" section
  3. Select a language in the "Edit language" select-box
  4. Select a topic: Text ('Text' for txt_, 'Errors' for err_)
  5. Enter 'txt_welcome' in the 'Apply Filter' field to find the variable and edit its value in the memo field
  6. Click the Update all button

Also, if you start the "Webmaster mode", you will be able to edit language variables in an easier way: all you will need is to click the text and edit it.

How do I make the "Right-to-left text direction" check-box appearing on the "Edit languages" page?

Modify the following template file in your X-Cart store:


Just find and remove these lines of code:

{* To enable right-to-left text direction, uncomment the following code:

End of the commented code for the right-to-left text direction feature *}

How to alter default name titles "Mr.","Mrs.","Ms."?

In X-Cart v4.1.x and later this can be done using 'Administration'-> 'Titles' section in admin back-end.

In previous X-Cart versions, you have to edit '/config.php' file altering the following string:

$name_titles = array("Mr.","Mrs.","Ms.");

How to remove "Powered by X-Cart: shopping cart software" text?

Edit skin/common_files/main/prnotice.tpl template.

How can I obtain a USPS account?

Visit the site http://www.uspswebtools.com and register for USPS Web Tools (click on the ‘Sign up for USPS Web Toos’ link and fill in the registration form). You will receive an e-mail with Username and Password. Follow the instructions provided there. Get in touch with Internet Customer Care Center and ask to switch on your profile to allow you to access the Production Server.

Enter this username into the appropriate field in the USPS account details subsection of the ‘Shipping options’ page (accessible via ‘General settings’ in the admin area).

See also:

How to choose a payment processing service?

The guidelines are available in the Choosing payment gateway article.

How to setup UK shipping and taxes

When you are installing X-Cart by running the installation wizard script, you should select option "United Kingdom" in dropdown "Configuration settings". After the installation is completed, UK-specific configuration will be imported into your store database.

To setup UK shipping and tax on a working X-Cart, you can apply an SQL patch from xcart_web_dir/sql folder - xcart_conf_UK.sql file. Download this file to your machine and install it via the X-Cart admin zone, "Patch/Upgrade" section, "Apply SQL patch" form.

The SQL configuration patches were added in v4.0.x. If you are using one of the earlier versions of this branch and do not find the patch, you can extract it from the fresh distributive of v4.0.x.

Note: The patch does not work on v3.x.x

If you need add specific UK shipping methods you can create them manually. Go to the admin backend, "Management" menu, 'Shipping methods' page and add new methods in the "Defined shipping methods" section.

How to set up drop shipping?

If you are planning to transfer customer orders and shipment details to external providers - manufacturers or a wholesalers - who would then ship the ordered products directly to the customers, make sure that the provider country matches the company location country; otherwise, shipping rates returned by the real-time shipping modules may be wrong. To implement providers based in other countries, please contact our technical support for customizing your X-Cart software.

Does X-Cart support recurring billing?

Beginning from version 4.4.0 X-Cart comes without X-Cart:Subscriptions module (due to limitations caused by PCI DSS standard). To allow recurring transactions you should use an appropriate service offered by the payment gateway or by 3rd-party providers.

How to setup X-Cart in PCI DSS compliant manner?

Please find guidelines at X-Cart:PCI_DSS.

What is "background" payment gateway?

"Background" payment gateways provide so-called "Direct (or inline) Integration" solution (also known as "onsite" or "merchant hosted" solution) - this is the integration method of choice for Merchants who wish to keep their customers on their branded site and not interject a third party to handle the secure processing portion of a transaction. This method requires the Merchant to have their own SSL certificate.

Here are some "background" payment gateways supported in X-Cart: PayPal Website Payments Pro (Direct Payment), Authorize.net AIM, CyberSource (SOAP toolkit API), Sage Pay Direct and many more.

What is "web-based" payment gateway?

"Web-based" payment gateways provide so-called "Hosted Payment Form" solution (also known as "offsite" or "gateway hosted" solution) - this is the integration method in which the payment gateway hosts a co-branded secure payment form on behalf of the Merchant. This method is generally only used by Merchants who are using a shopping cart that does not support the direct integration method. This method does not require the Merchant to have their own SSL certificate.

Here are some "web-based" payment gateways supported in X-Cart: PayPal Standard, Paypal Express Checkout, Google Checkout, WorldPay, 2Checkout, Authorize.net SIM, CyberSource (Hosted Order Page), Sage Pay Form and many more.

Are there translations available for X-Cart?

Yes, you could find some at:

Where do I edit my "About our site", "Terms & Conditions", "Privacy statement" pages?

The pages in question are embedded static pages.

The content of these pages can be edited on the 'Static pages' page in your X-Cart admin area, for example:


For more detailed information about "Static pages" feature please refer to the Static Pages section.

How do I force my X-Cart to move zero total orders to "processed" instead of "queued"?

If the order total is zero, the order is processed off-line, and its status is set to "Queued". The store administrator is supposed to review and process such orders manually. This is how default X-Cart works.

However, if you want such orders to be processed automatically, you should modify the script "<xcart_dir>/payment/payment_offline.php", add the following code:

if ($cart["total_cost"] == 0)
func_change_order_status($orderids, "P");

before this one:

$_orderids = func_get_urlencoded_orderids ($orderids);

As result of the modification, all zero total orders will be automatically processed by the system.

How do I set up my X-Cart to support UTF-8?

Actually, X-Cart supports UTF-8 character encoding out of the box since version 4.5.0. Earlier X-Cart versions (4.0.x-4.4.5) can be altered to support UTF-8 by following the instructions below.

 !!!IMPORTANT!!! Create a backup of your X-Cart database before implementing the changes suggested below!
Note: You should complete the steps below BEFORE you start adding data in UTF-8 character encoding, otherwise you will have to re-enter or convert all the previously added data to UTF-8.

1) Convert all X-Cart tables to UTF-8. To do this you need to implement the following MySQL query:

ALTER TABLE %xcart-table% CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

where %xcart-table% should be replaced with the name of the table from the X-Cart database. You need to implement this query for all of the X-Cart tables. The list of the tables can be found by execution of the following query:


2) Set your X-Cart database's collation to UTF-8. To do this you need to implement the following MySQL query:

ALTER DATABASE %xcart_database% COLLATE utf8_general_ci;

where %xcart_database% should be replaced with the name of your store database.

3) Modify include/func/func.db.php file - find the following lines:


return $sql_connection;

and replace with these ones:

} else {
mysql_query("SET NAMES 'utf8'");

return $sql_connection;

4) Finally, you can set UTF-8 as charset for your languages in the Edit languages section of the admin area (Administration -> Languages), and start adding data in UTF-8.

ADDON: You can use the File:Convert database 2 utf8.php.txt to convert all X-Cart tables to UTF-8 (step 1):

1. Download the File:Convert database 2 utf8.php.txt, save the downloaded file as 'convert_database_2_utf8.php'.

2. Upload convert_database_2_utf8.php to <xcart_dir>/admin folder.

3. Log in to your X-Cart admin back-end.

4. Run the script in your browser:


5) Related question on stackoverflow.com

How do I convert my data in CSV file to support UTF-8 encoding?

  1. Open your CSV file in Word. You will see a window let you choose the encoding. Specify the encoding which was used to create the file.
  2. Save the file as text (.txt). You will see a window let you choose the encoding. Specify "Unicode (UTF-8)" as encoding for your file.

Is there a way for an image to be opened in a new window when looking at product details?

Go to "Settings -> Modules" on the Administration menu, click on the "Configure" link by the "Detailed Product Images" item, and adjust the option "Display detailed product images" to have detailed images opened in a pop-up window.

Read about this module and how to configure it in our on-line manual:

Is it possible to import negative quantities using built-in "update inventory" function?

A small custom modification is required. Find this line of code in "<xcart_dir>/provider/inv_update.php":

$columns[1] = abs(intval($columns[1]));

and change it to:

// $columns[1] = abs(intval($columns[1]));

I changed SKU for my product, but the old SKU still shows up. What is wrong?

Check if your product has "variants".

The base product SKU (the one specified on the "Product details" page) always differs from the SKU values for variants. Generally, the SKU values for variants represent the slightly modified SKU of the base product.

If you search for such a product, it will show the SKU of the default product variant, not the base product SKU. Make sure you change SKU values for variants, not the base product SKU.

See also:

What is the 'Order prefix' field on the configuration page of my payment method?

This field is intended for merchants who use the same merchant account for several online stores. An order prefix helps such merchants to distinguish payments from different stores. After defining an unique order prefix for each of the stores, the merchant can find out from which of the stores this or that payment originated based on the prefix automatically attached to the order ID. If you do not need this feature, simply leave the field empty.

How to make PayPal to notify my X-cart store of events related to PayPal transactions?

You should enable Instant Payment Notification option in your PayPal account settings (see "Putting PayPal to Work with X-Cart" section, step 6).

How to avoid making people click a button to return to my X-Cart store after they complete their payments with PayPal (Website Payments Standard)?

You should enable Auto Return option in your PayPal account settings (see "Putting PayPal to Work with X-Cart" section, step 7).

What Payment Gateways support 3D Secure?

Please refer to this page of the online knowledge base to check what payment gateways support 3D Secure (look for sign 'Verified By Visa'):

Note: In old X-Cart versions some of the payment gateways do not support 3D Secure (or none of them do). Please refer to File:X-CART CHANGELOG.txt to find out in what X-Cart versions and for what payment gateways 3D Secure was implemented.

If you need assistance with configuring a payment gateway supprting 3D Secure on your X-Cart store or any other assistance/consultation from the X-Cart's exert support team, we will be glad to help you within the Techsupport service. Read more about the service at:

Which are the correct permissions?

X-Cart 4.1or above

X-Cart should have writable permissions set for the following directories and their sub-directories:

  • /catalog
  • /files
  • /var

All the .htaccess files located in the X-Cart directory and its sub-directories should have read-only permissions set.

Correct permissions depend on the server configuration.

In most cases the files and folders should have 644 and 755 permissions accordingly.

Please refer to this page of the online knowledge base to check what are the correct permissions that should be set for X-Cart folders and files depending on the server configuration:

How to add Facebook pixel code to X-Cart pages?

For X-Cart 4.7.x and later versions, a special module is available for this purpose - Facebook E-Commerce.

If you do not wish to use this module, instructions for how to add Facebook pixel code manually are available in the section X-Cart:How to Add Facebook Pixel Code to X-Cart Pages.


How to upgrade my store?

Common instructions on the upgrading process can be found at X-Cart:Upgrading page.

What is patch?

Diff file (or a patch) is a file 'describing' changes which needs to be applied to the file. In UNIX world diff files are a standard way to apply changes/fixes to a program source code. There is a special program called 'patch' which reads diff files and applies the changes to the source code. In everyday use diff files are frequently called 'patches' which may sometimes cause confusion.

How to install patches?

IMPORTANT! It is recommended to make a backup copy of all PHP scripts, templates and create a database dump before applying any patches. Please install patches ONLY if you absolutely understand what you are doing.

We suggest three methods for patch installation.

1) Automatic installation via X-Cart admin

  1. Save the text of the patch as a file.
  2. Log in to the admin area and go to the 'Patch/Upgrade' section.
  3. In section 'Apply patch', select your file by clicking on 'Browse' button. Click 'Apply'.

For more details please refer to Applying Patches via X-Cart Admin area.

2) Running 'patch' command

  1. Save the text of your patch to a file (e.g. patch.diff).
  2. Copy this file (patch.diff) to the directory where X-Cart is installed.
  3. Issue the command 'patch -c < patch.diff' to check the patch applicability.
  4. If there are no errors during the check-up, apply the patch by issuing the command 'patch < patch.diff'.

You can read more about 'patch' command in the manual (man patch, info patch).

If a patch application failed in the first two ways (this may be caused by redundant spaces or conversion problems) you can try to apply the patch manually, as described below.

3) Incorporate the changes manually right in the source code

If you cannot apply the patch in these ways it means the file that needs to be patched has been modified or this file is from another version of X-Cart and cannot be patched by this patch. Ask technical support to help you.

I am getting "Could not patch" error when trying to apply a patch. What can I do?

You can try to apply the patch manually, as described here.

If you still can not apply the patch, feel free to ask technical support to help you.

There are upgrade patches in my file area, what are they for and how can I use them?

Starting with v3.2.0 a special upgrade engine, allowing upgrading to a newer version, was implemented in X-Cart. Detailed instructions on how to perform upgrades come in the upgrade packages in UPGRADE.readme files.

Upgrade patches are a set of files which describe differences in code between old and new versions. All the changes are represented in standard diff format (UNIX unified diff format). Diff files contains structured data indicating what pieces of code are to be added/replaced/deleted: a sample of old code and a new code to insert instead. You will find more information about diff file at https://www.gnu.org/manual/diffutils-2.8/html_chapter/diff_toc.html

The main advantage of this approach is that diff patch technique allows upgrading even customized versions of X-Cart: X-Cart upgrade engine follows the list of files from the file file.lst and tries to patch them. Then database upgrade is fulfilled. If the code is not changed the upgrade will be successfully completed. However, since X-cart is highly customizable product most of X-cart users are certain to modify its code and templates to meet their needs. Here might come difficulties. If a piece of the code to be patched was customized (altered), the patch engine won't patch it and the upgrade script may fail. You will be notified about it by the system. So if you have ever changed X-Cart code you should be prepared to resolve the conflicts manually.

X-cart patch engine creates a log file that reflects a progress of the patching process - templates_c/upgrade/patch.log. The failed hunks are stored in reject files filename.ext.rej. Using this information you can figure out what parts of code haven't been patched in order to patch them manually afterwards.

For more information on the upgrade procedure and the instructions, refer to the manual included into the upgrade archive.

Why I'm getting checksum errors during upgrade?

Firstly, if you use WinZip to extract files from the upgrade/distribution kit, you need to change the default configuration in the following way: Click Options, Configuration, select the Miscellaneous tab and remove the tick from 'TAR file smart CR/LF conversion'. After that unpack the files from the archive once again and re-upload the files to your server.

Secondly, when you use FTP for uploading text files on the server it may alter your files (if it's in 'ASCII'/'Text' mode). It replaces the line-break symbols that are different for Unix and Windows systems whereas all the other text is left the same. These changes are not visible, but X-Cart checks files checksum and the values appear different from the expected ones. In order to solve the problem you should set your FTP client in the 'Binary' mode and re-upload the upgrade package files on the server.

Is it possible to upgrade from LC 2.2 to X-Cart 4.3 or 4.4? How do I do that?

You can upgrade LC 2.2 to X-Cart 4.4.3 using a special data transfer utility. Most data will be transferred, specifically:

  • Categories
  • Extra Fields
  • Memberships
  • Products
  • Featured products
  • Customer Profiles
  • Customer Orders

However, some data cannot be transferred during the transfer. In this case you can export the LC db data using phpMyAdmin, and then import that db data into X-Cart using the Import Tool.

All files you need are in your File area.

  • lc2xc-import-4.3.2.tgz
  • lc2xc-import-4.4.3.tgz

Here are the steps:

  1. Install X-Cart 4.3.2 or 4.4.3 using x-cart-4.3.2gold.tgz or x-cart-4.4.3gold.tgz;
  2. Download LiteCommerce to X-Cart Data Transfer Utility corresponding to the X-Cart version chosen;
  3. Extract the files from the archive downloaded;
  4. Copy the lc_import.php script to the directory where your X-Cart is installed and run it in a browser. All the instructions on using this script will be displayed in the browser window.

Should you require assistance on upgrading your LC 2.2 store to X-Cart 4.3 or 4.4, feel free to contact our support team via your personal Helpdesk area.

Basic usage

How to edit multiple products at once?

You may want to use 'Search-and-modify' feature:

  • open 'modify product' page;
  • check 'Select-and-modify' check-box and make a search for products;
  • in the 'product details' section, tick boxes near necessary settings, change the values and save.

As a result the change will be applied to all the found products at once.

How to turn off display of featured products list?

You should modify the '/customer/main/welcome.tpl' file. Comment out this part of the code:

{include file="customer/main/featured.tpl" f_products=$f_products}

i.e. change it to

{* include file="customer/main/featured.tpl" f_products=$f_products *}

This will hide the 'Featured products' section.

How to work with 'webmaster mode'?

Webmaster mode allows you to edit templates within the admin interface. You may edit language variables (denoted as "$lng.XXX" in templates) by changing those values in WYSIWYG mode.

1) Before entering the webmaster mode, close any template windows & label windows. Enter your admin zone, go to the 'Administration' menu, 'Webmaster mode' page. Click on 'Start webmaster mode' button.

2) The additional "templates" window will appear. It displays the list of templates composing a current page. You can call the template editor from this window by clicking a template.

3) Go to the page you want to change. To define the right template, look at the browser status line (at the page bottom). When the mouse is pointing at some text, this status line indicates the corresponding template and label.

4) To change a label, click on it. If the label is under a hyperlink, move the mouse over it and press "e" (Edit) on the keyboard. The label dialog will appear.

5) After you set a new label content you can

(a) preview the site with the changed label,
(b) save the text in the database, and
(c) copy the label name into the clipboard (IE only).

6) The webmaster mode is based on sessions: it applies only to the computer it has been set up on. I.e., when the 'Webmaster mode' is launched, it isn't displayed at the customer's end and doesn't affect the store performance. The changes will show up only after the admin clicks on 'save' button.

7) To quit the webmaster mode, go to admin zone, to the 'Administration' menu, 'Webmaster mode' page. Click on "Quit webmaster mode" button.

Note: Note:Webmaster mode will not work with compiled templates.

For additional information about Webmaster mode please refer to this article.

How to mark up all our product prices at once?

You can use the below SQL query to mark up all the product prices, let's say 20%:

UPDATE xcart_pricing SET price=price*1.2;

The query can be applied on "Patch/Upgrade" page in X-Cart admin back-end:


After the patch is applied, please force (re)generation of cache files and quick tables.

Note: It is recommended to back up your X-Cart database before applying SQL patches.

Where now?

I want to share my X-Cart experience with other people. How can I do that?

We welcome any kind of feedback (positive or negative) about our product as valuable information that can help us to improve it.

We welcome you to share your X-Cart experience with other people on the following web-sites:

Please answer the following questions in your review of X-Cart:

  • What was your 1st impression of X-Cart?
  • What was your impression of X-Cart after you passed the learning curve?
  • Is it making your life/profession easier or harder somehow?
  • What do you value most about X-Cart?
  • What do you dislike most about X-Cart?
  • If your web-site is live now can you say that X-Cart helps you to increase your sales?

I'm experiencing problems. Where can I find a solution?

  • try to search this website for the solution.
  • try to search QT bugtracker for the solution.
  • see the section below for information on how to contact Qualiteam engineers and other knowledgeable users.

I've found a bug or have a feature request. Where do I post it?

If possible please search the database prior to posting, to avoid creating duplicate entries.

See also:

I have a question not answered here. Where do I ask for help?


I get a blank page when going to my X-Cart admin area. How do I solve it?

The problem may be caused by the fact that your X-Cart store is configured to use HTTPS for the admin pages. However, you have no SSL certificate installed on your web-site, thus your X-Cart store's pages can not be opened via HTTPS. If that is the case, you will get a blank page when going to your X-Cart admin area.

To check if SSL certificate is available for your web-site (X-Cart store) use for example this URL:


where "https://www.yourwebsite.com/xcart/" is your X-Cart store's URL.

As a workaround solution to disable HTTPS for the admin pages - apply the following SQL query to your X-Cart's database:

UPDATE xcart_config SET value="N" WHERE name="use_https_login";

You can apply it for example via phpMyAdmin.

See also:

My admin account is locked/suspended. How do I unlock it?

When your account is locked/suspended, you will get the following error message when trying to log in:

Your account is temporarily disabled. Please contact the store administrator for details.

To unlock your admin account, try the following:

X-Cart 4.5.5 and later:

Search your admin account registration email inbox for a message titled "Your account was suspended". Use the link from that message to activate your profile.

If the message with the link cannot be found, it is possible to re-create the link manually. For that, complete the steps below:

1. Use the following SQL query to obtain your activation key value:

SELECT activation_key from xcart_customers WHERE usertype IN ('A','P') AND email='YOUR_EMAIL';

2. Create your profile activation link using the format below:
(Be sure to replace your_shop_url with the actual address of your store site and activation_key with the actual value of your activation key).

3. Follow the link you have created to activate your profile.

X-Cart 4.5.4 and earlier:

Run the following SQL query on your X-Cart database:

UPDATE xcart_customers SET status='Y', invalid_login_attempts=0 WHERE login='master';
IMPORTANT! Be sure to replace the 'master' value in the above query statement with your admin login or email.

The above SQL query can be applied using phpMyAdmin (provided by your hosting company).

If you find it difficult to do it yourself, feel free to contact our support team for assistance via your personal Helpdesk.

Additionally, in order to prevent your admin account from being locked/suspended, please review the PCI DSS compliance options in your X-Cart store's back end and adjust them if necessary:

  • Number of failed login attempts after which a user account must be suspended;
  • Lockout duration in minutes (Leave empty if you do not want to automatically re-enable automatically suspended users;
  • Number of days of inactivity after which an administrator account must be suspended (Set to 0 or leave empty if you do not wish to suspend unused administrator accounts).

See also:

How do I change or reset my admin password? (I lost it)

If you happen to have another admin account, use this account to reset your lost password:

  1. Log in to your store's admin area using a working admin account.
  2. Open for editing the profile of the admin user whose password was lost.
  3. Change the password as needed.

Alternatively, if you remember your admin username/admin email address, you can use X-Cart's reset password functionality:

  1. In Admin area, go to the Password Recovery page:
    • On the Admin area home page (httр://<YOUR_XCART_DOMAIN>/admin/home.php), click the "Forgot password?" link.
    • Enter the following address in your browser's address bar: httр://<YOUR_XCART_DOMAIN>/admin/help.php?section=Password_Recovery.
  2. Enter your admin username or email address and click Submit. An email message with a password reset link will be mailed to your admin email address.
  3. Use the password reset link to rest your password.

If for some reason the above methods do not work for you (for example, you lost access to you admin email box), there's still hope. You can create a temporary admin account and use it to regain access to your store's Admin area. As soon as you are logged in as admin, you will be able to either reset the password (and, if necessary, the email address) for the admin user whose password was lost or to get rid of that admin user account making the temporary admin account your permanent one.

Here's how you can create a temporary admin account:

X-Cart versions 4.5.4 and earlier:

Decide on the username and password you would like to use for your temporary admin account; for example, mytempadmin/mytempadmin. Open your phpMyAdmin (supplied by your hosting company), click the "SQL" tab and run the following query using the username and password you thought up:

X-Cart GOLD or GOLD PLUS edition

DELETE FROM xcart_customers WHERE login = 'mytempadmin';
INSERT INTO xcart_customers (login, password, usertype)
VALUES ('mytempadmin', 'mytempadmin', 'P');

X-Cart PLATINUM or PRO edition

DELETE FROM xcart_customers WHERE login = 'mytempadmin';
INSERT INTO xcart_customers (login, password, usertype)
VALUES ('mytempadmin', 'mytempadmin', 'A');

You should now be able to log in using the following details:

  • Username: mytempadmin
  • Password: mytempadmin

On X-Cart versions 4.4.0 and later, an attempt to log in using the above method may cause an error:

Email address is invalid! Please correct

This error occurs in stores using the 'Email as login' user authentication mode. If you got this error, replace the username in the above query statement with your valid email address and re-run the query. For example, if your email address is mytempadmin@example.com, use the following (the below example is for GOLD/GOLD PLUS):

DELETE FROM xcart_customers WHERE login = 'mytempadmin@example.com';
INSERT INTO xcart_customers (login, password, usertype)
VALUES ('mytempadmin@example.com', 'mytempadmin', 'P');

After that you should be able to log in using the following credentials:

  • Email: mytempadmin@example.com
  • Password: mytempadmin

X-Cart versions 4.5.5 and later:

Decide on the login you would like to use for your temporary admin account. We recommend using your email address, as this works well both for stores with the 'Username as login' user authentication mode and stores with the 'Email as login' user authentication mode. Let's say you are going to use 'mytempadmin@example.com' as your admin login. You do not need to worry about creating a good password just now, it is not really important as you will have to change it before you can actually log in; for the sake of example, we'll use 'mytempadmin' as the password.

Open your phpMyAdmin (supplied by your hosting company), click the "SQL" tab and run the following query:

X-Cart GOLD or GOLD PLUS edition

DELETE FROM xcart_customers WHERE login = 'mytempadmin@example.com';
INSERT INTO xcart_customers (login, password, usertype, email)
VALUES ('mytempadmin@example.com', 'mytempadmin', 'P', 'mytempadmin@example.com');

X-Cart PLATINUM edition

DELETE FROM xcart_customers WHERE login = 'mytempadmin@example.com';
INSERT INTO xcart_customers (login, password, usertype, email)
VALUES ('mytempadmin@example.com', 'mytempadmin', 'A', 'mytempadmin@example.com');

In Admin area, go to the Password Recovery page:

  • On the Admin area home page (httр://<YOUR_XCART_DOMAIN>/admin/home.php), click the "Forgot password?" link.
  • Enter the following address in your browser's address bar: httр://<YOUR_XCART_DOMAIN>/admin/help.php?section=Password_Recovery.

Request change of password for the temporary admin account you just created: On the Password Recovery page, enter the email address you used for your temporary admin account and click Submit. An email message with a password reset link is mailed to your admin email address.

Use the password reset link provided in the email message to reset your password. Before saving the new password, be sure to disable the admin profiles' authenticity check for the xcart_customers table by setting the value of the constant CHECK_CUSTOMERS_INTEGRITY in your store's main configuration file config.php to FALSE (Without disabling this check you will not be able to save the new password). After resetting the password, restore the value of CHECK_CUSTOMERS_INTEGRITY in config.php to TRUE.

Now you should be able to log in to your store's Admin area using your new password.

If you find it difficult to do it yourself - feel free to request our support team for assistance via your personal Helpdesk.

I have reset my admin password, but still can not log in. What is wrong?

If you are using X-Cart PLATINUM or PRO edition, then the problem is most likely caused by the fact that your store has been switched to and is currently running in GOLD operational mode. In other words, "Simple Mode" option is turned ON on the "Modules" page.

Please note that all accounts of the "administrator" type are disabled when "Simple Mode" option is turned ON.

Try to log in using any account of the "provider" type, or create a temporary account for the purpose of logging in, as suggested in this article (See instructions for X-Cart GOLD edition specifically).

See also:

Should you face any difficulties when getting access to your X-Cart admin area, do not hesitate to contact our support team via your personal Helpdesk. Our support engineers are always ready to help.

Should I re-generate the blowfish encryption key?

The respective message in your X-Cart Admin area only advises you to re-generate the key. This is not a mandatory, yet a highly recommended operation, just as changing the login and password that you use for accessing your X-Cart Admin area, FTP, SSH, etc., which you are recommended to change every once in a while. Here is how to re-generate your blowfish encryption key.

Is there any way to disable the blowfish encrpytion without knowing the merchant key?

Actually, there are two different encryption methods:

1) The Blowfish key based encryption method. This method is enabled by default; it cannot be disabled. You can view your current Blowfish Key in your X-Cart's main configuraton file config.php. You can also generate a new Blowfish key.

See also:

2) The Merchant key based encryption method. This is an additional (optional) feature. It can be enabled and disabled. The current Merchant key can be changed as well. Disabling the Merchant key based encryption method or changing the current Merchant key requires you to enter your current Merchant key.

See also:

Is there a way to restore a lost merchant key?

Merchant key is not stored in X-Cart anywhere. So, if you happened to lose your Merchant key, there is no way of restoring it. Without a valid Merchant key, you will not be able to decrypt and view sensitive order data. For this reason, it is essential that you keep your Merchant key in a safe place.

I am not receiving emails from my X-Cart store. How do I fix that?

Some spam prevention filters may block an email message if the domain part of the email address in the From header does not match the domain the message was sent from.

Generally, when a customer uses the "Contact us", "Send to a friend" and "Ask a question about this product" forms, the customer's email address (for example customer@gmail.com) is placed in the 'From' header of the message being sent. The same happens when a customer submits an order at your X-Cart based store and cart sends the order notification emails to the Orders department email address.

In the above cases, the domain part of the email address in the 'From' header does not match your website's domain name (for example, yourwebsitedomain.com), so the email message may be blocked by the spam filters.

To solve this problem set up the 'Company "From" email' option in your X-Cart admin back-end.

If it still does not help, try enabling another option on the 'General settings/Email options' page - Add additional '-f' parameter to the PHP mail() function.

Besides, if the mails are being sent with PHP mailer and not using any SMTP authentication then the mail is likely going to be sent through open mail relays. These mail relays are usually unmanaged and can develop a queue, and as a result the email stacks and delivery times increase.

To solve the problem, you can set up your X-Cart store to send emails via SMTP instead of PHP mailer: just configure and enable the corresponding SMTP options on the 'General settings/Email options' page.

When sending through the SMTP servers emails are delivered much quicker and more reliably. Please contact your hosting provider to know if emails can be sent with SMTP authentication on your server.

See also:

How do I test whether emails are actually sent from my website?

1. Download the File:Test mail.php.txt, save the downloaded file as 'test_mail.php'.

2. Upload test_mail.php to your web server's document root.

3. Send a test email message by following this URL:



  • http://yourwebsite.com/ - your web-site domain name
  • sender@mail.com - the email address your test email should be sent from
  • recepient@mail.com - the email address your test email should be sent to

4. You can also use an additional 'mode' parameter in the test script URL; for example:



  • http://yourwebsite.com/ - your web-site domain name
  • mode=simple - when specified, the test message will be sent without any additional headers (like From, Reply-To and X-Mailer)
  • mode=fkey - when specified, the test message will be sent with the '-fsender@mail.com' additional parameter
  • if the 'mode' parameter is not specified, the test message will be sent with additional headers (From, Reply-To and X-Mailer).

See also: mail() function.

I use HTTPS in the admin area and keep getting the non-secure objects on the screen warning. Why is that?

X-Cart uses a free Google Maps API which can be accessed only over a non-secure (HTTP) connection. Thus, if you are viewing the order page in the admin back over a secure (HTTPS) connection, the browser may pop up a warning about non-secure objects on the screen.

Google Maps API HTTP services is available over a secure (HTTPS) connection to Google Maps API Premier customers.

For more info please refer to Google's FAQ:


Possible solution: disable the warning message in the browser:


I experience problems with external payment / shipping services working over https when using curl/libcurl as the https module. Is there a solution for that?

If you experience problems with external services (payment / shipping) working over https while using curl/libcurl as the https module, try adding the following line to top.inc.php:



$xcart_dir = rtrim(realpath($xcart_dir), XC_DS);

I am getting "Fatal error: Out of memory..." error on my X-Cart pages. How do I resolve this issue?

Firstly, make sure the 'memory_limit' setting in your php.ini configuration file meets the X-Cart Server Requirements. The required value for X-Cart 4.4 is 32M or higher. Try to increase the memory limit until the error disappears.

Secondly, check if there is a memory limit defined in your Apache configuration. Try to increase the memory limit until the error disappears.

Feel free to contact your hosting provider to make the necessary changes, or contact our support team for assistance.

X-Cart 4.0or above

Payflow Pro is not working, getting "The certificate chain did not validate, no local certificate found" error at checkout. How do I resolve this issue?

You are probably running X-Cart 4.0.x (or older) which includes an outdated integration of PayFlow Pro. That integration use Payflow Pro client (pfpro) and the VeriSign/RSA root key bundled in legacy Payflow Pro SDKs to process a transaction.

On January 4, 2010, that Payflow Pro SDK expired permanently. Payflow Pro integrations that use outdated version of the SDK are no longer able to validate against the Payflow Pro server certificates. That is why you are getting "The certificate chain did not validate, no local certificate found" error.

For more information about the Payflow Pro integrations update please refer to:

Newer versions of X-Cart 4.1-4.3 support a newer PayFlow Pro integration that uses XMLPay API. The newer PayFlow Pro integration significantly differs from the older one. In other words, it's a completely new integration.

No more updates are available for the outdated 4.0.x (and older) branches, unfortunately.

That is why we can offer you the following solutions:

  1. Upgrade your cart to a newer version. Upgrade scripts/packages are available for free.
  2. Re-implement the PayFlow Pro integration on your current X-Cart 4.0.x (or older) store to support the XMLPay API. This can be done within the bounds of the Custom Development service.

You can also download the newer version of X-Cart (for example, 4.3.2 or 4.4.3), take the newer PayFlow Pro integration's files from the software distribution, and transfer/adopt the newer integration to your current 4.0.x (or older) version by yourself, or hire third-party developers to do the work.

Why do I get a security warning on my secure page?

Why do I get a "This page contains both secure and nonsecure items." (using IE7) or "Do you want to view only the webpage content that was delivered securely?" (using IE8) error?

Error from IE7:


Error from IE8:


To find the cause of the error, if using IE7 click "Yes" and if using IE8 click "No".

Once the page loads, view the source (Right Click, View Source).

Search for http: (include the : )

Any reference to http: in a HREF tag can be ignored, as that is just a link.

However, you will likely find the http: reference in an IMG SRC tag, or when trying to include a javascript file, or a hit tracker, etc. These http: references should be changed to https: to correct the error.

Here is a sample of http: being used in the IMG SRC tag incorrectly, for a secure page:

<img border="0" src="http://your_ssl_url.com/images/logo.gif">

That would need changed to a secure URL like:

<img border="0" src="https://your_ssl_url.com/images/logo.gif">

Alternatively, it can be changed to an absolute URL like:

<img border="0" src="images/logo.gif">

In any case, make sure your image is available via the secure (https://) URL.

Alternatively, you'd need to modify the URL used to request the images/scripts to change the protocol depending on what protocol the main page is being served with.

  • If you must fetch images or javascript files from a third party server, you'll only be able to solve this issue if that third party also provides HTTPS on their server, otherwise you cannot get rid of the message - it's there intentionally in IE to provide a legitimate security warning. You can't override it.
  • In some cases, changing the http: reference in a SCRIPT SRC tag to the https: one will not help to get rid of the security warning. It may happen when the included javascript file adds another http: references to your secure page. You can check this by examining your page using Firebug. In that case, you should contact the author of that javascript file, and ask them to modify their script to change the protocol of all the references being added by the script depending on what protocol the main page is being served with.

Feel free to contact our support team should you require assistance in resolving the security warning issue.

See also:

How do I solve errors like "Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 737280 bytes)..."?

You should contact your hosting provider or web-server administrator, and ask them to increase the "memory_limit" setting in php.ini. The required value is 32M or more, the recommended value is 64M or more.

If changing of your web-server's settings is not possible, or this does not help, please request our support team for assistance in your personal Helpdesk area.

See also:

The provider on some products is showing as blank (). How do I assign these products to another provider?

1) First of all, you need to know the ID of the provider which the products should be assigned to. To do it:

- Login to the admin zone of your store; - Find the target admin's profile ("Users" section); - Proceed to the profile details page ("Modify administrator profile" section).

Notice the URL that appears in the address bar of your web browser, it would look something like that:


In the above example URL, the provider ID is 2 (it is located right after the substring "user=").

2) Apply the following SQL query:

UPDATE xcart_products LEFT JOIN xcart_customers ON xcart_products.provider = xcart_customers.id SET provider = '2' WHERE login IS NULL;

where '2' is the ID of the provider which the products should be assigned to.

To apply the SQL query, use either phpMyAdmin provided by your hosting, or "Patch/Upgrade" utility available in the X-Cart admin back-end.

How do I export users with passwords decrypted?

Modify <xcart_dir>/include/import_users.php file, add this line:

$row['password'] = text_decrypt($row['password']);

right after these lines:

// Get data

$row = func_query_first("SELECT $sql_tbl[customers].*, m.membership FROM $sql_tbl[customers] LEFT JOIN $sql_tbl[memberships] as m ON m.membershipid = $sql_tbl[customers].membershipid WHERE $sql_tbl[customers].id = '$id'");

if (empty($row)) {

See also:

Google Checkout can not communcate with my X-Cart store. How do I solve this problem?

Please refer to X-Cart:Google Checkout. Troubleshooting.

I am getting "Cannot write data to the temporary directory..." error. How do I solve this problem?

Make sure that proper writable permissions are set for the directory var and its subdirectories, and for all files in the the directory var and its subdirectories in your X-Cart installation.

For more information about what permissions must be set for X-Cart files and folders please refer to this article.

How to set up X-Cart to accept 3 decimal places for shipping charges?

Download and apply the following patches:

I am getting "Not Finished" or "Queued" orders in my X-Cart store, although they are successfully paid via PayPal (Website Payments Standard). How do I solve the problem?

Make sure Instant Payment Notification option is enabled in your PayPal account settings (see "Putting PayPal to Work with X-Cart" section, step 6).

Customers are not automatically returned from PayPal to my X-Cart store after successful payment (Website Payments Standard). How do I solve the problem?

Make sure Auto Return option is enabled in your PayPal account settings (see "Putting PayPal to Work with X-Cart" section, step 7).

None of our products show up and no searches return any results. How do I solve the problem?

Please try to use this tool:

This will re-generate the data in the quick tables, which are used by the product search function.

If it still does not help, please request our support team for assistance.

Read more about the support services at:

How do I enable case-insensitive login for X-Cart 4.3.2?

Apply the patches attached:

Note, you may need to install these patches manually.

Ideal responsive theme inserted a new "Shopping Cart Software" image in the center column just above my own content. See image below. How do I get rid of it?

Xcart welcome image.png

This is X-Cart's default welcome banner. It can be removed by applying the patch attached to this message on the X-Cart forum: https://forum.x-cart.com/showpost.php?p=369567&postcount=22


How do I change the default search results order from ascending to descending?

Find this line in include/searhc.php file:

$search_data['products']['sort_direction'] = 0;

and change it to:

$search_data['products']['sort_direction'] = 1;

You may also want to adjust the following setting in your X-Cart admin back-end: General settings -> Appearance -> Select the order in which products should be displayed within a category.

Before testing the modification do not forget to remove all cookies in your browser.

How do I implement redirect from cart to intermediate page before checkout?

I want to add a code to redirect to a custom script after the customer adds a product to cart, instead of going to checkout. Actually this custom script creates an intermediate page with related products, and the customer can add one more from these products to cart and eventually go to checkout.


Find this code in cart.php script:

} elseif(!empty($cat)) {

$return_url = func_get_resource_url('category', $cat, 'page=' . $page);



and add the following line right after the code:

$return_url = "custom_script.php?var1=$var1&var2=$var2";


  • custom_script.php - your custom script creating an intermediate page which customers will be redirected to (page with related products).
  • var1=$var1, var2=$var2 - GET-parameters which need to be passed to your custom script.

How do I implement a custom script to add a product to cart? What variables are needed to be passed to cart.php through a submit form in my custom script?

I have a custom page, where I want the customer to add an additional related product to the cart, and then the code returns back to the cart.php script. How do I implement that? What variables of the newly-added product are needed to be passed through my submit form, to the cart.php script?


Here is an example of the script to add a product to cart:


How do I make FedEx do not show estimated shipment arrival date along with the shipping rates?

FedEx returns the estimated date when the shipment will arrive along with the shipping rates. I don't want to display those.

For example - now it says:

  • FedEx 2Day® - Mon Apr 30 $25.01
  • FedEx Ground® - 1 day $19.85

All I want is:

  • FedEx 2Day® $25.01
  • FedEx Ground® $19.85

How do I do that?


1) Modify "<xcart_dir>/shipping/mod_FEDEX.php", find the following line of code:

$estimated_time = func_fedex_get_estimated_time($entry, $prefix);

and change it to:

$estimated_time = "";//func_fedex_get_estimated_time($entry, $prefix);

2) Make sure the "Delivery time" field is empty for all FedEdx shipping methods on the "Shipping methods" page.

How do I place the "Call for price" label everywhere where Price is not set?

I am trying to prevent the "Set your own price!" from showing when a product does not have a price entered. What I need there is "Call for Price".

Also if the product details link is clicked it still enables them to enter "our price".

Also if there is NO price and there IS inventory it puts up the Buy Now button.

We need to simply have "Call for price" everywhere if there is no Price shown.


Please follow the instructions below.

1. Change the text of the "lbl_enter_your_price" and "lbl_enter_your_price_note" language variables.

For example, replace "Set your own price!" to "Call for Price", and adjust the text of the "lbl_enter_your_price_note" language variable as necessary.

See also:

2. Modify <xcart_dir>/skin/common_files/customer/main/buy_now.tpl file as follows:

  • add the following line of code:
{if $product.price gt 0}

above the line:

<div class="buy-now">
  • add the following line of code:

at the very end of the file, right after the last line of code:

Note: If you use other skin than "Light & Lucid (3-columns)", then the above instructions apply to the corresponding template file in your current skin directory, for example:


3. Modify <xcart_dir>/skin/common_files/customer/main/product_details.tpl as follows:

  • find this line of the code:
<input type="text" size="7" name="price" />

and replace it with:

  • find this line of the code:
{if $product.appearance.buy_now_buttons_enabled}

and replace it with:

{if $product.price gt 0 and $product.appearance.buy_now_buttons_enabled}
Note: If you use other skin than "Light & Lucid (3-columns)", then the above instructions apply to the corresponding template file in your current skin directory, for example:


See also:

Should you require any assistance with implementing the above changes, you are welcome to use our commercial support services. Our support engineers will be glad to help you.

You can read more about the new support system, as well as purchase the preferable support option, through our website at: