<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<#-- ReturnHeader and a List of ReturnItem records is available to this template -->
<br/>
${uiLabelMap.EcommerceReturnRequest}
<br/><br/>
<pre>
  <#list returnItems as item>
    <#assign returnReason = item.getRelatedOne("ReturnReason", false)!>
    <#assign returnType = item.getRelatedOne("ReturnType", false)!>
    ${item.description?default("N/A")} - ${item.returnQuantity?string.number} @ ${item.returnPrice}
  </#list>
</pre>
<br/><br/>

${uiLabelMap.EcommerceReturnRequestAccepted} ${returnHeader.returnId}
<br/><br/>
