Meet X-Cart 5.3 Beta
Hello, X-Carters!
Today we are happy to announce the beta release of X-Cart 5.3, and I’ll stay with the most significant improvements of the new branch.
Easy way to change the look-n-feel
Working on 5.3 we have the primary goal to make design changes and tweaks in X-Cart easy for webmasters and theme designers, and at the same time to save the flexibility during upgrades and installation of new features.
Starting from 5.3 a new skin is available in all X-Cart packages out of the box. Light and neat, with a full width slider and a lot of white spacing, this skin will make your store look modern. It’s created in minimalist style, combining flat and material design, based on CSS with vertical rhythm and Bootstrap Grid System.
If your current site design is based on the Standard skin, you can continue using it in 5.3 version.
For new projects, we recommend you to build design on the basis of the new competitive template.
Drag-and-drop layout edit mode and inline description editing
The updated webmaster mode provides superior experience in changing the store look’n’feel. It allows an administrator to easily manage homepage and category pages layout. The page structure can be edited just by moving content blocks to any part of the page, hiding them and making visible again in one click.
Another helpful feature is Inline editing. Now you can edit the product description directly on the product preview page and see how the content will be displayed to customers right away. This is especially convenient if the description includes formatting, images, videos and tables and may look differently in the WYSIWYG editor and on the product page.
Twig as the new template-engine
Flexy is an excellent template engine and it suits X-Cart architecture logic, but it hasn’t gained popularity. Since one of our goals is making design changes easier and more comprehensible for webmasters, we had to look for some other solution.
Finally, we upgraded our template-engine to Twig. We thoroughly reviewed Smarty 3 and Twig and decided to use the latter, since it is more powerful and flexible. And though it already has huge community, it continues growing very fast. Twig is very similar to Smarty in syntax and every developer who is very familiar with Smarty will be able to switch to Twig in a couple of hours. If you are a developer, you can see it for yourself in Twig’s documentation
Good news for all the developers and partners who created modules and custom code on Flexy! We’ve created an exclusive convertor to help them to transfer their code to Twig: https://xcart.github.io/flexy-to-twig/
Better Experience
New Fast Lane Checkout
In addition to the existing one-page checkout we have developed a new multi-step Fast Lane Checkout. Though there is a common belief that the former converts better, the latter also has its pros and may work better for some stores. Multi-step checkout allows customers to focus on one step at a time, because a separate widget is used to ask for a separate piece of information. As a result, checkout looks cleaner and seems to be easier to fill in. Due to the split into several steps the page doesn’t reload each time the new info is submitted as on one-page-checkout. It’s hard to say which type is better for this or that store, just A/B test both to find it out.
The new checkout is available as a separate module in all X-Cart editions and can be used with both skins: Standard and CrispWhite.
Bulk Edit
Bulk edit is an incredible feature for catalog management, and at the same time it is a real challenge for UI/UX. Those who used X-Cart 4 know what a powerful group editing feature it possesses, and we know how difficult this feature is for merchants to understand and expensive for developers to support in custom code.
So, in X-Cart 5 we created the Bulk edit feature on the basis of cases for bulk editing. What are the most used cases for it: changing category or membership, shipping stuff, putting products on sale? We’ve started with the most useful cases which in our opinion are the following:
- Add, remove or re-assign categories and tags;
- Change inventory and related settings;
- Change prices and memberships;
- Change shipping related settings.
The current implementation allows us to add new cases quickly during minor updates. Please, feel free to share your cases of bulk edit in ideas.x-cart.com and we will review their implementation in future versions.
Another main feature of the bulk editing structure is that it can be implemented for any object in a database. So, we will surely add bulk editing feature for Users and other models within the 5.3 branch. Bulk edit will be available in all paid X-Cart editions. Click on the images to enlarge them.
4-digits version numbering scheme
Since 5.3 branch every version will be represented by a sequence of four digits like this beta has – 5.3.0.0.
The increase in the 4th digit will mean that it’s 100% bugfix release. The increase in the 3d digit will say that this version contains new features as well. If two upgrades (bugfixes and new features) are available at a time, an admin will be able to choose what to do – update to bugfix release or upgrade the cart to the major version with new features and included bugfixes.
4th digit increases 5.3.0.3 to 5.3.0.5 | 3d digit increases 5.3.0.3 to 5.3.1.0 | 2nd digit increases 5.3.0.3 to 5.4.0.0 |
---|---|---|
Bugfixes only | Bugfixes New features Minor API changes | Bugfixes New features Major API changes |
Free anytime | Free with active upgrade subscription | Free with active upgrade subscription |
Also, we’ve included support for displaying changelogs both for core and modules in the store admin area during the upgrading procedure.
Development and Performance
New fast cache engine
No words here, let’s see the results of a performance test.
We tested it on AWS c4.xlarge instance with Nginx + PHP-FPM via Gatling service. Every minute new 100 users came to the store and followed the route: homepage, category page, product page, adding a product to cart, cart page, another category page, back to the home page. We’ve got the following response time (the time to load the full page without static content) results:
X-Cart 5.2 Response Time (s) 100 new users per minute PHP 5.5 | X-Cart 5.3 Response Time (s) 100 new users per minute PHP 5.5 | Speed Growth, % | |
---|---|---|---|
Home page | 1.285 | 0.610 | +110.66% |
Category page | 1.139 | 0.606 | +87.95% |
Product page | 1.286 | 0.587 | +119.08% |
Cart page with added product | 1.148 | 0.587 | +95.57% |
Category page with added product | 3.640 | 0.651 | +459.14% |
Home page with added product | 3.217 | 0.425 | +656.94% |
Global average | 1.232 | 0.536 | +129.85% |
As you can see the pages load twice as fast as against to 5.2. Additionally, let me draw your attention to the difference between sessions with products in the cart. In 5.3 we use hole-punching cache methodology to cache personalized view of the page. As a result you can see such awesome speed improvements.
We will share more tech info in our future blog post about the new caching engine.
PHP 7
Yeah, X-Cart 5.3 supports PHP 7 out of the box. Every PHP script shows better performance with PHP 7 and here are the results of X-Cart 5.3 work on PHP 5.5 and PHP 7. The server and scenario are the same as in the previous test.
This time though we also tested performance with 300 new users per minute (432K users per day).
X-Cart 5.3 | Response Time (s) 100 new users per minute PHP 5.5 | Response Time (s) 100 new users per minute PHP 7 | Response Time (s) 300 new users per minute PHP7 |
---|---|---|---|
Home page | 0.610 | 0.422 | 0.554 |
Category page | 0.606 | 0.406 | 0.539 |
Product page | 0.587 | 0.290 | 0.443 |
Cart page with added product | 0.587 | 0.286 | 0.431 |
Category page with added product | 0.651 | 0.434 | 0.572 |
Home page with added product | 0.425 | 0.247 | 0.365 |
Global average | 0.536 | 0.329 | 0.462 |
We are proud to say that X-Cart is definitely ready for high load usage out of the box!
By the way, as promised, we kept 5.4 as minimum required php version for X-Cart 5.3 because we understand that most of the hosting companies will continue using the older versions in the nearest future.
Coding without cache rebuilding
This is the feature that will please developers. Now when you make any changes in X-Cart code, the new decorator will add your changes to the cache automatically without boring redeploy procedure. Just enable developer mode and go ahead!
Also, in X-Cart 5.3 you will find a very useful new updated profiler developed primarily for the X-Cart structure as part of the WebmasterKit. Within the new DebugBar, you can get information about Memory Points allocation, SQL queries, System Messages, Widgets timeline and other related information. Using this info, you can trace your code to make it faster and more stable.
There are a lot of other significant improvements like new structure of emails templates, new dependencies (Depend, After, Before) instead of discontinued @LC_Dependencies, Symfony forms styled with Bootstrap, improved support of PHPStorm, Composer usage for PHP dependency management and others. We will describe them in more details in our future announcements and in developer guide. By the time of stable 5.3 release we will prepare upgrade guide for developers to adapt their custom mods and addons for 5.3 branch.
Starting from 5.3, X-Cart is also available via public GitHub repository.
Upgrade to 5.3 won’t be available while we are in beta. However you can already download and test 5.3. If you find any issues, feel free to post them to our bug tracker. You’re welcome to share your feedback about the new version on the forum.
We do not recommend developers to start adaptation of their modules right now. It’s better to wait for a stable release. It’s just time to say ‘Hi’ to the new superior version of X-Cart platform. View changelog here
Anastasia has over 8 years of experience in the eCommerce industry. Having been a Customer Care agent in the past, she knows exactly what eCommerce merchants' needs are, and uses her knowledge in Marketing to bring value to the community by sharing her thoughts on relevant topics.