X-Cart:What's New in X-Cart 4.1
Contents
X-Cart 4.1.x Features
Having analyzed feedback from our users, we implemented all the most frequently requested features. Finally you have a chance to experience the many improvements introduced during the period of development:
- XHTML 1.0 Transitional compliance
X-Cart has undergone a comprehensive template overhaul and is now fully compliant with the XHTML 1.0 Transitional W3C standard.
- Enhanced performance
A considerable increase in performance has been achieved due to decrease of the number of complex SQL queries, addition of a data caching mechanism and optimization of the PHP code aimed at reducing the required memory limit.
- Improved catalog structure
Temporary X-Cart directories (like 'log', 'cache', 'templates_c') have been moved to a new top level subdirectory 'var' (e.g. 'var/log', 'var/cache', 'var/templates_c'). For a full list, see config.php.
- Enhanced interface usability
A 2-column layout has been introduced for the admin/provider area.
- Several sections of the user interface have been redesigned for usability:
- ‘General settings’ section has been restructured (All the options have been sorted into distinct groups; the 'Modules options' section has been divided so that each X-Cart module now has its own options page).
- 'Languages' section design has been optimized: input boxes for label values are enlarged for convenience, description field is removed, ability to search for labels in all topics is added.
- Shipping methods setup section has been redesigned.
In several sections ('General settings', 'Modules'), the mechanism of selecting option check boxes has been improved (Check boxes can now be selected and unselected by clicking not only the option check boxes themselves, but the option names as well).
An advanced WYSIWYG editor has been added for Webmaster mode, product/category/manufacturer descriptions, language variables and static pages.
A minor improvement has been made on the 'Profile details' page: the fields of the ‘Shipping address’ section are now hidden and completed automatically with information provided by the user in the ‘Billing address’ section; for cases in which the shipping address needs to be different, a check box 'Ship to a different address' is provided (enables a user to enter a shipping address manually).
Now X-Cart can remember registered customers for lengthy time periods. When remembered customers return to the store site, all the menu boxes appear to them as if they were already logged in; however, when they attempt to access such resources as their profile details, orders history or wish list, they are required to pass an authentication procedure. Customers are remembered and identified by a cookie stored onto their machine. The store administrator can set the time period for which such a cookie needs to be stored on a customer's machine by adjusting the remember_user_days variable in init.php.
- Enhanced flexibility and control
A number of new configuration options have been added enhancing your ability to fine-tune X-Cart according to your needs:
(General settings->Appearance options)
- an option that allows you to choose a format for fractional numbers that will be used in the store (prices, weights);
- an option that allows you to control, whether product code (SKU) should be displayed in the Products list or not;
- an option that allows you to switch the section 'Send to friend', which can be displayed on the Product details page, on and off.
(General settings->General options)
- options that allow you to define a maximum subtotal amount with which an order can be accepted by your store and a maximum number of product items a customer is allowed to order at a time (regardless of product titles);
- an option that allows you to control redirection of a customer to the dynamic or to the static part of the store after adding a product to cart from a static HTML catalog page with the option 'Redirect customer to cart' disabled;
Capability for the store admin to control the set of fields of the anonymous checkout registration form using the General settings->User profiles options page has been added. Shipping/billing title/firstname/lastname fields have been included into the set of fields whose status can be controlled using the General settings->User profiles options page.
- Advanced user management capabilities for the store administrator
The store administrator now has the ability to temporarily disable accounts of other users:
- to suspend login for specific users;
- to forbid ‘activity’ for specific users (for provider accounts – to disable all the products of a specific provider, for partner accounts – to disable the addition of commission payments).
'Operate as this user' feature: The store administrator can now get access to the account of any other store user directly from the Admin zone interface and act on behalf of this user.
'Multi-login' feature: Simultaneous use of more than one user type in one browser session is now supported (for example, a user can be logged in as an administrator and a customer at the same time).
'Tax exemption' feature for customers:
- 'Tax number' field can now be enabled by the store admin in customer profile forms (A customer can use this field to provide his or her VAT number; the value of this field will be included into the order invoice, so the customer will be able to reclaim VAT).
- 'Tax exempt' status can now be assigned to certain customers by the store admin. Orders of such customers will not be subject to taxation.
- Improved membership system
Access to products, categories, payment methods, tax rates and discounts can now be restricted based on memberships.
- Improved orders/order invoices
Customer notes have been separated from the order details and are now shown on the customers' order invoice; they have also been made editable on the order details page by the admin.
- New capabilities for shipping rate calculation
Support for Australia Post’s Delivery Rate Calculator and USPS Domectic rate calculator API 2.0 has been added.
- Improvements in the system of payment acceptance
Support for a number of new payment gateways has been added:
- ANZ eGate Merchant-Hosted payment module,
- PSiGate XML interface payment method,
- Heidel payment module (DirectDebit),
- Heidel payment module (CreditCard),
- Bank of Asia payment module,
- TotalTrans payment module,
- Credomatic payment module,
- Secure-I payment module.
The store admin can now define a surcharge for any payment method.
- New import/export
The procedure and file format for data export/import have been changed; export/import functionality is now available for almost all data types (products and all related information, categories, coupons, destination zones, users, etc).
- Advanced language management
Multilanguage support has been added for:
- user titles (Mr, Mrs, …),
- names of the months (Smarty tag htmlselect),
- membership levels,
- payment methods,
- X-Cart's speed bar.
The store admin can now choose right-to-left direction for displaying text (may be useful for languages like Hebrew or Arabic).
- Improved product search
The store administrator/providers can now define search keywords for products – words or phrases which are not included into the product title or description, but are somehow associated with the product and can be used to find it.
The store administrator can enable/disable searching by individual words of a search phrase for all the store users (When this functionality is enabled, users searching for a product can specify, whether the results returned by the search need to match 'All words', 'Any word' or the 'Exact phrase' of the search pattern. If this option is disabled, search results include only the exact matches of the search pattern).
A special filter has been added for the product search facility that ensures that service and link words that occur in a search pattern are ignored when search by individual words is performed (available only for the English language).
- Improved logging
X-Cart now has the ability to keep logs of errors and other information about the store functioning. The ‘General settings->Logging options’ section allows the store admin to select, which logs need to be kept.
The following logs are available:
- log of backups and database restorations;
- log of file operations performed via X-Cart interface;
- log of operations on orders (removal, editing, updating of statuses);
- log of operations on products (removal, editing, updating of statuses);
- log of transaction errors which may occur when payments are made via online payment gateways;
- log of realtime shipping modules’ errors;
- log of PHP and SQL errors;
- log of changes in environment settings (php.ini and the active HTTPS bouncer).
- A new image type – ‘Product image’
X-Cart 4.1 introduces a new image type - product images. Using this image type enables you to have an image of a product other than the product thumbnail displayed on the Product details page (If no product image is defined, the product thumbnail is used).
- Enhanced control over images location
When images are relocated from the database to the file system, paths relative to the directory xcart/ are saved, which facilitates moving the store to another hosting location.
Image files can now be moved to the file system during X-Cart installation.
- Improved organization of data
Optimized storage of images: a separate table is created in the database for each type of images.
The fields Shipping/billing title/firstname/lastname are added to the table xcart_customers.
- Means for maintaining data integrity
X-Cart now has the ability to generate system fingerprints (lists of MD5 checksums of all the files in the directory xcart/ ) and to compare fingerprints generated at different periods of time to find out whether any files have been added, modified or lost (removed or renamed).
Security of compiled templates is improved: an MD5 checkup has been added for compiled templates (helps prevent unauthorized writing to the template cache). Now, if a compiled template gets altered, the checkup mechanism detects a change of the template’s MD5 sum and forces re-compilation of the template.
- Means for maintaining security of sensitive information
In X-Cart 4.1, SALT encryption method has been fully replaced by Blowfish encryption algorithm. Blowfish is now used for credit card number and CVV2 fields. Blowfish key generation procedure is added to the script install.php.
The store admin now has the ability to discard credit card information provided by customers saving only the last 4 digits of credit card numbers in order details (Admin area -> Tools page -> Credit card information removal section).
- A new patch/upgrade center
X-Cart 4.1 patch/upgrade functionality makes it possible to upgrade installed add-ons and non-standard X-Cart skins.
- Two new modules added:
‘Fast Lane Checkout’ module introduces a more user-friendly and intuitive checkout procedure.
‘Maintenance Agent’ module enables X-Cart to send email notifications to the store administrator with information about the store functioning during a certain period. These notifications can include visits statistics, orders statistics, various log messages (error logs, logs of file operations, DB backup/restore operations, data import, changes of environment settings, operations on products and orders, etc).
- A number of improvements implemented in existing modules
- 'Detailed Product Images' module:
- The store administrator now has the ability to choose, how detailed product images should be displayed - on the Product details page, as usual, or in a separate window. When a separate window is used, detailed images can be switched dynamically (without page reloading).
- 'Discount Coupons' module:
- Now the module provides more flexibility in creation of discount coupons:
- Absolute discounts can now be applied once per order, to each product item or to each product title.
- It is possible to set up 'Times to use' option based on 'per customer' principle.
- 'Extra Fields' module:
- Multilanguage support has been added for extra field names.
- The order of extra fields can now be controlled using the 'Orderby' field.
- Extra fields can now be exported and imported.
- 'Gift Certificates' module:
- Gift certificates can now be printed for sending by regular mail.
- Two pre-designed sample templates have been added for printable gift certificates.
- The store admin can choose to enable customers to choose a design for Gift certificate cards that will be sent by postal mail.
- 'Manufacturers' module:
- Multilanguage values are now supported for manufacturer name and description.
- Ability to use HTML tags in the description of manufacturers has been added.
- Manufacturers' static pages can now be generated for the HTML catalog.
- 'News Management' module:
- Multilanguage support has been added.
- The store admin has been given more control over the process of sending newsletters (Newsletters can now be sent in batches.
- The store admin has the ability to define the number of emails which must be sent at a time and to adjust the delay between the batches).
- 'Product Options' module:
- The interface for product options and product variants management has been redesigned.
- Wholesale prices and thumbnail images are now supported for product variants.
- 'Wishlist' module:
- The store administrator/providers can now view customer wish lists.
X-Cart 4.1.x Performance
We performed some testing to find out how the performance of X-Cart 4.1 differs from that of X-Cart 3.5.x and 4.0.x.
Testing conditions
All tests were performed on X-Cart-based stores specially installed on our server for this purpose. The 3.5.x branch was represented by X-Cart 3.5.14, the 4.0.x branch - by X-Cart 4.0.18.
All the stores employed in testing were configured as follows:
- every category contained 10 products and had 5 featured products;
- every product had 3 wholesale prices;
- every object that could have an image had an image; images that could be stored on the file system were stored on the file system;
- every 10th product had 2 votes and 2 reviews;
- every product had 3 links to other products;
- every product had names in 3 different languages;
- every other product had 2 product options with 4 option values in each one;
- every 10th product had 2 'variant' product options with 5 option values in each one; each variant had 3 wholesale prices;
- there were 3 membership levels;
- there were 3 product classes with 10 features in each one; every 20th product was assigned to one of the classes;
- there were 100 customers;
- there were 3 destination zones;
- there were 3 taxes - with one tax rate per zone;
- a tax was applied to every product; every other product had more than one tax applied to it;
- there were 10 shipping rates;
- there were 20 manufacturers;
- every other product had a manufacturer;
- there were 10 orders containing 3 products and 1 gift certificate each;
- there were 5 return requests.
Testing results
The results of testing compare page loading time on different X-Cart versions for the following pages:
- Welcome page and category pages
Number of products in the database | Page loading time on X-Cart 4.1 (as compared to other X-Cart versions) | |
---|---|---|
under 1000 | 40-50% faster than X-Cart 4.0 | 20-25% slower than X-Cart 3.5 |
5000 | 50-60% faster than X-Cart 4.0 | 20% faster than X-Cart 3.5 |
20 000 | 60-70% faster than X-Cart 4.0 | 2.5-3 times as fast as X-Cart 3.5 |
- Product details page
Number of products in the database | Page loading time on X-Cart 4.1 (as compared to other X-Cart versions) | |
---|---|---|
under 1000 | 2-2.5 times as fast as X-Cart 4.0 | approximately as fast as X-Cart 3.5 |
5000 | 2-2.5 times as fast as X-Cart 4.0 | 1.5-2 times as fast as X-Cart 3.5 |
20 000 | 2.5-3 times as fast as X-Cart 4.0 | 2.5-3 times as fast as X-Cart 3.5 |
- Basic search using a product name
Number of products in the database | Page loading time on X-Cart 4.1 (as compared to other X-Cart versions) | |
---|---|---|
under 1000 | 2 times as fast as X-Cart 4.0 | 15-20% slower than X-Cart 3.5 |
5000 | 3 times as fast as X-Cart 4.0 | 1.5-2 times as fast as X-Cart 3.5 |
20 000 | 3-3.5 times as fast as X-Cart 4.0 | n/a (the search script on X-Cart 3.5 could not complete the task) |