The basket recovery feature allows for “lost” or forgotten baskets to be recovered, even if the shop is not set up to remember baskets, simply by clicking a link.
A typical use case is, that a customer creates a basket but never completes the order. Using a third party system, this system could then identify these lost/forgotten baskets and send the customer a reminder e-mail containing a link directly to basket with all its contents.
If a basket is created by a login customer, this basket will only be available to that particular login – if trying to recover a basket, which is owned by a login customer (and this particular customer is not currently logged in), the customer will be redirected to the customer login page. The customer will be directed to the recovered basket upon successful login.
Baskets that have already been completed as orders cannot be recovered.
Accessing a link such as http://www.myshop.com/baction/rb.aspx?guid=f45c73dd-3003-460c-8ba8-54876d9c02f8” recovers a basket identified by a unique GUID. When a basket is recovered, the user is directed to the basket page.
What basket information is recovered?
The following basket information is recovered:
- Basket lines (Products, quantities)
- Basket user values (Flexible Basket)
- Gift cards
- Coupon codes
- Customer address (both payment address and delivery address) - only if the customer has entered this information during check-out and has continued to the next step in check-out.
- Delivery method
- Payment method
- Location (If the location of the recovered basket is different than the current location, the current location will change to that of the recovered basket).
If prices/product availability has changed since the basket was created, the recovered basket will always be up-to-date. This means that any products that have become unavailable (e.g. due to inventory status) will not be included in the recovered basket.
Likewise, if an applied coupon code or gift card has become invalid at the time the basket is recovered, it is ensured that these cannot be redeemed on the recovered order.
Note that the order comment field is not recovered.
If the customer has a current basket when recovering another basket, the "current" basket will be lost (unless multiple baskets is enabled on the shop).
Baskets may belong to particular customer logins, which means that these baskets can only be recovered by that particular login. Therefore, even if several logins belong to the same customer, a basket cannot be recovered across these logins.
If a login customer recovers a basket, any existing basket on that login will be overwritten by the recovered basket (except if the shop allows for multiple baskets for logged in customers, in which case the recovered basket will become just one of the available baskets).
If a basket is created by a non-login customer and then recovered by a login customer, this basket changes ownership, so that only the login customer can recover the basket in the future.
If a non-login customer tries to recover a basket of a login customer, the customer will be redirected to a login page, from where the customer will be redirected to the recovered basket upon successful login (if the login corresponds with the login of the basket).
Salespersons are able to recover baskets of any customer that is related to the salesperson and as long as that customer is the currently selected customer of the salesperson. The salesperson is able to recover baskets belonging to any login of the currently selected customer. A basket created by a salesperson belongs to that particular salesperson and cannot be recovered by another salesperson.
Salespersons are also able to create baskets on behalf of customers. If the salesperson selects a customer and then creates a basket, this basket can be recovered by any login of the selected customer. Once the basket is recovered by a login of the customer, the basket will belong to this login only (and not any other logins of the customer).
If a salesperson creates a basket (without having selected a customer), this basket can be recovered by any customer (login or non-login – related to the salesperson or not).
Multiple baskets and basket recovery
If the shop allows for multiple baskets, the following behavior applies.
For login customers:
When recovering a basket, the recovered basket will become one of the available baskets of the login. The recovered basket will become the active basket, and the previously active basket will remain in the list of available baskets.
For non-login customers:
The recovered basket is not added to the list of available baskets, but becomes the currently active basket. The previously active basket is not overwritten, but becomes an inactive basket in the list of available baskets.
A direct link to recovering a basket is returned by the runtime value “BasketUrl” – e.g. “http://www.myshop.com/baction/rb.aspx?guid=f45c73dd-3003-460c-8ba8-54876d9c02f8”.
The GUID of the basket is returned by the runtime value “BasketGUID” – e.g. “f45c73dd-3003-460c-8ba8-54876d9c02f8”. This GUID remains the same throughout the lifetime of the basket (even if the basket is updated by adding/removing products).
The “Data_Order” runtime value container supports the “BasketGUID” runtime value, and the “Basket” runtime value container supports both the “BasketGUID” and “BasketUrl” runtime values.
If for some reason the basket attempted recovered does not exist or has already been completed as an order, a shop message will notify the customer about this.
Default texts are set up for this purpose – these texts can be updated from the shop administration at Design > Overall design > Layouts > Texts tab > Application texts.
The text keys are “basket_AlreadyOrdered” (if the basket has already been completed as an order) and “basket_NotAvailable” (if the basket GUID does not correspond with any existing basket).
Note that by specifying the shortcode [BasketGuid] in the text, you are able to insert the relevant basket GUID in the message automatically – e.g. “The basket with GUID [BasketGuid] is not available, because it has already been completed as an order.”, which will show something like “The basket with GUID f45c73dd-3003-460c-8ba8-54876d9c02f8 is not available, because it has already been completed as an order.”