svn commit: r1822389 - in /ofbiz/ofbiz-plugins/trunk/ecommerce: template/order/ webapp/ecommerce/WEB-INF/ widget/

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1822389 - in /ofbiz/ofbiz-plugins/trunk/ecommerce: template/order/ webapp/ecommerce/WEB-INF/ widget/

Deepak Dixit-5
Author: deepak
Date: Sat Jan 27 11:16:45 2018
New Revision: 1822389

URL: http://svn.apache.org/viewvc?rev=1822389&view=rev
Log:
Improved: Update markup of Checkout page according to standard markup given by Bootstrap v4.0.s (OFBIZ-10105)
Thanks Mayank for your contribution

Added:
    ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutPayment.ftl   (with props)
    ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutShippingAddress.ftl   (with props)
    ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CustomerTaxInfo.ftl   (with props)
Modified:
    ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutShippingOptions.ftl
    ofbiz/ofbiz-plugins/trunk/ecommerce/webapp/ecommerce/WEB-INF/controller.xml
    ofbiz/ofbiz-plugins/trunk/ecommerce/widget/OrderScreens.xml

Added: ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutPayment.ftl
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutPayment.ftl?rev=1822389&view=auto
==============================================================================
--- ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutPayment.ftl (added)
+++ ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutPayment.ftl Sat Jan 27 11:16:45 2018
@@ -0,0 +1,276 @@
+<#--
+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.
+-->
+
+
+<!-- TODO : Need formatting -->
+<script type="text/javascript">
+//<![CDATA[
+function submitForm(form, mode, value) {
+    if ("DN" == mode) {
+        // done action; checkout
+        form.action="<@ofbizUrl>checkoutoptions</@ofbizUrl>";
+        form.submit();
+    } else if ("CS" == mode) {
+        // continue shopping
+        form.action="<@ofbizUrl>updateCheckoutOptions/showcart</@ofbizUrl>";
+        form.submit();
+    } else if ("NC" == mode) {
+        // new credit card
+        form.action="<@ofbizUrl>updateCheckoutOptions/editcreditcard?DONE_PAGE=checkoutpayment</@ofbizUrl>";
+        form.submit();
+    } else if ("EC" == mode) {
+        // edit credit card
+        form.action="<@ofbizUrl>updateCheckoutOptions/editcreditcard?DONE_PAGE=checkoutpayment&paymentMethodId="+value+"</@ofbizUrl>";
+        form.submit();
+    } else if ("GC" == mode) {
+        // edit gift card
+        form.action="<@ofbizUrl>updateCheckoutOptions/editgiftcard?paymentMethodId="+value+"</@ofbizUrl>";
+        form.submit();
+    } else if ("NE" == mode) {
+        // new eft account
+        form.action="<@ofbizUrl>updateCheckoutOptions/editeftaccount?DONE_PAGE=checkoutpayment</@ofbizUrl>";
+        form.submit();
+    } else if ("EE" == mode) {
+        // edit eft account
+        form.action="<@ofbizUrl>updateCheckoutOptions/editeftaccount?DONE_PAGE=checkoutpayment&paymentMethodId="+value+"</@ofbizUrl>";
+        form.submit();
+    }else if(mode = "EG")
+    //edit gift card
+        form.action="<@ofbizUrl>updateCheckoutOptions/editgiftcard?DONE_PAGE=checkoutpayment&paymentMethodId="+value+"</@ofbizUrl>";
+        form.submit();
+}
+//]]>
+$(document).ready(function(){
+var issuerId = "";
+    if ($('#checkOutPaymentId_IDEAL').attr('checked') == true) {
+        $('#issuers').show();
+        issuerId = $('#issuer').val();
+        $('#issuerId').val(issuerId);
+    } else {
+        $('#issuers').hide();
+        $('#issuerId').val('');
+    }
+    $('input:radio').click(function(){
+        if ($(this).val() == "EXT_IDEAL") {
+            $('#issuers').show();
+            issuerId = $('#issuer').val();
+            $('#issuerId').val(issuerId);
+        } else {
+            $('#issuers').hide();
+            $('#issuerId').val('');
+        }
+    });
+    $('#issuer').change(function(){
+        issuerId = $(this).val();
+        $('#issuerId').val(issuerId);
+    });
+});
+</script>
+
+
+<#assign cart = shoppingCart! />
+
+<form method="post" id="checkoutInfoForm" action="">
+    <input type="hidden" name="checkoutpage" value="payment" />
+    <input type="hidden" name="BACK_PAGE" value="checkoutoptions" />
+    <input type="hidden" name="issuerId" id="issuerId" value="" />
+
+    <div class="card">
+        <h4 class="card-header">
+          3)&nbsp;${uiLabelMap.OrderHowShallYouPay}?
+        </h4>
+        <div class="card-body">
+            <#-- Payment Method Selection -->
+            <div>
+                <label>${uiLabelMap.CommonAdd}:</label>
+                <#if productStorePaymentMethodTypeIdMap.CREDIT_CARD??>
+                  <a href="javascript:submitForm(document.getElementById('checkoutInfoForm'), 'NC', '');" class="button">${uiLabelMap.AccountingCreditCard}</a>
+                </#if>
+                <#if productStorePaymentMethodTypeIdMap.EFT_ACCOUNT??>
+                  <a href="javascript:submitForm(document.getElementById('checkoutInfoForm'), 'NE', '');" class="button">${uiLabelMap.AccountingEFTAccount}</a>
+                </#if>
+              <#if productStorePaymentMethodTypeIdMap.EXT_OFFLINE??>
+              </div>
+              <div class="form-check">
+                  <label class="form-check-label" for="checkOutPaymentId_OFFLINE">
+                  <input type="radio" class="form-check-input" id="checkOutPaymentId_OFFLINE" name="checkOutPaymentId" value="EXT_OFFLINE" <#if "EXT_OFFLINE" == checkOutPaymentId>checked="checked"</#if> />
+                  ${uiLabelMap.OrderMoneyOrder}</label>
+              </div>
+              </#if>
+              <#if productStorePaymentMethodTypeIdMap.EXT_COD??>
+              <div class="form-check">
+                  <label class="form-check-label" for="checkOutPaymentId_COD">
+                  <input class="form-check-input" type="radio" id="checkOutPaymentId_COD" name="checkOutPaymentId" value="EXT_COD" <#if "EXT_COD" == checkOutPaymentId>checked="checked"</#if> />
+                  ${uiLabelMap.OrderCOD}</label>
+              </div>
+              </#if>
+              <#if productStorePaymentMethodTypeIdMap.EXT_WORLDPAY??>
+              <div class="form-check">
+                  <label class="form-check-label" for="checkOutPaymentId_WORLDPAY">
+                  <input class="form-check-input" type="radio" id="checkOutPaymentId_WORLDPAY" name="checkOutPaymentId" value="EXT_WORLDPAY" <#if "EXT_WORLDPAY" == checkOutPaymentId>checked="checked"</#if> />
+                  ${uiLabelMap.AccountingPayWithWorldPay}</label>
+              </div>
+              </#if>
+              <#if productStorePaymentMethodTypeIdMap.EXT_PAYPAL??>
+              <div class="form-check">
+                  <label class="form-check-label" for="checkOutPaymentId_PAYPAL">
+                  <input class="form-check-input" type="radio" id="checkOutPaymentId_PAYPAL" name="checkOutPaymentId" value="EXT_PAYPAL" <#if "EXT_PAYPAL" == checkOutPaymentId>checked="checked"</#if> />
+                  ${uiLabelMap.AccountingPayWithPayPal}</label>
+              </div>
+              </#if>
+              <#if productStorePaymentMethodTypeIdMap.EXT_IDEAL??>
+              <div class="form-check">
+                  <label class="form-check-label" for="checkOutPaymentId_IDEAL">
+                  <input class="form-check-input" type="radio" id="checkOutPaymentId_IDEAL" name="checkOutPaymentId" value="EXT_IDEAL" <#if "EXT_IDEAL" == checkOutPaymentId>checked="checked"</#if> />
+                  ${uiLabelMap.AccountingPayWithiDEAL}</label>
+              </div>
+
+              <div id="issuers">
+              <div><label >${uiLabelMap.AccountingBank}</label></div>
+                <select name="issuer" id="issuer">
+                <#if issuerList?has_content>
+                    <#list issuerList as issuer>
+                        <option value="${issuer.getIssuerID()}" >${issuer.getIssuerName()}</option>
+                    </#list>
+                </#if>
+              </select>
+              </div>
+              </#if>
+              <hr>
+              <#if !paymentMethodList?has_content>
+              <div>
+                  <strong>${uiLabelMap.AccountingNoPaymentMethods}.</strong>
+              </div>
+            <#else>
+              <#list paymentMethodList as paymentMethod>
+                <#if "GIFT_CARD" == paymentMethod.paymentMethodTypeId>
+                 <#if productStorePaymentMethodTypeIdMap.GIFT_CARD??>
+                  <#assign giftCard = paymentMethod.getRelatedOne("GiftCard", false) />
+
+                  <#if giftCard?has_content && giftCard.cardNumber?has_content>
+                    <#assign giftCardNumber = "" />
+                    <#assign pcardNumber = giftCard.cardNumber />
+                    <#if pcardNumber?has_content>
+                      <#assign psize = pcardNumber?length - 4 />
+                      <#if 0 &lt; psize>
+                        <#list 0 .. psize-1 as foo>
+                          <#assign giftCardNumber = giftCardNumber + "*" />
+                        </#list>
+                        <#assign giftCardNumber = giftCardNumber + pcardNumber[psize .. psize + 3] />
+                      <#else>
+                        <#assign giftCardNumber = pcardNumber />
+                      </#if>
+                    </#if>
+                  </#if>
+
+                  <div>
+                      <input type="checkbox" id="checkOutPayment_${paymentMethod.paymentMethodId}" name="checkOutPaymentId" value="${paymentMethod.paymentMethodId}" <#if cart.isPaymentSelected(paymentMethod.paymentMethodId)>checked="checked"</#if> />
+                      <label for="checkOutPayment_${paymentMethod.paymentMethodId}">${uiLabelMap.AccountingGift}:${giftCardNumber}</label>
+                        <#if paymentMethod.description?has_content>(${paymentMethod.description})</#if>
+                        <a href="javascript:submitForm(document.getElementById('checkoutInfoForm'), 'EG', '${paymentMethod.paymentMethodId}');" class="button">${uiLabelMap.CommonUpdate}</a>
+                        <strong>${uiLabelMap.OrderBillUpTo}:</strong> <input type="text" size="5" class="inputBox" name="amount_${paymentMethod.paymentMethodId}" value="<#if (cart.getPaymentAmount(paymentMethod.paymentMethodId)?default(0) > 0)><@ofbizAmount amount=cart.getPaymentAmount(paymentMethod.paymentMethodId)!/></#if>"/>
+                  </div>
+                 </#if>
+                <#elseif "CREDIT_CARD" == paymentMethod.paymentMethodTypeId>
+                 <#if productStorePaymentMethodTypeIdMap.CREDIT_CARD??>
+                  <#assign creditCard = paymentMethod.getRelatedOne("CreditCard", false) />
+                  <div>
+                      <input type="checkbox" id="checkOutPayment_${paymentMethod.paymentMethodId}" name="checkOutPaymentId" value="${paymentMethod.paymentMethodId}" <#if cart.isPaymentSelected(paymentMethod.paymentMethodId)>checked="checked"</#if> />
+                      <label for="checkOutPayment_${paymentMethod.paymentMethodId}">CC:${Static["org.apache.ofbiz.party.contact.ContactHelper"].formatCreditCard(creditCard)}</label>
+                        <#if paymentMethod.description?has_content>(${paymentMethod.description})</#if>
+                        <a href="javascript:submitForm(document.getElementById('checkoutInfoForm'), 'EC', '${paymentMethod.paymentMethodId}');" class="button">${uiLabelMap.CommonUpdate}</a>
+                        <label for="amount_${paymentMethod.paymentMethodId}"><strong>${uiLabelMap.OrderBillUpTo}:</strong></label><input type="text" size="5" class="inputBox" id="amount_${paymentMethod.paymentMethodId}" name="amount_${paymentMethod.paymentMethodId}" value="<#if (cart.getPaymentAmount(paymentMethod.paymentMethodId)?default(0) > 0)><@ofbizAmount amount=cart.getPaymentAmount(paymentMethod.paymentMethodId)!/></#if>" />
+                  </div>
+                 </#if>
+                <#elseif "EFT_ACCOUNT" == paymentMethod.paymentMethodTypeId>
+                 <#if productStorePaymentMethodTypeIdMap.EFT_ACCOUNT??>
+                  <#assign eftAccount = paymentMethod.getRelatedOne("EftAccount", false) />
+                  <div>
+                      <label for="checkOutPayment_${paymentMethod.paymentMethodId}">
+                      <input type="radio" id="checkOutPayment_${paymentMethod.paymentMethodId}" name="checkOutPaymentId" value="${paymentMethod.paymentMethodId}" <#if paymentMethod.paymentMethodId == checkOutPaymentId>checked="checked"</#if> />
+                      ${uiLabelMap.AccountingEFTAccount}:${eftAccount.bankName!}: ${eftAccount.accountNumber!}</label>
+                        <#if paymentMethod.description?has_content><p>(${paymentMethod.description})</p></#if>
+                      <a href="javascript:submitForm(document.getElementById('checkoutInfoForm'), 'EE', '${paymentMethod.paymentMethodId}');" class="button">${uiLabelMap.CommonUpdate}</a>
+                  </div>
+                 </#if>
+                </#if>
+              </#list>
+            </#if>
+
+            <#-- special billing account functionality to allow use w/ a payment method -->
+            <#if productStorePaymentMethodTypeIdMap.EXT_BILLACT??>
+              <#if billingAccountList?has_content>
+                <div class="form-group">
+                    <select class="form-control" name="billingAccountId" id="billingAccountId">
+                      <option value=""></option>
+                        <#list billingAccountList as billingAccount>
+                          <#assign availableAmount = billingAccount.accountBalance>
+                          <#assign accountLimit = billingAccount.accountLimit>
+                          <option value="${billingAccount.billingAccountId}" <#if billingAccount.billingAccountId == selectedBillingAccountId?default("")>selected="selected"</#if>>${billingAccount.description?default("")} [${billingAccount.billingAccountId}] ${uiLabelMap.EcommerceAvailable} <@ofbizCurrency amount=availableAmount isoCode=billingAccount.accountCurrencyUomId/> ${uiLabelMap.EcommerceLimit} <@ofbizCurrency amount=accountLimit isoCode=billingAccount.accountCurrencyUomId/></option>
+                        </#list>
+                    </select>
+                    <label for="billingAccountId">${uiLabelMap.FormFieldTitle_billingAccountId}</label>
+                </div>
+                <div>
+                    <input type="text" size="5" id="billingAccountAmount" name="billingAccountAmount" value="" />
+                    <label for="billingAccountAmount">${uiLabelMap.OrderBillUpTo}</label>
+                </div>
+              </#if>
+            </#if>
+            <#-- end of special billing account functionality -->
+
+            <#if productStorePaymentMethodTypeIdMap.GIFT_CARD??>
+              <div class="form-check">
+                  <input class="form-check-input" type="checkbox" id="addGiftCard" name="addGiftCard" value="Y" />
+                  <input type="hidden" name="singleUseGiftCard" value="Y" />
+                  <label class="form-check-label" for="addGiftCard">${uiLabelMap.AccountingUseGiftCardNotOnFile}</label>
+              </div>
+              <div>
+                  <label for="giftCardNumber">${uiLabelMap.AccountingNumber}</label>
+                  <input type="text" class="form-control" id="giftCardNumber" name="giftCardNumber" value="${(requestParameters.giftCardNumber)!}" onfocus="document.getElementById('addGiftCard').checked=true;" />
+              </div>
+              <#if cart.isPinRequiredForGC(delegator)>
+              <div>
+                  <label for="giftCardPin">${uiLabelMap.AccountingPIN}</label>
+                  <input type="text" class="form-control" class="inputBox" id="giftCardPin" name="giftCardPin" value="${(requestParameters.giftCardPin)!}" onfocus="document.getElementById('addGiftCard').checked=true;" />
+              </div>
+              </#if>
+              <div>
+                  <label for="giftCardAmount">${uiLabelMap.AccountingAmount}</label>
+                  <input type="text" size="6" class="form-control" id="giftCardAmount" name="giftCardAmount" value="${(requestParameters.giftCardAmount)!}" onfocus="document.getElementById('addGiftCard').checked=true;" />
+              </div>
+            </#if>
+
+              <div>
+                    <#if productStorePaymentMethodTypeIdMap.CREDIT_CARD??><a href="<@ofbizUrl>setBilling?paymentMethodType=CC&amp;singleUsePayment=Y</@ofbizUrl>" class="button">${uiLabelMap.AccountingSingleUseCreditCard}</a></#if>
+                    <#if productStorePaymentMethodTypeIdMap.GIFT_CARD??><a href="<@ofbizUrl>setBilling?paymentMethodType=GC&amp;singleUsePayment=Y</@ofbizUrl>" class="button">${uiLabelMap.AccountingSingleUseGiftCard}</a></#if>
+                    <#if productStorePaymentMethodTypeIdMap.EFT_ACCOUNT??><a href="<@ofbizUrl>setBilling?paymentMethodType=EFT&amp;singleUsePayment=Y</@ofbizUrl>" class="button">${uiLabelMap.AccountingSingleUseEFTAccount}</a></#if>
+              </div>
+            <#-- End Payment Method Selection -->
+        </div>
+    </div>
+</form>
+<div class="row">
+  <div class="col-auto mr-auto">
+    <a href="javascript:submitForm(document.getElementById('checkoutInfoForm'), 'CS', '');" class="btn btn-secondary">${uiLabelMap.OrderBacktoShoppingCart}</a>
+  </div>
+  <div class="col-auto">
+    <a href="javascript:submitForm(document.getElementById('checkoutInfoForm'), 'DN', '');" class="btn btn-primary">${uiLabelMap.OrderContinueToFinalOrderReview}</a>
+  </div>
+</div>
\ No newline at end of file

Propchange: ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutPayment.ftl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutPayment.ftl
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutPayment.ftl
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutShippingAddress.ftl
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutShippingAddress.ftl?rev=1822389&view=auto
==============================================================================
--- ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutShippingAddress.ftl (added)
+++ ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutShippingAddress.ftl Sat Jan 27 11:16:45 2018
@@ -0,0 +1,136 @@
+<#--
+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.
+-->
+
+<script type="text/javascript">
+//<![CDATA[
+function submitForm(form, mode, value) {
+    if ("DN" == mode) {
+        // done action; checkout
+        form.action="<@ofbizUrl>checkoutoptions</@ofbizUrl>";
+        form.submit();
+    } else if ("CS" == mode) {
+        // continue shopping
+        form.action="<@ofbizUrl>updateCheckoutOptions/showcart</@ofbizUrl>";
+        form.submit();
+    } else if ("NA" == mode) {
+        // new address
+        form.action="<@ofbizUrl>updateCheckoutOptions/editcontactmech?preContactMechTypeId=POSTAL_ADDRESS&contactMechPurposeTypeId=SHIPPING_LOCATION&DONE_PAGE=checkoutshippingaddress</@ofbizUrl>";
+        form.submit();
+    } else if ("EA" == mode) {
+        // edit address
+        form.action="<@ofbizUrl>updateCheckoutOptions/editcontactmech?DONE_PAGE=checkoutshippingaddress&contactMechId="+value+"</@ofbizUrl>";
+        form.submit();
+    }
+}
+
+function toggleBillingAccount(box) {
+    var amountName = box.value + "_amount";
+    box.checked = true;
+    box.form.elements[amountName].disabled = false;
+
+    for (var i = 0; i < box.form.elements[box.name].length; i++) {
+        if (!box.form.elements[box.name][i].checked) {
+            box.form.elements[box.form.elements[box.name][i].value + "_amount"].disabled = true;
+        }
+    }
+}
+
+//]]>
+</script>
+<#assign cart = shoppingCart!/>
+<form method="post" name="checkoutInfoForm" style="margin:0;">
+    <input type="hidden" name="checkoutpage" value="shippingaddress"/>
+    <div class="card">
+        <h4 class="card-header">
+          1)&nbsp;${uiLabelMap.OrderWhereShallWeShipIt}?
+        </h4>
+        <div class="card-body">
+            <table class="table table-responsive-sm">
+              <tr>
+                <td colspan="2">
+                  <a href="<@ofbizUrl>splitship</@ofbizUrl>" class="buttontext">${uiLabelMap.OrderSplitShipment}</a>
+                  <a href="javascript:submitForm(document.checkoutInfoForm, 'NA', '');" class="buttontext">${uiLabelMap.PartyAddNewAddress}</a>
+                  <#if (cart.getShipGroupSize() > 1)>
+                    <div style="color: red;">${uiLabelMap.OrderNOTEMultipleShipmentsExist}</div>
+                  </#if>
+                </td>
+              </tr>
+               <#if shippingContactMechList?has_content>
+                 <#list shippingContactMechList as shippingContactMech>
+                   <#assign shippingAddress = shippingContactMech.getRelatedOne("PostalAddress", false)>
+                   <#assign checkThisAddress = (shippingContactMech_index == 0 && !cart.getShippingContactMechId()?has_content) || (cart.getShippingContactMechId()?default("") == shippingAddress.contactMechId)/>
+                   <tr>
+                     <td>
+                     <label>
+                       <input type="radio" name="shipping_contact_mech_id" value="${shippingAddress.contactMechId}"<#if checkThisAddress> checked="checked"</#if> />
+                       <span>
+                         <#if shippingAddress.toName?has_content><b>${uiLabelMap.CommonTo}:</b>&nbsp;${shippingAddress.toName}<br /></#if>
+                         <#if shippingAddress.attnName?has_content><b>${uiLabelMap.PartyAddrAttnName}:</b>&nbsp;${shippingAddress.attnName}<br /></#if>
+                         <#if shippingAddress.address1?has_content>${shippingAddress.address1},</#if>
+                         <#if shippingAddress.address2?has_content>${shippingAddress.address2}<br /></#if>
+                         <#if shippingAddress.city?has_content>${shippingAddress.city}</#if>
+                         <#if shippingAddress.stateProvinceGeoId?has_content>${shippingAddress.stateProvinceGeoId}</#if>
+                         <#if shippingAddress.postalCode?has_content><br />${shippingAddress.postalCode}</#if>
+                         <#if shippingAddress.countryGeoId?has_content><br />${shippingAddress.countryGeoId}</#if>
+                         <a href="javascript:submitForm(document.checkoutInfoForm, 'EA', '${shippingAddress.contactMechId}');" class="buttontext">${uiLabelMap.CommonUpdate}</a>
+                       </span>
+                     </label>
+                     </td>
+                   </tr>
+                 </#list>
+               </#if>
+              </table>
+             <h5>${uiLabelMap.AccountingAgreementInformation}</h5>
+               <table class="table table-responsive-sm">
+                 <#if agreements??>
+                   <#if agreements.size()!=1>
+                     <tr>
+                       <td>
+                         ${uiLabelMap.OrderSelectAgreement}
+                       </td>
+                       <td>
+                         <select name="agreementId" class="form-control">
+                           <#list agreements as agreement>
+                             <option value='${agreement.agreementId!}'>${agreement.agreementId} - ${agreement.description!}</option>
+                           </#list>
+                         </select>
+                       </td>
+                     </tr>
+                   <#else>
+                     <#list agreements as agreement>
+                        <label><input type="radio" name="agreementId" value="${agreement.agreementId!}"<#if checkThisAddress> checked="checked"</#if> />${agreement.description!} will be used for this order.</label>
+                     </#list>
+                   </#if>
+                 </#if>
+               </table>
+             <br />
+            <#-- Party Tax Info -->
+            <strong>&nbsp;${uiLabelMap.PartyTaxIdentification}</strong>
+            ${screens.render("component://ecommerce/widget/OrderScreens.xml#customertaxinfo")}
+        </div>
+    </div>
+</form>
+<div class="row">
+  <div class="col-auto mr-auto">
+    <a href="javascript:submitForm(document.checkoutInfoForm, 'CS', '');" class="btn btn-secondary">${uiLabelMap.OrderBacktoShoppingCart}</a>
+  </div>
+  <div class="col-auto">
+    <a href="javascript:submitForm(document.checkoutInfoForm, 'DN', '');" class="btn btn-primary">${uiLabelMap.CommonNext}</a>
+  </div>
+</div>
\ No newline at end of file

Propchange: ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutShippingAddress.ftl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutShippingAddress.ftl
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutShippingAddress.ftl
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutShippingOptions.ftl
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutShippingOptions.ftl?rev=1822389&r1=1822388&r2=1822389&view=diff
==============================================================================
--- ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutShippingOptions.ftl (original)
+++ ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CheckoutShippingOptions.ftl Sat Jan 27 11:16:45 2018
@@ -61,189 +61,100 @@ under the License.
 <form method="post" name="checkoutInfoForm" style="margin:0;">
   <fieldset>
     <input type="hidden" name="checkoutpage" value="shippingoptions"/>
-
-    <div class="screenlet" style="height: 100%;">
-      <div class="screenlet-title-bar">
-        <div class="h3">2)&nbsp;${uiLabelMap.OrderHowShallWeShipIt}?</div>
-      </div>
-      <div class="screenlet-body" style="height: 100%;">
-        <table width="100%" cellpadding="1" border="0" cellpadding="0" cellspacing="0">
+    <div class="card">
+      <h4 class="card-header">
+        2)&nbsp;${uiLabelMap.OrderHowShallWeShipIt}?
+      </h4>
+      <div class="card-body">
         <#list carrierShipmentMethodList as carrierShipmentMethod>
           <#assign shippingMethod = carrierShipmentMethod.shipmentMethodTypeId + "@" + carrierShipmentMethod.partyId>
-          <tr>
-            <td width="1%" valign="top">
-              <input type="radio" name="shipping_method" value="${shippingMethod}"
-                     <#if shippingMethod == StringUtil.wrapString(chosenShippingMethod!"N@A")>checked="checked"</#if>/>
-            </td>
-            <td valign="top">
-              <div>
-                <#if shoppingCart.getShippingContactMechId()??>
-                  <#assign shippingEst = shippingEstWpr.getShippingEstimate(carrierShipmentMethod)?default(-1)>
-                </#if>
-                <#if carrierShipmentMethod.partyId != "_NA_">${carrierShipmentMethod.partyId!}
-                  &nbsp;</#if>${carrierShipmentMethod.description!}
-                <#if shippingEst?has_content> -
-                  <#if (shippingEst > -1)>
-                    <@ofbizCurrency amount=shippingEst isoCode=shoppingCart.getCurrency()/>
-                  <#else>
-                    ${uiLabelMap.OrderCalculatedOffline}
-                  </#if>
-                </#if>
-              </div>
-            </td>
-          </tr>
+          <div class="form-check">
+            <input class="form-check-input" type="radio" id="shipping_method_${carrierShipmentMethod?index}" name="shipping_method" value="${shippingMethod}"
+            <#if shippingMethod == StringUtil.wrapString(chosenShippingMethod!"N@A")>checked="checked"</#if>/>
+            <#if shoppingCart.getShippingContactMechId()??>
+              <#assign shippingEst = shippingEstWpr.getShippingEstimate(carrierShipmentMethod)?default(-1)>
+            </#if>
+            <label class="form-check-label" for="shipping_method_${carrierShipmentMethod?index}">
+            <#if carrierShipmentMethod.partyId != "_NA_">${carrierShipmentMethod.partyId!}
+              &nbsp;</#if>${carrierShipmentMethod.description!}
+            <#if shippingEst?has_content> -
+              <#if (shippingEst > -1)>
+                <@ofbizCurrency amount=shippingEst isoCode=shoppingCart.getCurrency()/>
+              <#else>
+                ${uiLabelMap.OrderCalculatedOffline}
+              </#if>
+            </#if>
+            </label>
+          </div>
         </#list>
         <#if !carrierShipmentMethodList?? || carrierShipmentMethodList?size == 0>
-          <tr>
-            <td width="1%" valign="top">
-              <input type="radio" name="shipping_method" value="Default" checked="checked"/>
-            </td>
-            <td valign="top">
-              <div>${uiLabelMap.OrderUseDefault}.</div>
-            </td>
-          </tr>
+          <div class="form-check">
+          <input type="radio" name="shipping_method" class="form-check-input" value="Default" checked="checked"/>
+          <label class="form-check-label" for="shipping_method">${uiLabelMap.OrderUseDefault}.</label>
+          </div>
         </#if>
-          <tr>
-            <td colspan="2">
-              <hr/>
-            </td>
-          </tr>
-          <tr>
-            <td colspan="2">
-              <h2>${uiLabelMap.OrderShipAllAtOnce}?</h2>
-            </td>
-          </tr>
-          <tr>
-            <td valign="top">
-              <input type="radio" <#if "Y" != shoppingCart.getMaySplit()?default("N")>checked="checked"</#if>
-                  name="may_split" value="false"/>
-            </td>
-            <td valign="top">
-              <div>${uiLabelMap.OrderPleaseWaitUntilBeforeShipping}.</div>
-            </td>
-          </tr>
-          <tr>
-            <td valign="top">
-              <input <#if "Y" == shoppingCart.getMaySplit()?default("N")>checked="checked"</#if> type="radio"
-                  name="may_split" value="true"/>
-            </td>
-            <td valign="top">
-              <div>${uiLabelMap.OrderPleaseShipItemsBecomeAvailable}.</div>
-            </td>
-          </tr>
-          <tr>
-            <td colspan="2">
-              <hr/>
-            </td>
-          </tr>
-          <tr>
-            <td colspan="2">
-              <h2>${uiLabelMap.OrderSpecialInstructions}</h2>
-            </td>
-          </tr>
-          <tr>
-            <td colspan="2">
-              <textarea class="textAreaBox" cols="30" rows="3" wrap="hard"
-                  name="shipping_instructions">${shoppingCart.getShippingInstructions()!}</textarea>
-            </td>
-          </tr>
-          <tr>
-            <td colspan="2">
-              <hr/>
-            </td>
-          </tr>
-          <tr>
-            <td colspan="2">
-              <h2>${uiLabelMap.OrderPoNumber}</h2>&nbsp;
-              <#if shoppingCart.getPoNumber()?? && shoppingCart.getPoNumber() != "(none)">
-                <#assign currentPoNumber = shoppingCart.getPoNumber()>
-              </#if>
-              <input type="text" class="inputBox" name="correspondingPoId" size="15" value="${currentPoNumber!}"/>
-            </td>
-          </tr>
+        <hr>
+        <h4>${uiLabelMap.OrderShipAllAtOnce}?</h4>
+        <div class="form-check">
+          <input type="radio" class="form-check-input" <#if "Y" != shoppingCart.getMaySplit()?default("N")>checked="checked"</#if> id="may_split_no" name="may_split" value="false"/>
+          <label class="form-check-label" for="may_split_no">${uiLabelMap.OrderPleaseWaitUntilBeforeShipping}.</label>
+        </div>
+        <div class="form-check">
+        <input <#if "Y" == shoppingCart.getMaySplit()?default("N")>checked="checked"</#if> type="radio" class="form-check-input" id="may_split_yes" name="may_split" value="true"/>
+        <label for="may_split_yes" class="form-check-label">${uiLabelMap.OrderPleaseShipItemsBecomeAvailable}.</label>
+        </div>
+        <hr>
+        <h4>${uiLabelMap.OrderSpecialInstructions}</h4>
+        <textarea class="form-control" name="shipping_instructions">${shoppingCart.getShippingInstructions()!}</textarea>
+        <hr>
+        <h4>${uiLabelMap.OrderPoNumber}</h4>
+          <#if shoppingCart.getPoNumber()?? && shoppingCart.getPoNumber() != "(none)">
+            <#assign currentPoNumber = shoppingCart.getPoNumber()>
+          </#if>
+        <input type="text" class="form-control" name="correspondingPoId" value="${currentPoNumber!}"/>
         <#if productStore.showCheckoutGiftOptions! != "N">
-          <tr>
-            <td colspan="2">
-              <hr/>
-            </td>
-          </tr>
-          <tr>
-            <td colspan="2">
-              <div>
-                <h2>${uiLabelMap.OrderIsThisGift}</h2>
-                <input type="radio" <#if "Y" == shoppingCart.getIsGift()?default("N")>checked="checked"</#if>
-                    name="is_gift" value="true"/><span>${uiLabelMap.CommonYes}</span>
-                <input type="radio" <#if "Y" != shoppingCart.getIsGift()?default("N")>checked="checked"</#if>
-                    name="is_gift" value="false"/><span>${uiLabelMap.CommonNo}</span>
-              </div>
-            </td>
-          </tr>
-          <tr>
-            <td colspan="2">
-              <hr/>
-            </td>
-          </tr>
-          <tr>
-            <td colspan="2">
-              <h2>${uiLabelMap.OrderGiftMessage}</h2>
-            </td>
-          </tr>
-          <tr>
-            <td colspan="2">
-              <textarea class="textAreaBox" cols="30" rows="3" wrap="hard"
-                  name="gift_message">${shoppingCart.getGiftMessage()!}</textarea>
-            </td>
-          </tr>
+        <hr>
+        <h4>${uiLabelMap.OrderIsThisGift}</h4>
+        <div class="form-check">
+          <input type="radio" class="form-check-input" <#if "Y" == shoppingCart.getIsGift()?default("N")>checked="checked"</#if> name="is_gift" id="is_gift_true" value="true"/><label class="form-check-label" for="is_gift_true">${uiLabelMap.CommonYes}</label>
+        </div>
+        <div class="form-check">
+          <input type="radio" class="form-check-input"<#if "Y" != shoppingCart.getIsGift()?default("N")>checked="checked"</#if> name="is_gift" id="is_gift_false" value="false"/><label class="form-check-label" for="is_gift_false">${uiLabelMap.CommonNo}</label>
+        </div>
+        <hr>
+        <h4>${uiLabelMap.OrderGiftMessage}</h4>
+        <textarea class="textAreaBox" cols="30" rows="3" wrap="hard" name="gift_message">${shoppingCart.getGiftMessage()!}</textarea>
         <#else>
-          <input type="hidden" name="is_gift" value="false"/>
+          <input type="hidden" name="is_gift" value="fcheckpoutalse"/>
         </#if>
-          <tr>
-            <td colspan="2">
-              <hr/>
-            </td>
-          </tr>
-          <tr>
-            <td colspan="2">
-              <h2>${uiLabelMap.PartyEmailAddresses}</h2>
-            </td>
-          </tr>
-          <tr>
-            <td colspan="2">
-              <div>${uiLabelMap.OrderEmailSentToFollowingAddresses}:</div>
-              <div>
-                <b>
-                  <#list emailList as email>
-                    ${email.infoString!}<#if email_has_next>,</#if>
-                  </#list>
-                </b>
-              </div>
-              <div>
-                ${uiLabelMap.OrderUpdateEmailAddress}
-                <a href="<@ofbizUrl>viewprofile?DONE_PAGE=checkoutoptions</@ofbizUrl>" class="buttontext">
-                  ${uiLabelMap.PartyProfile}
-                </a>.
-              </div>
-              <br/>
-              <div>${uiLabelMap.OrderCommaSeperatedEmailAddresses}:</div>
-              <input type="text" class="inputBox" size="30" name="order_additional_emails"
-                  value="${shoppingCart.getOrderAdditionalEmails()!}"/>
-            </td>
-          </tr>
-        </table>
-      </div>
+        <hr>
+        <h4>${uiLabelMap.PartyEmailAddresses}</h4>
+        <div>${uiLabelMap.OrderEmailSentToFollowingAddresses}:</div>
+          <strong>
+            <#list emailList as email>
+              ${email.infoString!}<#if email_has_next>,</#if>
+            </#list>
+          </strong>
+          <div>
+            ${uiLabelMap.OrderUpdateEmailAddress}
+            <a href="<@ofbizUrl>viewprofile?DONE_PAGE=checkoutoptions</@ofbizUrl>" class="buttontext">
+             ${uiLabelMap.PartyProfile}
+            </a>.
+          </div>
+          <hr>
+          <label for="order_additional_emails">${uiLabelMap.OrderCommaSeperatedEmailAddresses}:</label>
+          <input type="text" class="form-control" name="order_additional_emails" id="order_additional_emails" value="${shoppingCart.getOrderAdditionalEmails()!}"/>
+     </div>
     </div>
   </fieldset>
 </form>
-
-<table width="100%">
-  <tr valign="top">
-    <td>&nbsp;
+<div class="row">
+  <div class="col-auto mr-auto">
       <a href="javascript:submitForm(document.checkoutInfoForm, 'CS', '');"
-          class="buttontextbig">${uiLabelMap.OrderBacktoShoppingCart}</a>
-    </td>
-    <td align="right">
+          class="btn btn-secondary">${uiLabelMap.OrderBacktoShoppingCart}</a>
+  </div>
+  <div class="col-auto">
       <a href="javascript:submitForm(document.checkoutInfoForm, 'DN', '');"
-          class="buttontextbig">${uiLabelMap.CommonNext}</a>
-    </td>
-  </tr>
-</table>
+          class="btn btn-primary">${uiLabelMap.CommonNext}</a>
+  </div>
+</div>
\ No newline at end of file

Added: ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CustomerTaxInfo.ftl
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CustomerTaxInfo.ftl?rev=1822389&view=auto
==============================================================================
--- ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CustomerTaxInfo.ftl (added)
+++ ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CustomerTaxInfo.ftl Sat Jan 27 11:16:45 2018
@@ -0,0 +1,47 @@
+<#--
+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.
+-->
+<#if partyTaxAuthInfoAndDetailList??>
+    <#list partyTaxAuthInfoAndDetailList as partyTaxAuthInfoAndDetail>
+        <ul class="list-unstyled">
+            <li><a href="<@ofbizUrl>deleteCustomerTaxAuthInfo?partyId=${partyId}&amp;taxAuthPartyId=${partyTaxAuthInfoAndDetail.taxAuthPartyId}&amp;taxAuthGeoId=${partyTaxAuthInfoAndDetail.taxAuthGeoId}&amp;fromDate=${partyTaxAuthInfoAndDetail.fromDate}</@ofbizUrl>" class="buttontext">X</a>
+            [${partyTaxAuthInfoAndDetail.geoCode}] ${partyTaxAuthInfoAndDetail.geoName} (${partyTaxAuthInfoAndDetail.groupName!}): ${uiLabelMap.PartyTaxId} [${partyTaxAuthInfoAndDetail.partyTaxId?default("N/A")}], ${uiLabelMap.PartyTaxIsExempt} [${partyTaxAuthInfoAndDetail.isExempt?default("N")}]</li>
+        </ul>
+    </#list>
+    <div>
+      <div class="form-group">
+        <label>${uiLabelMap.PartyTaxAddInfo}:</label>
+        <select class="form-control" name="taxAuthPartyGeoIds">
+          <option></option>
+          <#list taxAuthorityAndDetailList as taxAuthorityAndDetail>
+            <option value="${taxAuthorityAndDetail.taxAuthPartyId}::${taxAuthorityAndDetail.taxAuthGeoId}">[${taxAuthorityAndDetail.geoCode}] ${taxAuthorityAndDetail.geoName} (${taxAuthorityAndDetail.groupName!})</option>
+          </#list>
+        </select>
+      </div>
+      <div class="form-group">
+        <label for="partyTaxId">${uiLabelMap.CommonId}: </label>
+        <input type="text" name="partyTaxId" class="form-control" maxlength="40"/>
+      </div>
+      <#if "Y" == productStore.showTaxIsExempt?default("Y")>
+        <label>${uiLabelMap.PartyTaxIsExempt} </label>
+        <input type="checkbox" name="isExempt" value="Y"/>
+      <#else>
+        <input type="hidden" name="isExempt" value="N"/>
+      </#if>
+    </div>
+</#if>

Propchange: ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CustomerTaxInfo.ftl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CustomerTaxInfo.ftl
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/ofbiz-plugins/trunk/ecommerce/template/order/CustomerTaxInfo.ftl
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: ofbiz/ofbiz-plugins/trunk/ecommerce/webapp/ecommerce/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-plugins/trunk/ecommerce/webapp/ecommerce/WEB-INF/controller.xml?rev=1822389&r1=1822388&r2=1822389&view=diff
==============================================================================
--- ofbiz/ofbiz-plugins/trunk/ecommerce/webapp/ecommerce/WEB-INF/controller.xml (original)
+++ ofbiz/ofbiz-plugins/trunk/ecommerce/webapp/ecommerce/WEB-INF/controller.xml Sat Jan 27 11:16:45 2018
@@ -1915,7 +1915,7 @@ under the License.
     <view-map name="quickcheckout" type="screen" page="component://ecommerce/widget/OrderScreens.xml#checkoutoptions"/>
     <view-map name="checkoutshippingaddress" type="screen" page="component://ecommerce/widget/OrderScreens.xml#checkoutshippingaddress"/>
     <view-map name="checkoutshippingoptions" type="screen" page="component://ecommerce/widget/OrderScreens.xml#checkoutshippingoptions"/>
-    <view-map name="checkoutpayment" type="screen" page="component://order/widget/ordermgr/OrderEntryOrderScreens.xml#checkoutpayment"/>
+    <view-map name="checkoutpayment" type="screen" page="component://ecommerce/widget/OrderScreens.xml#checkoutpayment"/>
     <view-map name="splitship" type="screen" page="component://ecommerce/widget/OrderScreens.xml#splitship"/>
 
     <view-map name="checkoutreview" type="screen" page="component://ecommerce/widget/OrderScreens.xml#checkoutreview"/>

Modified: ofbiz/ofbiz-plugins/trunk/ecommerce/widget/OrderScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-plugins/trunk/ecommerce/widget/OrderScreens.xml?rev=1822389&r1=1822388&r2=1822389&view=diff
==============================================================================
--- ofbiz/ofbiz-plugins/trunk/ecommerce/widget/OrderScreens.xml (original)
+++ ofbiz/ofbiz-plugins/trunk/ecommerce/widget/OrderScreens.xml Sat Jan 27 11:16:45 2018
@@ -261,7 +261,7 @@ under the License.
             <widgets>
                 <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
                     <decorator-section name="body">
-                        <platform-specific><html><html-template location="component://order/template/entry/CheckoutShippingAddress.ftl"/></html></platform-specific>
+                        <platform-specific><html><html-template location="component://ecommerce/template/order/CheckoutShippingAddress.ftl"/></html></platform-specific>
                     </decorator-section>
                 </decorator-screen>
             </widgets>
@@ -605,6 +605,45 @@ under the License.
                     </decorator-section>
                 </decorator-screen>
             </widgets>
+        </section>
+    </screen>
+    <screen name="customertaxinfo">
+        <!-- meant to be included, generally through a screens.render type of thing -->
+        <section>
+            <actions>
+                <set field="partyId" from-field="userLogin.partyId"/>
+                <entity-condition entity-name="PartyTaxAuthInfoAndDetail" list="partyTaxAuthInfoAndDetailList">
+                    <condition-expr field-name="partyId" from-field="partyId"/>
+                    <order-by field-name="geoCode"/>
+                    <order-by field-name="groupName"/>
+                </entity-condition>
+                <entity-condition entity-name="TaxAuthorityAndDetail" list="taxAuthorityAndDetailList">
+                    <order-by field-name="geoCode"/>
+                    <order-by field-name="groupName"/>
+                </entity-condition>
+            </actions>
+            <widgets>
+                <platform-specific><html><html-template location="component://ecommerce/template/order/CustomerTaxInfo.ftl"/></html></platform-specific>
+            </widgets>
+        </section>
+    </screen>
+    <screen name="checkoutpayment">
+        <section>
+            <actions>
+                <set field="rightbarScreenName" value="rightbar"/>
+                <set field="MainColumnStyle" value="rightonly"/>
+
+                <set field="titleProperty" value="PageTitleCheckoutOptions"/>
+                <script location="component://order/groovyScripts/entry/CheckoutPayment.groovy"/>
+                <script location="component://order/groovyScripts/entry/StorePaymentOptions.groovy"/>
+            </actions>
+            <widgets>
+                <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
+                    <decorator-section name="body">
+                        <platform-specific><html><html-template location="component://ecommerce/template/order/CheckoutPayment.ftl"/></html></platform-specific>
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
         </section>
     </screen>
 </screens>