Shopping cart tag
The WebSphere Commerce shopping cart tag collects details about the items a customer has in the shopping cart.
This tag collects the following data to pass to an external analytics system:
- Product part number
- Product name
- Quantity
- Base price
- Product category in the catalog the customer is browsing
- Product category in the master catalog
- Currency
- Store identifier
This tag can also pass extra parameters for tag customization.
Parameters
The following is a list of required and optional parameters for the shopping cart tag.
Note for IBM Digital Analytics, formerly known
as Coremetrics Analytics: The
following parameters are for the WebSphere Commerce <cm:cart
/>
tag. This tag generates the IBM Digital Analytics cmCreateShopAction5Tag
data
tag.
- databean
- Use this parameter if your shopping cart page JSP file already
contains an order data bean. This parameter is a populated instance
of the com.ibm.commerce.order.beans.OrderDataBean.
Using the
databean
parameter provides better performance than theorderId
parameter because the shopping cart tag does not have to use other resources to generate the data bean from theorderId
. - orderType
- Use this parameter if your store uses web services for order runtime
functions. This parameter is a populated instance of the
com.ibm.commerce.order.facade.datatypes.OrderType
object.Using the
orderType
parameter provides better performance than theorderId
parameter because the shopping cart tag does not have to use other resources to generate theorderType
data from theorderId
. - orderId
- If neither of the previous two parameters applies, use the
orderId
parameter. This parameter is the order ID of the order. The shopping cart tag automatically creates an order data bean to get the information that the external analytics system requires.This parameter is ignored if you use the
databean
parameter or theorderType
parameter.
To send tax-related data to the external analytics system, use the following additional parameter:
- includeTaxInUnitPrice
- An optional parameter that is used to conditionally exclude or include the tax along with the unit price sent to the external analytics system. The default value is 'false'. If set to 'true', the unit price sent to the external analytics system is the sum of the unit price and the tax that is calculated for the particular product.
To send more information to the external analytics system, use these parameters:
- extraparms
- An optional parameter that you can use to
send additional information that applies to all catalog entries in
the order to the external analytics system. This parameter is provided
for cases in which you might have negotiated `with the external analytics
vendor to generate some custom report that requires additional information.
Note for IBM Digital Analytics: Use the
extraparms
parameter to pass either IBM Digital Analytics Explore attributes, or data for custom IBM Digital Analytics reports, or both. See Passing extra data to IBM Digital Analytics with the extraparms parameter.There are multiple ways to pass values using theextraparms
parameter:Description Example Specify explicit values as properly escaped JavaScript. To pass more than one value, separate values with a comma. extraparms="\"value1\", \"value2\""
Specify explicit values without escaping the values. This simplified syntax is supported in WebSphere Commerce Version 7 Feature Pack 3 and later implementations of IBM Digital Analytics. To pass more than one value, separate values with a comma. extraparms="value1, value2"
Specify dynamic content by calling a method name. Any parameter using extraparms
starting and ending with the $ symbol, for example,$getMethod$
, is assumed to be a method name of the object that is passed using either of the parametersdatabean
ororderType
. The only restriction on the method name is that it must take no arguments and the object that is returned must implement thetoString()
method.extraparms="$getMethod$"
- extraparmsMap
- An optional parameter that you can use
to send additional information that applies to specific catalog entries
in the order to the external analytics system. This parameter is an
alternative to the
extraparms
parameter when you want to attach different extra parameter values to each order item in the shopping cart instead of attaching the same extra parameter value to every item in the shopping cart.Note for IBM Digital Analytics: Use the
extraparmsMap
parameter to pass either IBM Digital Analytics Explore attributes, or data for custom IBM Digital Analytics reports, or both. See Comparison of the extraparms, extraparmsMap, and orderExtraparms parameters when used for IBM Digital Analytics.The input to this parameter is a java.util.Map type object in which the key for each entry in the map is the
orderItemId
The value for a particular key is the extra parameter that is passed along with the catalog entry associated with the order item. The value for eachorderItemId
is appended to the argument list for the analytics tag output of that particular order item.The following is sample code to create a java.util.HashMap object to pass as the value for the
extraparmsMap
parameter:<wcf:getData type="com.ibm.commerce.order.facade.datatypes.OrderType" var="orderForAn" expressionBuilder="findByOrderId" scope="request"> <wcf:param name="accessProfile" value="IBM_Details" /> <wcf:param name="orderId" value="${WCParam.orderId}" /> </wcf:getData> <% java.util.HashMap map = new java.util.HashMap(); com.ibm.commerce.order.facade.datatypes.OrderType ord = (com.ibm.commerce.order.facade.datatypes.OrderType) pageContext.getAttribute ("orderForAn",PageContext.REQUEST_SCOPE); java.util.List orderItemList = ord.getOrderItem(); java.util.Iterator itr = orderItemList.iterator(); int i = 1; while (itr.hasNext()) { com.ibm.commerce.order.facade.datatypes.OrderItemType orderItemObj = (com.ibm.commerce.order.facade.datatypes.OrderItemType) itr.next(); String id = orderItemObj.getOrderItemIdentifier().getUniqueID(); map.put(id, "value" + i+ ".0-_-value" + i+ ".1"); i++; } pageContext.setAttribute("eMap",map); %>
- returnAsJSON
- An optional parameter that is designed for
use when tracking customer interactions that do not cause a full page
refresh. For example, in a Web 2.0 store, the customer might interact
with the mini shopping cart, the Product Fast Finder, or a wish list.
To track these intrapage interactions, you can use this parameter
to return a JSON object instead of generating the analytics data tag. When
the Web 2.0 store tagging framework detects that this analytics event has occurred,
the tagging framework can use the JSON object to populate the analytics
data tag. Valid values are:
- true = Return a JSON object.
- false = Generate the analytics data tag.
The following is the JSON data structure for the shopping cart tag:[{cart:[{productId:"PARTNUMBER",name:"PRODUCTNAME", quantity:"QTY",price:"PRICE",category:"CATEGORY",storeId:"10101", currency:"CURRENCY",masterCategory:"MASTERCATALOGCATEGORY"}]}]
Tag versions
WebSphere Commerce provides two versions of the shopping cart tag:
- An abstract base tag implementation class: com.ibm.commerce.bi.taglib.CartBaseTag. Analytics vendors who want to provide a shopping cart tag in their web analytics JSP tag library can extend this base tag class to get the shopping cart data and implement their own logic to generate the vendor-specific shopping cart tagging APIs.
- A default implementation of the shopping cart tag (
<cm:cart />
) for IBM Digital Analytics. This implementation automatically generates the IBM Digital AnalyticscmCreateShopAction5Tag
data tag.