${uiLabelMap.ProductProduct}
<#if (shoppingCart.getOrderType() == 'SALES_ORDER') && (productStore.showCheckoutGiftOptions)?default('Y') != 'N'>
${uiLabelMap.OrderGiftWrapAllItems}
${uiLabelMap.OrderNoGiftWrap}
<#if allgiftWraps?has_content>
<#list allgiftWraps as option>
${option.description?default("")} : <@ofbizCurrency amount=option.defaultAmount?default(0) isoCode=currencyUomId/>
#list>
#if>
#if>
${uiLabelMap.OrderQuantity}
${uiLabelMap.CommonUnitPrice}
${uiLabelMap.OrderAdjustments}
${uiLabelMap.OrderItemTotal}
<#assign itemsFromList = false>
<#list shoppingCart.items() as cartLine>
<#assign cartLineIndex = shoppingCart.getItemIndex(cartLine)>
<#assign lineOptionalFeatures = cartLine.getOptionalProductFeatures()>
<#if cartLine.getProductId()?exists>
<#-- product item -->
${cartLine.getProductId()} -
${cartLine.getDescription()?if_exists}
<#if shoppingCart.getOrderType() != "PURCHASE_ORDER">
<#-- only applies to sales orders, not purchase orders -->
<#-- if inventory is not required check to see if it is out of stock and needs to have a message shown about that... -->
<#assign itemProduct = cartLine.getProduct()>
<#assign isStoreInventoryNotRequiredAndNotAvailable = Static["org.ofbiz.product.store.ProductStoreWorker"].isStoreInventoryRequiredAndAvailable(request, itemProduct, cartLine.getQuantity(), false, false)>
<#if isStoreInventoryNotRequiredAndNotAvailable && itemProduct.inventoryMessage?has_content>
(${itemProduct.inventoryMessage})
#if>
#if>
<#else>
<#-- this is a non-product item -->
${cartLine.getItemTypeDescription()?if_exists} : ${cartLine.getName()?if_exists}
#if>
<#-- display the item's features -->
<#assign features = "">
<#if cartLine.getFeaturesForSupplier(dispatcher,shoppingCart.getPartyId())?has_content>
<#assign features = cartLine.getFeaturesForSupplier(dispatcher, shoppingCart.getPartyId())>
<#elseif cartLine.getStandardFeatureList()?has_content>
<#assign features = cartLine.getStandardFeatureList()>
#if>
<#if features?has_content>
${uiLabelMap.ProductFeatures}: <#list features as feature>${feature.description?default("")} #list>
#if>
<#-- show links to survey response for this item -->
<#if cartLine.getAttribute("surveyResponses")?has_content>
Surveys:
<#list cartLine.getAttribute("surveyResponses") as surveyResponseId>
${surveyResponseId}
#list>
#if>
<#if cartLine.getRequirementId()?has_content>
${uiLabelMap.OrderRequirementId} : ${cartLine.getRequirementId()?if_exists}
#if>
<#if cartLine.getQuoteId()?has_content>
<#if cartLine.getQuoteItemSeqId()?has_content>
${uiLabelMap.OrderOrderQuoteId} : ${cartLine.getQuoteId()?if_exists} - ${cartLine.getQuoteItemSeqId()?if_exists}
#if>
#if>
<#if cartLine.getItemComment()?has_content>
${uiLabelMap.CommonComment} :
${cartLine.getItemComment()?if_exists}
#if>
<#if cartLine.getDesiredDeliveryDate()?has_content>
${uiLabelMap.OrderDesiredDeliveryDate}:
${cartLine.getDesiredDeliveryDate()?if_exists}
#if>
<#-- inventory summary -->
<#if cartLine.getProductId()?exists>
<#assign productId = cartLine.getProductId()>
<#assign product = cartLine.getProduct()>
${uiLabelMap.ProductInventory} :
${uiLabelMap.ProductAtp} = ${availableToPromiseMap.get(productId)}, ${uiLabelMap.ProductQoh} = ${quantityOnHandMap.get(productId)}
<#if Static["org.ofbiz.common.CommonWorkers"].hasParentType(delegator, "ProductType", "productTypeId", product.productTypeId, "parentTypeId", "MARKETING_PKG")>
${uiLabelMap.ProductMarketingPackageATP} = ${mktgPkgATPMap.get(productId)}, ${uiLabelMap.ProductMarketingPackageQOH} = ${mktgPkgQOHMap.get(productId)}
<#if ( mktgPkgATPMap.get(cartLine.getProductId()) < cartLine.getQuantity()) && (shoppingCart.getOrderType() == 'SALES_ORDER')>
<#assign backOrdered = cartLine.getQuantity() - mktgPkgATPMap.get(cartLine.getProductId())/>
[${backOrdered?if_exists} ${uiLabelMap.OrderBackOrdered}]
#if>
#if>
<#if (availableToPromiseMap.get(cartLine.getProductId()) <= 0) && (shoppingCart.getOrderType() == 'SALES_ORDER') && product.productTypeId! != "DIGITAL_GOOD" && product.productTypeId! != "MARKETING_PKG_AUTO" && product.productTypeId! != "MARKETING_PKG_PICK">
[${cartLine.getQuantity()} ${uiLabelMap.OrderBackOrdered}]
<#else>
<#if (availableToPromiseMap.get(cartLine.getProductId()) < cartLine.getQuantity()) && (shoppingCart.getOrderType() == 'SALES_ORDER') && product.productTypeId != "DIGITAL_GOOD" && product.productTypeId != "MARKETING_PKG_AUTO" && product.productTypeId != "MARKETING_PKG_PICK">
<#assign backOrdered = cartLine.getQuantity() - availableToPromiseMap.get(cartLine.getProductId())/>
[${backOrdered?if_exists} ${uiLabelMap.OrderBackOrdered}]
#if>
#if>
#if>
<#if shoppingCart.getOrderType() == "PURCHASE_ORDER">
<#assign currentOrderItemType = cartLine.getItemTypeGenericValue()?if_exists/>
${uiLabelMap.OrderOrderItemType}:
<#if currentOrderItemType?has_content>
${currentOrderItemType.get("description",locale)}
---
#if>
<#list purchaseOrderItemTypeList as orderItemType>
${orderItemType.get("description",locale)}
#list>
#if>
<#-- ship before/after date -->
<#-- Show Associated Products (not for Variants) -->
<#assign itemProductAssocList = cartLine.getProduct().getRelated("MainProductAssoc",
Static["org.ofbiz.base.util.UtilMisc"].toList("productAssocTypeId", "sequenceNum"))?if_exists/>
<#if itemProductAssocList?exists && itemProductAssocList?has_content>
${uiLabelMap.AssociatedProducts}
${uiLabelMap.OrderQuickLookup}
<#assign relatedProdCount = 0/>
<#list itemProductAssocList?if_exists as itemProductAssoc>
<#if "PRODUCT_VARIANT" != itemProductAssoc.productAssocTypeId>
<#assign relatedProdCount = relatedProdCount + 1/>
<#if (relatedProdCount > 3)><#break>#if>
<@showAssoc productAssoc=itemProductAssoc />
#if>
#list>
#if>
<#if (cartLine.getIsPromo() && cartLine.getAlternativeOptionProductIds()?has_content)>
<#-- Show alternate gifts if there are any... -->
${uiLabelMap.OrderChooseFollowingForGift}:
<#list cartLine.getAlternativeOptionProductIds() as alternativeOptionProductId>
<#assign alternativeOptionProduct = delegator.findByPrimaryKeyCache("Product", Static["org.ofbiz.base.util.UtilMisc"].toMap("productId", alternativeOptionProductId))>
<#assign alternativeOptionName = Static["org.ofbiz.product.product.ProductContentWrapper"].getProductContentAsText(alternativeOptionProduct, "PRODUCT_NAME", locale, dispatcher)?if_exists>
#list>
#if>
<#-- gift wrap option -->
<#assign showNoGiftWrapOptions = false>
<#assign giftWrapOption = lineOptionalFeatures.GIFT_WRAP?if_exists>
<#assign selectedOption = cartLine.getAdditionalProductFeatureAndAppl("GIFT_WRAP")?if_exists>
<#if giftWrapOption?has_content>
${uiLabelMap.OrderNoGiftWrap}
<#list giftWrapOption as option>
selected="selected"#if>>${option.description} : <@ofbizCurrency amount=option.amount?default(0) isoCode=currencyUomId/>
#list>
<#elseif showNoGiftWrapOptions>
${uiLabelMap.OrderNoGiftWrap}
<#else>
#if>
<#-- end gift wrap option -->
<#if cartLine.getIsPromo() || cartLine.getShoppingListId()?exists>
${cartLine.getQuantity()?string.number}
<#else>
#if>
<#if (cartLine.getSelectedAmount() > 0) >
${uiLabelMap.OrderAmount}:
#if>
<#if cartLine.getIsPromo() || (shoppingCart.getOrderType() == "SALES_ORDER" && !security.hasEntityPermission("ORDERMGR", "_SALES_PRICEMOD", session))>
<@ofbizCurrency amount=cartLine.getDisplayPrice() isoCode=currencyUomId/>
<#else>
<#if (cartLine.getSelectedAmount() > 0) >
<#assign price = cartLine.getBasePrice() / cartLine.getSelectedAmount()>
<#else>
<#assign price = cartLine.getBasePrice()>
#if>
#if>
<@ofbizCurrency amount=cartLine.getOtherAdjustments() isoCode=currencyUomId/>
<@ofbizCurrency amount=cartLine.getDisplayItemSubTotal() isoCode=currencyUomId/>
<#if !cartLine.getIsPromo()> <#else> #if>
#list>
<#if shoppingCart.getAdjustments()?has_content>