@ConsumerType
public interface CommerceSession
CommerceSession provides anonymous or authenticated access to a (possibly remote)
commerce server.
Session persistence is divided into two main parts: the cart entries (each one modeled by the
CartEntry interface), and the various order properties (collectively modeled by a
Map<String, Object>).
In theory the various order properties could be updated as required via one (or more) calls to
updateOrder(), and then the order submitted via an empty call to placeOrder().
However, in practice, security constraints (such as being forbidden from storing CCV values)
necessitate passing some of the order's properties in the final (placeOrder()) call.
It's up to the individual implementation to determine how many check-out steps there should be, and how much information to include (only) in the final call.
| Modifier and Type | Interface and Description |
|---|---|
static interface |
CommerceSession.CartEntry
CartEntry represents shopping cart line-items with a certain product and quantity. |
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
PN_QUANTITY
The property name for CartEntry quantity when passed in the property map.
|
static java.lang.String |
PN_READONLY
Property name for read-only CartEntry.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addCartEntry(Product product,
int quantity)
Add a new entry to the cart.
|
void |
addCartEntry(Product product,
int quantity,
java.util.Map<java.lang.String,java.lang.Object> properties)
Add a new entry to the cart.
|
void |
addPromotion(java.lang.String path)
Apply a promotion to this session's cart.
|
void |
addVoucher(java.lang.String code)
Apply a voucher to this session's cart.
|
void |
deleteCartEntry(int entryNumber)
Delete an existing cart entry.
|
java.util.List<java.lang.String> |
getAvailableCountries()
Return the list of countries supported for this session/cart.
|
java.util.List<PaymentMethod> |
getAvailablePaymentMethods()
Return the list of payment methods supported for this session/cart.
|
java.util.List<ShippingMethod> |
getAvailableShippingMethods()
Return the list of shipping methods supported for this session/cart.
|
java.util.List<CommerceSession.CartEntry> |
getCartEntries()
Get the cart entries as a
List. |
int |
getCartEntryCount()
Get the number of cart entries.
|
java.lang.String |
getCartPreTaxPrice()
Deprecated.
since 5.6, use
getCartPrice(Predicate) instead. |
java.lang.String |
getCartPrice(Predicate filter)
Shortcut for getting a formatted string of the first applicable price, according to the filter.
|
java.util.List<PriceInfo> |
getCartPriceInfo(Predicate filter)
Get detailed price information about the cart filtered by the provided predicate
(usually a
PriceFilter). |
java.lang.String |
getCartTax()
Deprecated.
since 5.6, use
getCartPrice(Predicate) instead. |
java.lang.String |
getCartTotalPrice()
Deprecated.
since 5.6, use
getCartPrice(Predicate) instead. |
java.util.Map<java.lang.String,java.lang.Object> |
getOrder()
Get the current order details.
|
java.util.Map<java.lang.String,java.lang.String> |
getOrderDetails()
Deprecated.
since 5.6, use
getOrder() instead. |
java.util.Map<java.lang.String,java.lang.Object> |
getOrderDetails(java.lang.String predicate)
Get a subset of the current order details.
|
java.lang.String |
getOrderId()
Get a unique ID which identifies the current cart/order.
|
java.lang.String |
getOrderShipping()
Deprecated.
since 5.6, use
getCartPrice(Predicate) instead. |
java.lang.String |
getOrderTotalPrice()
Deprecated.
since 5.6, use
getCartPrice(Predicate) instead. |
java.lang.String |
getOrderTotalTax()
Deprecated.
since 5.6, use
getCartPrice(Predicate) instead. |
PlacedOrder |
getPlacedOrder(java.lang.String orderId)
Fetch a specific (previously-placed) order.
|
PlacedOrderResult |
getPlacedOrders(java.lang.String predicate,
int pageNumber,
int pageSize,
java.lang.String sortId)
Get a list of previously placed orders.
|
java.lang.String |
getPriceInfo(Product product)
Deprecated.
since 5.6, use
getProductPrice(Product) |
java.lang.String |
getProductPrice(Product product)
Shortcut for getting a formatted string for the first price for a product.
|
java.lang.String |
getProductPrice(Product product,
Predicate filter)
Shortcut for getting a formatted string for the first applicable price for a product as
defined by the provided predicate (usually a
PriceFilter). |
java.util.List<PriceInfo> |
getProductPriceInfo(Product product)
Get a list of all detailed price infos for a product See
PriceInfo for more details. |
java.util.List<PriceInfo> |
getProductPriceInfo(Product product,
Predicate filter)
Get a list of detailed price infos for a product filtered by the provided predicate
(usually a
PriceFilter). |
java.util.List<PromotionInfo> |
getPromotions()
Get a list of promotions that are active for this cart.
|
SmartListManager |
getSmartListManager()
Get the smart list manager for the commerce service implementation.
|
java.util.Locale |
getUserLocale()
Return the forced user locale or
null, if no locale was set before. |
java.util.List<VoucherInfo> |
getVoucherInfos()
Get a list of vouchers that were added to this cart via
addVoucher(String), or that
were assigned by the commerce engine. |
java.util.List<Voucher> |
getVouchers()
Deprecated.
since 5.6.200; use
getVoucherInfos() instead |
void |
logout()
Logs the current user out.
|
void |
modifyCartEntry(int entryNumber,
int quantity)
Modify quantity of an existing cart entry.
|
void |
modifyCartEntry(int entryNumber,
java.util.Map<java.lang.String,java.lang.Object> delta)
Modify properties of an existing cart entry.
|
void |
placeOrder(java.util.Map<java.lang.String,java.lang.Object> orderDetailsDelta)
Submit the current order.
|
void |
removePromotion(java.lang.String path)
Remove a promotion.
|
void |
removeVoucher(java.lang.String code)
Remove a voucher that was previously added with
addVoucher(String). |
void |
setUserLocale(java.util.Locale locale)
Forces a certain locale for the current user.
|
void |
submitOrder(java.util.Map<java.lang.String,java.lang.String> orderDetailsDelta)
Deprecated.
since 5.6, use
placeOrder(java.util.Map<java.lang.String, java.lang.Object>) instead. |
boolean |
supportsClientsidePromotionResolution()
Client-side promotion resolution allows a ClientContext store (the CartMgr in the OOTB
implementation) to resolve promotions and then adjust the current CommerceSession via
addPromotion(String) and removePromotion(String). |
void |
updateOrder(java.util.Map<java.lang.String,java.lang.Object> delta)
Update a subset of the current order details.
|
void |
updateOrderDetails(java.util.Map<java.lang.String,java.lang.Object> details,
java.lang.String predicate)
A predicate-based update call which makes it easier to update/clear a particular payment
method, shipping method, address, etc.
|
void |
updateOrderDetails(java.util.Map<java.lang.String,java.lang.String> delta)
Deprecated.
since 5.6, use
updateOrder(java.util.Map<java.lang.String, java.lang.Object>) instead. |
static final java.lang.String PN_QUANTITY
static final java.lang.String PN_READONLY
void logout()
throws CommerceException
CommerceExceptionvoid setUserLocale(java.util.Locale locale)
locale - java.util.Locale getUserLocale()
null, if no locale was set before.java.util.List<java.lang.String> getAvailableCountries()
throws CommerceException
CommerceSession allows more sophisticated implementations to perform
session/cart-dependent processing (such as export restrictions on ITAR products).CommerceExceptionjava.util.List<ShippingMethod> getAvailableShippingMethods() throws CommerceException
CommerceSession allows more sophisticated implementations to perform
session/cart-dependent processing (such as air-freight restrictions on high-VOC products).CommerceExceptionjava.util.List<PaymentMethod> getAvailablePaymentMethods() throws CommerceException
CommerceSession allows more sophisticated implementations to perform
session/cart-dependent processing (such as locale-specific payment vendors).CommerceExceptionjava.util.List<PriceInfo> getProductPriceInfo(Product product) throws CommerceException
PriceInfo for more details.product - CommerceExceptionjava.util.List<PriceInfo> getProductPriceInfo(Product product, Predicate filter) throws CommerceException
PriceFilter).
See PriceInfo for more details.
product - The product.filter - An optional predicate used for filtering the PriceInfos.
Pass null to fetch all PriceInfos.PriceInfos which match the provided predicate.CommerceExceptionjava.lang.String getProductPrice(Product product, Predicate filter) throws CommerceException
PriceFilter).
See PriceInfo for more details.
product - The productfilter - An optional predicate used for filtering the PriceInfos.
Pass null to fetch all PriceInfos.CommerceExceptionjava.lang.String getProductPrice(Product product) throws CommerceException
See PriceInfo for more details.
product - The product.CommerceExceptionint getCartEntryCount()
throws CommerceException
CommerceExceptionjava.util.List<CommerceSession.CartEntry> getCartEntries() throws CommerceException
List.CommerceExceptionjava.util.List<PriceInfo> getCartPriceInfo(Predicate filter) throws CommerceException
Get detailed price information about the cart filtered by the provided predicate
(usually a PriceFilter).
Current components expect the following prices, in this order:
Examples:
// get the cart subtotal
session.getCartPrice(null);
// get cart total
session.getCartPrice(new PriceFilter("POST_TAX"));
// get order tax
session.getCartPrice(new PriceFilter("ORDER", "TAX"));
filter - An optional predicate used for filtering the PriceInfos.
Pass null to fetch all PriceInfos.CommerceExceptionjava.lang.String getCartPrice(Predicate filter) throws CommerceException
filter - An optional predicate used for filtering the PriceInfos.
Pass null to fetch all PriceInfos.CommerceExceptiongetCartPriceInfo(Predicate)void addCartEntry(Product product, int quantity) throws CommerceException
product - The product to addquantity - The number of items to addCommerceExceptionvoid addCartEntry(Product product, int quantity, java.util.Map<java.lang.String,java.lang.Object> properties) throws CommerceException
product - The product to addquantity - The number of items to addproperties - the Map of additional properties (key-value pairs)CommerceExceptionvoid modifyCartEntry(int entryNumber,
int quantity)
throws CommerceException
entryNumber - The cart entry's numberquantity - The new quantityCommerceExceptionvoid modifyCartEntry(int entryNumber,
java.util.Map<java.lang.String,java.lang.Object> delta)
throws CommerceException
entryNumber - the cart entry numberdelta - a Map of properties (key-value pairs) to be modifiedCommerceExceptionvoid deleteCartEntry(int entryNumber)
throws CommerceException
entryNumber - The cart entry's numberCommerceExceptionvoid addVoucher(java.lang.String code)
throws CommerceException
code - the voucher's codeCommerceExceptionvoid removeVoucher(java.lang.String code)
throws CommerceException
addVoucher(String).code - the voucher's codeCommerceExceptionjava.util.List<VoucherInfo> getVoucherInfos() throws CommerceException
addVoucher(String), or that
were assigned by the commerce engine.CommerceExceptionboolean supportsClientsidePromotionResolution()
addPromotion(String) and removePromotion(String).
In contrast, if a CommerceSession wishes to resolve its own promotions on the server, it
should return false here and need only implement getPromotions() to
return the resolved promotion info.true if underlying implementation has supportvoid addPromotion(java.lang.String path)
throws CommerceException
path - A string uniquely identifying the promotion (generally a path)CommerceExceptionvoid removePromotion(java.lang.String path)
throws CommerceException
path - A string uniquely identifying the promotion (generally a path)CommerceExceptionjava.util.List<PromotionInfo> getPromotions() throws CommerceException
addPromotion(String), or might have been assigned by the commerce engine.CommerceExceptionjava.lang.String getOrderId()
throws CommerceException
CommerceExceptionjava.util.Map<java.lang.String,java.lang.Object> getOrderDetails(java.lang.String predicate)
throws CommerceException
In addition, implementations would be expected to support predicates defined by
any available ShippingMethods and PaymentMethods.
predicate - A String identifying a predicate which in turn identifies
the subset.Map of name/value pairsCommerceExceptionjava.util.Map<java.lang.String,java.lang.Object> getOrder()
throws CommerceException
Map of name/value pairsCommerceExceptionvoid updateOrderDetails(java.util.Map<java.lang.String,java.lang.Object> details,
java.lang.String predicate)
throws CommerceException
details - A Map containing the order properties to update.predicate - A predicate to assign to the properties.CommerceExceptionvoid updateOrder(java.util.Map<java.lang.String,java.lang.Object> delta)
throws CommerceException
Map which do not
yet exist will be added to the order, while entries that already exist will be updated.delta - A Map of name/value pairsCommerceExceptionvoid placeOrder(java.util.Map<java.lang.String,java.lang.Object> orderDetailsDelta)
throws CommerceException
orderDetailsDelta - An optional set of order details to update before submission.
Useful for passing properties which cannot be stored, such as
the CCV.CommerceExceptionPlacedOrderResult getPlacedOrders(java.lang.String predicate, int pageNumber, int pageSize, java.lang.String sortId) throws CommerceException
predicate - An optional implementation-specific predicate name. Implementations
should support at least CommerceConstants.OPEN_ORDERS_PREDICATE.pageNumber - the requested page number of the list of placed orderspageSize - the number of orders in a pagesortId - the identifier of the sorting used to sort the list of placed ordersPlacedOrderResult object which contains the list of implementation-specific order summary info,
the pagination and sorting info of the returned orders. If PaginationInfo is null in the returned object
then the commerce implementation doesn't support pagination. If the returned object does not contain any
CommerceSort object then the returned orders are unsorted.CommerceExceptionPlacedOrder getPlacedOrder(java.lang.String orderId) throws CommerceException
orderId - An implementation-specific id identifying the placed orderPlacedOrderCommerceExceptionSmartListManager getSmartListManager()
SmartListManager of order predicate names.@Deprecated java.lang.String getPriceInfo(Product product) throws CommerceException
getProductPrice(Product)CommerceException@Deprecated
java.lang.String getCartPreTaxPrice()
throws CommerceException
getCartPrice(Predicate) instead.CommerceException@Deprecated
java.lang.String getCartTax()
throws CommerceException
getCartPrice(Predicate) instead.CommerceException@Deprecated
java.lang.String getCartTotalPrice()
throws CommerceException
getCartPrice(Predicate) instead.CommerceException@Deprecated
java.lang.String getOrderShipping()
throws CommerceException
getCartPrice(Predicate) instead.CommerceException@Deprecated
java.lang.String getOrderTotalTax()
throws CommerceException
getCartPrice(Predicate) instead.CommerceException@Deprecated
java.lang.String getOrderTotalPrice()
throws CommerceException
getCartPrice(Predicate) instead.CommerceException@Deprecated java.util.List<Voucher> getVouchers() throws CommerceException
getVoucherInfos() insteadaddVoucher(String).CommerceException@Deprecated
void updateOrderDetails(java.util.Map<java.lang.String,java.lang.String> delta)
throws CommerceException
updateOrder(java.util.Map<java.lang.String, java.lang.Object>) instead.delta - CommerceException@Deprecated
java.util.Map<java.lang.String,java.lang.String> getOrderDetails()
throws CommerceException
getOrder() instead.CommerceException@Deprecated
void submitOrder(java.util.Map<java.lang.String,java.lang.String> orderDetailsDelta)
throws CommerceException
placeOrder(java.util.Map<java.lang.String, java.lang.Object>) instead.orderDetailsDelta - CommerceExceptionCopyright © 2010 - 2023 Adobe. All Rights Reserved