Restricted to agent scenario use cases: The returned list contains all agent baskets created with createAgentBasket() and the current storefront basket which can also be retrieved with getCurrentBasket(). This method will result in an exception if called by a user without permission Create_Order_On_Behalf_Of or if no customer is logged in the session.
Please notice that baskets are invalidated after a certain amount of time and may not be returned anymore.
null
if no current valid
basket exists.
The methods getCurrentBasket() and getCurrentOrNewBasket() work based on the selected basket persistence, which can be configured in the Business Manager site preferences / baskets section. A basket is valid for the configured basket lifetime.
In hybrid storefront scenarios (Phased Launch sites that utilize SFRA/SiteGenesis for some part while also
utilizing PWA Kit or other custom headless solution for another part of the same site), this method must
NOT be used. Instead, retrieve baskets via GET baskets/{basketId}
or
GET customers/{customerId}/baskets
. Do not use getCurrentOrNewBasket() for basket creation
in any scenario.
The current basket, if one exists, is usually updated by the method. In particular the last-modified date is updated. The lifetime of a basket can be extended in 2 ways:
- The basket is modified in some way, e.g. a product is added resulting in the basket total being newly calculated. This results in the basket lifetime being reset.
- The basket has not been modified for 60 minutes, then using this method to access the basket will also reset the basket lifetime.
Personal data held inside the basket such as addresses, email addresses and payment settings is associated with
the customer to whom the basket belongs. If the basket being updated belongs to a different customer this data is
removed. This happens when a registered customer logs in after having previously created a basket as an anonymous
customer. After the customer logs out, the previous basket is stored (where applicable) and the method returns
null
. Personal data is also cleared when the session times out for an anonymous customer.
The following personal data is cleared.
- product line items that were added from a wish list
- shipping method
- coupon line items
- gift certificate line items
- billing and shipping addresses
- payment instruments
- buyer email
Typical usage:
var basket : Basket = BasketMgr.getCurrentBasket(); if (basket) { // do something with basket }
Constraints:
- The method only accesses the basket for the session customer, an exception is thrown when the session
customer is
null
. - Method getCurrentOrNewBasket() only creates a basket when method getCurrentBasket() returns
null
.
In hybrid storefront scenarios (Phased Launch sites that utilize SFRA/SiteGenesis for some part while also
utilizing PWA Kit or other custom headless solution for another part of the same site), this method must
NOT be used. For these scenarios, create baskets via POST baskets
REST calls.
null
if none is found. A stored
basket is returned in the following situation:
- During one visit, a customer-X logs in and receives a basket-A.
- In a later visit, a second basket-B is created for an anonymous customer who then logs in as customer-X.
var currentBasket : Basket = BasketMgr.getCurrentOrNewBasket(); var storedBasket : Basket = BasketMgr.getStoredBasket(); if (storedBasket) { // transfer all the data needed from the stored to the active basket }
Please notice that baskets are invalidated after a certain amount of time and may not be returned anymore.
null
if none is found.null
if no current valid basket exists.null
if none is found.null
if none is found.By default only 4 open agent baskets are allowed per customer. If this is exceeded a CreateAgentBasketLimitExceededException will be thrown.
This method will result in an exception if called by a user without permission Create_Order_On_Behalf_Of or if no customer is logged in the session.
- getCurrentBasket() (ScriptAPI),
- GET /baskets/
(OCAPI) or - GetBasket (Pipelet).
- without gift certificates,
- status is not cancelled,
- was not previously replaced and
- was not previously exported.
- Code OrderProcessStatusCodes.ORDER_CONTAINS_GC - the Order contains a gift certificate and cannot be replaced.
- Code OrderProcessStatusCodes.ORDER_ALREADY_REPLACED - the Order was already replaced.
- Code OrderProcessStatusCodes.ORDER_ALREADY_CANCELLED - the Order was cancelled.
- Code OrderProcessStatusCodes.ORDER_ALREADY_EXPORTED - the Order has already been exported.
var order : Order; // known try { var basket : Basket = BasketMgr.createBasketFromOrder(order); } catch (e) { if (e instanceof APIException && e.type === 'CreateBasketFromOrderException') { // handle e.errorCode } }
By default only 4 open temporary baskets are allowed per customer. If this is exceeded a CreateTemporaryBasketLimitExceededException will be thrown.
This method will result in an exception if called by a user without permission Create_Order_On_Behalf_Of or if no customer is logged in the session.
null
if none is found. This method can
also be used to get a temporary basket for the session customer.
If the basket does not belong to the session customer, the method returns null
.
If the registered customer is not logged in, the method returns null
.
Restricted to agent scenario use cases: This method will result in an exception if called by a user without permission Create_Order_On_Behalf_Of or if no customer is logged in the session.
The basket, if accessible, is usually updated in the same way as getCurrentBasket(). If the session currency no longer matches the basket currency, the basket currency should be updated with Basket.updateCurrency().null
Restricted to agent scenario use cases: The returned list contains all agent baskets created with createAgentBasket() and the current storefront basket which can also be retrieved with getCurrentBasket(). This method will result in an exception if called by a user without permission Create_Order_On_Behalf_Of or if no customer is logged in the session.
Please notice that baskets are invalidated after a certain amount of time and may not be returned anymore.
null
if no current valid
basket exists.
The methods getCurrentBasket() and getCurrentOrNewBasket() work based on the selected basket persistence, which can be configured in the Business Manager site preferences / baskets section. A basket is valid for the configured basket lifetime.
In hybrid storefront scenarios (Phased Launch sites that utilize SFRA/SiteGenesis for some part while also
utilizing PWA Kit or other custom headless solution for another part of the same site), this method must
NOT be used. Instead, retrieve baskets via GET baskets/{basketId}
or
GET customers/{customerId}/baskets
. Do not use getCurrentOrNewBasket() for basket creation
in any scenario.
The current basket, if one exists, is usually updated by the method. In particular the last-modified date is updated. The lifetime of a basket can be extended in 2 ways:
- The basket is modified in some way, e.g. a product is added resulting in the basket total being newly calculated. This results in the basket lifetime being reset.
- The basket has not been modified for 60 minutes, then using this method to access the basket will also reset the basket lifetime.
Personal data held inside the basket such as addresses, email addresses and payment settings is associated with
the customer to whom the basket belongs. If the basket being updated belongs to a different customer this data is
removed. This happens when a registered customer logs in after having previously created a basket as an anonymous
customer. After the customer logs out, the previous basket is stored (where applicable) and the method returns
null
. Personal data is also cleared when the session times out for an anonymous customer.
The following personal data is cleared.
- product line items that were added from a wish list
- shipping method
- coupon line items
- gift certificate line items
- billing and shipping addresses
- payment instruments
- buyer email
Typical usage:
var basket : Basket = BasketMgr.getCurrentBasket(); if (basket) { // do something with basket }
Constraints:
- The method only accesses the basket for the session customer, an exception is thrown when the session
customer is
null
. - Method getCurrentOrNewBasket() only creates a basket when method getCurrentBasket() returns
null
.
null
if no valid current basket exists.
In hybrid storefront scenarios (Phased Launch sites that utilize SFRA/SiteGenesis for some part while also
utilizing PWA Kit or other custom headless solution for another part of the same site), this method must
NOT be used. For these scenarios, create baskets via POST baskets
REST calls.
null
if none is found. A stored
basket is returned in the following situation:
- During one visit, a customer-X logs in and receives a basket-A.
- In a later visit, a second basket-B is created for an anonymous customer who then logs in as customer-X.
var currentBasket : Basket = BasketMgr.getCurrentOrNewBasket(); var storedBasket : Basket = BasketMgr.getStoredBasket(); if (storedBasket) { // transfer all the data needed from the stored to the active basket }
null
if no valid stored basket exists.
null
if none is found.
If the basket does not belong to the session customer, the method returns null
.
If the basket is not a temporary basket, the method returns null
.
The basket, if accessible, is usually updated in the same way as getCurrentBasket().
If the session currency no longer matches the basket currency, the basket currency should be updated with Basket.updateCurrency().null
Please notice that baskets are invalidated after a certain amount of time and may not be returned anymore.