This project is not covered by Drupal’s security advisory policy.
Commerce Cart Advanced provides enhancements on the Commerce Cart module for Drupal Commerce. At the present time, it improves the user experience with maintaining multiple carts.
Multiple carts
Commerce 2 allows a user to maintain more than one cart; in most cases this will happen automatically. When adding to the cart products that belong to different stores, or products associated with different order types, the cart will be split to 2 or more carts. When a user adds a product to the cart as an anonymous user, and then logs in, the created cart will remain as a separate cart even if there already exists one associated with the authenticated user.
User experience issues caused by the default behavior:
- All carts are displayed as a list and in full i.e. the full cart form. Depending on the site's styles the page can become too long or overloaded. Depending on the site and the nature of the multiple carts, the user might only be interested in the first cart only.
- Some single-store sites might be customized to display only the first cart. In that case, when a user removes all items from the first cart they would expect to see an empty cart. However, an old cart associated with the user will be loaded causing confusion. The same can happen when the user proceeds to checkout and places an order.
Current functionality
Single vs Multiple carts display
Commerce Cart Advanced allows store managers to choose whether to display only one cart on the cart page, or multiple.
Current vs Non-current carts
When configured to display multiple carts, Commerce Cart Advanced splits carts into current and non-current carts. By default, the first cart per store is considered as current, while the rest are non-current. Each cart type can be configured to use a different Views form and they are provided with a different wrapper theme; this allows to visually differentiate between current and non-current carts in terms of importance, and to reduce the page length. For example, current carts (only one cart in the case of single-store sites), can be displayed in full at the top of the page, while non-current carts can be displayed as a list or even as a carousel in teaser/summary mode.
Save for later
Users can explicitly mark a cart as non-current via a "Save for later" button. That will move the current cart to the non-current carts section and the user can create a new cart. That can be useful if the user wants to keep their product selection for a later moment.
Individual cart page
Each cart is also provided with its own cart page; for example, non-current carts that may be displayed in teaser mode on the main cart page can be viewed on their own and the user can proceed to checkout from there.
Individual cart item page
Each cart item is provided with its own cart page where they can be edited individually.
Empty cart page
By default, once a cart is displayed in the non-current carts section it is permanently marked as non-current. That means that (in single-store sites) when a user checks out the main cart, or remove all of its items, the user then will be displayed with an empty cart instead of pulling up an old cart.
Access control
Permissions are provided for viewing/editing own or all carts.
Customizations
Commerce Cart Advanced allows other modules to customize which carts should be considered as current and which as non-current. Applications can therefore implement their own logic to determine which cart to display at the top.
Proposed functionality
Features that may be implemented in the future:
- Allow merging 2 or more carts into one cart.
- Allow proceeding and completing checkout for 2 or more carts at once.
Development status
The module is close to having a release candidate and then a stable release. Help us by using the module and report any issues on the issue queue, or by sponsoring development.
Project information
- Project categories: E-commerce
23 sites report using this module
- Created by krystalcode on , updated
This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.
Releases
Development version: 8.x-1.x-dev updated 25 Aug 2021 at 04:39 UTC
