<#-- check to see if introductionDate hasn't passed yet -->
<#if product.introductionDate?exists && nowTimestamp.before(product.introductionDate)>
${uiLabelMap.ProductNotYetAvailable}
<#-- check to see if salesDiscontinuationDate has passed -->
<#elseif product.salesDiscontinuationDate?exists && nowTimestamp.after(product.salesDiscontinuationDate)>
${uiLabelMap.ProductNoLongerAvailable}
<#-- check to see if it is a rental item; will enter parameters on the detail screen-->
<#elseif product.productTypeId?if_exists == "ASSET_USAGE">
${uiLabelMap.OrderMakeBooking}...
<#-- check to see if it is an aggregated or configurable product; will enter parameters on the detail screen-->
<#elseif product.productTypeId?if_exists == "AGGREGATED">
${uiLabelMap.OrderConfigure}...
<#-- check to see if the product is a virtual product -->
<#elseif product.isVirtual?exists && product.isVirtual == "Y">
${uiLabelMap.OrderChooseVariations}...
<#-- check to see if the product requires an amount -->
<#elseif product.requireAmount?exists && product.requireAmount == "Y">
${uiLabelMap.OrderChooseAmount}...
<#else>
<#if prodCatMem?exists && prodCatMem.quantity?exists && 0.00 < prodCatMem.quantity?double>
#if>
#if>
${productContentWrapper.get("DESCRIPTION")?if_exists}<#if daysToShip?exists> - ${uiLabelMap.ProductUsuallyShipsIn} ${daysToShip} ${uiLabelMap.CommonDays}!#if>
<#-- Display category-specific product comments -->
<#if prodCatMem?exists && prodCatMem.comments?has_content>
${prodCatMem.comments}
#if>
<#-- example of showing a certain type of feature with the product -->
<#if sizeProductFeatureAndAppls?has_content>
<#if (sizeProductFeatureAndAppls?size == 1)>
${uiLabelMap.SizeAvailableSingle}:
<#else>
${uiLabelMap.SizeAvailableMultiple}:
#if>
<#list sizeProductFeatureAndAppls as sizeProductFeatureAndAppl>
${sizeProductFeatureAndAppl.abbrev?default(sizeProductFeatureAndAppl.description?default(sizeProductFeatureAndAppl.productFeatureId))}<#if sizeProductFeatureAndAppl_has_next>,#if>
#list>
#if>
${product.productId?if_exists}
<#if totalPrice?exists>
${uiLabelMap.ProductAggregatedPrice}: <@ofbizCurrency amount=totalPrice isoCode=totalPrice.currencyUsed/>
<#else>
<#if price.competitivePrice?exists && price.price?exists && price.price?double < price.competitivePrice?double>
${uiLabelMap.ProductCompareAtPrice}:
<@ofbizCurrency amount=price.competitivePrice isoCode=price.currencyUsed/>
#if>
<#if price.listPrice?exists && price.price?exists && price.price?double < price.listPrice?double>
${uiLabelMap.ProductListPrice}:
<@ofbizCurrency amount=price.listPrice isoCode=price.currencyUsed/>
#if>
<#if price.isSale?exists && price.isSale>
${uiLabelMap.OrderOnSale}!
<#assign priceStyle = "salePrice">
<#else>
<#assign priceStyle = "regularPrice">
#if>
<#if (price.price?default(0) > 0 && product.requireAmount?default("N") == "N")>
${uiLabelMap.OrderYourPrice}: <#if "Y" = product.isVirtual?if_exists> ${uiLabelMap.CommonFrom} #if><@ofbizCurrency amount=price.price isoCode=price.currencyUsed/>
#if>
<#if price.listPrice?exists && price.price?exists && price.price?double < price.listPrice?double>
<#assign priceSaved = price.listPrice?double - price.price?double>
<#assign percentSaved = (priceSaved?double / price.listPrice?double) * 100>
${uiLabelMap.OrderSave}:
<@ofbizCurrency amount=priceSaved isoCode=price.currencyUsed/> (${percentSaved?int}%)
#if>
#if>
<#-- show price details ("showPriceDetails" field can be set in the screen definition) -->
<#if (showPriceDetails?exists && showPriceDetails?default("N") == "Y")>
<#if price.orderItemPriceInfos?exists>
<#list price.orderItemPriceInfos as orderItemPriceInfo>
${orderItemPriceInfo.description?if_exists}
#list>
#if>
#if>
<#if averageRating?exists && (averageRating?double > 0) && numRatings?exists && (numRatings?long > 2)>
${uiLabelMap.OrderAverageRating}: ${averageRating} (${uiLabelMap.CommonFrom} ${numRatings} ${uiLabelMap.OrderRatings})
#if>