Class Name |
|
|---|---|
Component(s) |
|
The UnitPriceDetailDroplet can provide detailed price information for units in a given line item or groups, along with discount information. This is useful for displaying information such as “3 @ $2.00” or “2 @ $10.00, 1 @ $0.00 (Buy 2 Get 1 Free)”.
Input Parameters
item
The line item for which you want to display details. When you use this parameter, the appropriate servlet beans are requested. Note that the item parameter will not display any group information, even if you use the requestedBeans parameter.
order
The order for which price servlet beans are requested. When working with group discounts, commerce items can be split across multiple groups. As such, servlet beans are generated for an order, as opposed to a commerce item. If you pass in an order, you must pass in the requestedBeans.
requestedBeans
Identifies which servlet bean to request. This parameter is used with the order parameter. If you pass in an item parameter, you do not need to specify a servlet bean to request. Variables include:
allByGroup: Requests servlet beans, including those that are not part of a group.groupOnly: Requests servlet beans that have been included in a discount group.
Note: If you use pass in all three input parameters, the item parameter will be ignored, and price information will be returned based upon the order and requestedBeans parameters.
Output Parameters
UnitPriceBeans
The droplet output is a list of UnitPriceBean objects ordered by commerce item and group.
Open Parameters
output
The open parameter is always rendered.
Example
The following example shows a portion of a JSP that uses the UnitPriceDetailDroplet servlet bean to display detailed information about line items in an order.
<dsp:droplet name="UnitPriceDetailDroplet">
<dsp:param name="item" param="currentItem"/>
<dsp:oparam name="output">
<dsp:getvalueof var="unitPriceBeans" vartype="java.lang.Object"
param="unitPriceBeans"/>
<c:forEach var="unitPriceBean" items="${unitPriceBeans}">
<dsp:param name="unitPriceBean" value="${unitPriceBean}"/>
<dsp:getvalueof var="quantity" vartype="java.lang.Double"
param="unitPriceBean.quantity"/>
<p class="price">
<fmt:formatNumber value="${quantity}" type="number"/>
<fmt:message key="common.atRateOf"/>
<dsp:getvalueof var="unitPrice" vartype="java.lang.Double"
param="unitPriceBean.unitPrice"/>
<fmt:formatNumber value="${unitPrice}" type="currency"
currencyCode="${currencyCode}"/>
</p>
<dsp:getvalueof var="pricingModels" vartype="java.lang.Object"
param="unitPriceBean.pricingModels"/>
<c:choose>
<c:when test="${not empty pricingModels}">
<c:forEach var="pricingModel" items="${pricingModels}">
<dsp:param name="pricingModel" value="${pricingModel}"/>
<p class="note">
(<dsp:valueof param="pricingModel.description">
<fmt:message key="common.promotionDescriptionDefault"/>
</dsp:valueof>)
</p>
</c:forEach><%-- End for each promotion used to create the unit
price --%>
</c:when>
<c:otherwise>
<dsp:getvalueof var="currentItemOnSale"
param="currentItem.priceInfo.onSale"/>
<c:if test='${currentItemOnSale == "true"}'>
<p><fmt:message key="cart_detailedItemPrice.salePriceB"/></p>
</c:if>
</c:otherwise>
</c:choose>
</dsp:oparam>
</dsp:droplet>
<%-- Render each price bean in the shopping cart. We supply an order a
request for all beans sorted by group (allByGroup). Currently the only
other supported option is 'groupedOnly' which will skip any bean that
isn't part of a group --%>
<dsp:droplet name="UnitPriceDetailDroplet">
<dsp:param name="requestedBeans" value="allByGroup" />
<dsp:param name="order" bean="ShoppingCart.current" />
</dsp:droplet>
