<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->

<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://ofbiz.apache.org/Simple-Method" xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method http://ofbiz.apache.org/dtds/simple-methods.xsd">

    <simple-method method-name="createCustomer" short-description="Create Customer" login-required="false">
        <call-class-method class-name="org.apache.ofbiz.product.store.ProductStoreWorker" method-name="getProductStore" ret-field="productStore">
            <field field="request" type="javax.servlet.ServletRequest"/>
        </call-class-method>

        <set from-field="productStore.allowPassword" field="allowPassword"/>
        <set from-field="productStore.defaultPassword" field="defaultPassword"/>
        <if-empty field="allowPassword">
            <set field="allowPassword" value="Y"/>
        </if-empty>
        <if-empty field="defaultPassword">
            <set field="defaultPassword" value="ungssblepswd"/>
        </if-empty>

        <property-to-field resource="security" property="username.lowercase" default="false" field="username_lowercase"/>
        <property-to-field resource="security" property="password.lowercase" default="false" field="password_lowercase"/>

        <now-timestamp field="nowStamp"/>
        <set value="CUSTOMER" field="parameters.roleTypeId"/>

        <if-compare field="allowPassword" operator="not-equals" value="Y">
            <set from-field="defaultPassword" field="parameters.PASSWORD"/>
            <set from-field="defaultPassword" field="parameters.CONFIRM_PASSWORD"/>
            <set value="No hint set, account not yet enabled" field="parameters.PASSWORD_HINT"/>
        </if-compare>

        <if-compare field="productStore.usePrimaryEmailUsername" operator="equals" value="Y">
            <set field="parameters.USERNAME" from-field="parameters.CUSTOMER_EMAIL"/>
        </if-compare>

        <!-- if username and/or password should be lowercased, do that now -->
        <if-compare field="username_lowercase" operator="equals" value="true">
            <call-object-method obj-field="parameters.USERNAME" method-name="toLowerCase" ret-field="parameters.USERNAME"/>
        </if-compare>
        <if-compare field="password_lowercase" operator="equals" value="true">
            <call-object-method obj-field="parameters.PASSWORD" method-name="toLowerCase" ret-field="parameters.PASSWORD"/>
            <call-object-method obj-field="parameters.CONFIRM_PASSWORD" method-name="toLowerCase" ret-field="parameters.CONFIRM_PASSWORD"/>
        </if-compare>

        <!-- Create the UserLogin Record -->
        <call-map-processor in-map-name="parameters" out-map-name="userLoginContext">
            <simple-map-processor name="newUserLogin">
                <process field="USERNAME"><copy to-field="userLoginId"/><not-empty><fail-property resource="PartyUiLabels" property="PartyUserLoginMissingError"/></not-empty></process>
                <process field="PASSWORD"><copy to-field="currentPassword"/><not-empty><fail-property resource="PartyUiLabels" property="PartyPasswordMissing"/></not-empty></process>
                <process field="CONFIRM_PASSWORD">
                    <compare-field operator="equals" field="PASSWORD"><fail-property resource="PartyUiLabels" property="PartyPasswordMatchError"/></compare-field>                    
                    <copy to-field="currentPasswordVerify"/>
                </process>
                <process field="PASSWORD_HINT"><copy to-field="passwordHint"/></process>
            </simple-map-processor>
        </call-map-processor>
        <if-not-empty field="userLoginContext.userLoginId">
            <set from-field="userLoginContext.userLoginId" field="userLoginExistsMap.userLoginId"/>
            <find-by-primary-key entity-name="UserLogin" map="userLoginExistsMap" value-field="existingUserLogin"/>
            <if-not-empty field="existingUserLogin">
                <property-to-field field="tempErrorMessage" resource="PartyUiLabels" property="PartyUserNameInUse"/>
                <string-to-list string="${tempErrorMessage}" message-field="USERNAME" list="error_list"/>
            </if-not-empty>
        </if-not-empty>

        <make-value entity-name="UserLogin" value-field="newUserLogin"/>
        <set from-field="userLoginContext.userLoginId" field="newUserLogin.userLoginId"/>
        <set from-field="userLoginContext.currentPassword" field="newUserLogin.currentPassword"/>
        <set from-field="userLoginContext.passwordHint" field="newUserLogin.passwordHint"/>

        <!-- Check the password, etc for validity -->
        <script>groovy:
            String password = (String) userLoginContext.get("currentPassword");
            String confirmPassword = (String) userLoginContext.get("currentPasswordVerify");
            String passwordHint = (String) userLoginContext.get("passwordHint");
            org.apache.ofbiz.common.login.LoginServices.checkNewPassword(newUserLogin, null, password, confirmPassword, passwordHint, error_list, true, locale);
        </script>

        <!-- Create the Person -->
        <call-map-processor in-map-name="parameters" out-map-name="personContext">
            <simple-map-processor name="newPerson">
                <process field="USER_FIRST_NAME">
                    <copy to-field="firstName"/>
                    <not-empty><fail-property resource="PartyUiLabels" property="PartyFirstNameMissing"/></not-empty>
                </process>
                <process field="USER_MIDDLE_NAME"><copy to-field="middleName"/></process>
                <process field="USER_LAST_NAME">
                    <copy to-field="lastName"/>
                    <not-empty><fail-property resource="PartyUiLabels" property="PartyLastNameMissingError"/></not-empty>
                </process>
                <process field="USER_TITLE"><copy to-field="personalTitle"/></process>
                <process field="USER_SUFFIX"><copy to-field="suffix"/></process>
                <process field="USER_BIRTHDATE">
                    <convert type="Date" to-field="birthDate"><fail-property resource="PartyUiLabels" property="PartyBirthDateMissingError"/></convert>
                </process>
                <process field="USER_GENDER"><copy to-field="gender"/></process>
            </simple-map-processor>
        </call-map-processor>

        <log level="info" message="Creating new customer, newUserLogin=${newUserLogin}"/>

        <!-- Create the PartyRole -->
        <set from-field="parameters.roleTypeId" field="partyRoleContext.roleTypeId"/>

        <!-- Create the Postal Address -->
        <if-compare field="parameters.USE_ADDRESS" operator="equals" value="false">
            <!-- address not used, do nothing -->
            <else>
                <call-map-processor in-map-name="parameters" out-map-name="addressContext">
                    <simple-map-processor name="newPerson">
                        <make-in-string field="fullName">
                            <in-field field="USER_FIRST_NAME"/><constant> </constant>
                            <in-field field="USER_MIDDLE_NAME"/><constant> </constant>
                            <in-field field="USER_LAST_NAME"/>
                        </make-in-string>
                        <process field="roleTypeId"><copy/></process>
                        <process field="fullName"><copy to-field="toName"/></process>
                        <process field="CUSTOMER_ADDRESS1">
                            <copy to-field="address1"/>
                            <not-empty><fail-property resource="PartyUiLabels" property="PartyAddressLine1MissingError"/></not-empty>
                        </process>
                        <process field="CUSTOMER_ADDRESS2"><copy to-field="address2"/></process>
                        <process field="CUSTOMER_CITY">
                            <copy to-field="city"/>
                            <not-empty><fail-property resource="PartyUiLabels" property="PartyCityMissing"/></not-empty>
                        </process>
                        <process field="CUSTOMER_STATE"><copy to-field="stateProvinceGeoId"/></process>
                        <process field="CUSTOMER_POSTAL_CODE">
                            <copy to-field="postalCode"/>
                            <not-empty><fail-property resource="PartyUiLabels" property="PartyZipCodeMissing"/></not-empty>
                        </process>
                        <process field="CUSTOMER_COUNTRY">
                            <copy to-field="countryGeoId"/>
                            <not-empty><fail-property resource="PartyUiLabels" property="PartyCountryMissing"/></not-empty>
                        </process>
                        <process field="CUSTOMER_ADDRESS_ALLOW_SOL"><copy to-field="allowSolicitation"/></process>
                    </simple-map-processor>
                </call-map-processor>
                <if-compare value="USA" operator="equals" field="parameters.CUSTOMER_COUNTRY">
                    <if-empty field="parameters.CUSTOMER_STATE">
                        <property-to-field field="tempErrorMessage" resource="PartyUiLabels" property="PartyStateInUsMissing"/>
                        <string-to-list string="${tempErrorMessage}" message-field="CUSTOMER_STATE" list="error_list"/>
                    </if-empty>
                </if-compare>
                <if-compare value="CAN" operator="equals" field="parameters.CUSTOMER_COUNTRY">
                    <if-empty field="parameters.CUSTOMER_STATE">
                        <property-to-field field="tempErrorMessage" resource="PartyUiLabels" property="PartyStateInCanadaMissing"/>
                        <string-to-list string="${tempErrorMessage}" message-field="CUSTOMER_STATE" list="error_list"/>
                    </if-empty>
                </if-compare>
            </else>
        </if-compare>

        <!-- Create the Home Phone -->
        <if-not-empty field="parameters.CUSTOMER_HOME_CONTACT">
            <call-map-processor in-map-name="parameters" out-map-name="homePhoneContext">
                <simple-map-processor name="newTelecomNumber">
                    <process field="roleTypeId"><copy/></process>
                    <process field="CUSTOMER_HOME_COUNTRY"><copy to-field="countryCode"/></process>
                    <process field="CUSTOMER_HOME_AREA"><copy to-field="areaCode"/></process>
                    <process field="CUSTOMER_HOME_CONTACT"><copy to-field="contactNumber"/></process>
                    <process field="CUSTOMER_HOME_EXT"><copy to-field="extension"/></process>
                    <process field="CUSTOMER_HOME_ALLOW_SOL"><copy to-field="allowSolicitation"/></process>
                </simple-map-processor>
            </call-map-processor>
        </if-not-empty>

        <!-- Create the Work Phone -->
        <if-not-empty field="parameters.CUSTOMER_WORK_CONTACT">
            <call-map-processor in-map-name="parameters" out-map-name="workPhoneContext">
                <simple-map-processor name="newTelecomNumber">
                    <process field="roleTypeId"><copy/></process>
                    <process field="CUSTOMER_WORK_COUNTRY"><copy to-field="countryCode"/></process>
                    <process field="CUSTOMER_WORK_AREA"><copy to-field="areaCode"/></process>
                    <process field="CUSTOMER_WORK_CONTACT"><copy to-field="contactNumber"/></process>
                    <process field="CUSTOMER_WORK_EXT"><copy to-field="extension"/></process>
                    <process field="CUSTOMER_WORK_ALLOW_SOL"><copy to-field="allowSolicitation"/></process>
                </simple-map-processor>
            </call-map-processor>
        </if-not-empty>

        <!-- Create the Fax Phone -->
        <if-not-empty field="parameters.CUSTOMER_FAX_CONTACT">
            <call-map-processor in-map-name="parameters" out-map-name="faxPhoneContext">
                <simple-map-processor name="newTelecomNumber">
                    <process field="roleTypeId"><copy/></process>
                    <process field="CUSTOMER_FAX_COUNTRY"><copy to-field="countryCode"/></process>
                    <process field="CUSTOMER_FAX_AREA"><copy to-field="areaCode"/></process>
                    <process field="CUSTOMER_FAX_CONTACT"><copy to-field="contactNumber"/></process>
                    <process field="CUSTOMER_FAX_EXT"><copy to-field="extension"/></process>
                    <process field="CUSTOMER_FAX_ALLOW_SOL"><copy to-field="allowSolicitation"/></process>
                </simple-map-processor>
            </call-map-processor>
        </if-not-empty>

        <!-- Create the Mobile Phone -->
        <if-not-empty field="parameters.CUSTOMER_MOBILE_CONTACT">
            <call-map-processor in-map-name="parameters" out-map-name="mobilePhoneContext">
                <simple-map-processor name="newTelecomNumber">
                    <process field="roleTypeId"><copy/></process>
                    <process field="CUSTOMER_MOBILE_COUNTRY"><copy to-field="countryCode"/></process>
                    <process field="CUSTOMER_MOBILE_AREA"><copy to-field="areaCode"/></process>
                    <process field="CUSTOMER_MOBILE_CONTACT"><copy to-field="contactNumber"/></process>
                    <process field="CUSTOMER_MOBILE_EXT"><copy to-field="extension"/></process>
                    <process field="CUSTOMER_MOBILE_ALLOW_SOL"><copy to-field="allowSolicitation"/></process>
                </simple-map-processor>
            </call-map-processor>
        </if-not-empty>

        <!-- Check for required Phone -->
        <if-compare field="parameters.REQUIRE_PHONE" operator="equals" value="true">
            <if-empty field="parameters.CUSTOMER_HOME_CONTACT">
                <if-empty field="parameters.CUSTOMER_WORK_CONTACT">
                    <if-empty field="parameters.CUSTOMER_MOBILE_CONTACT">
                        <call-map-processor in-map-name="parameters" out-map-name="dummymap">
                            <simple-map-processor name="checkRequiredPhone">
                                <process field="REQUIRED_PHONE">
                                    <not-empty>
                                    <fail-property resource="PartyUiLabels" property="PartyContactTelephoneMissingError"/></not-empty>
                                </process>
                            </simple-map-processor>
                        </call-map-processor>
                    </if-empty>
                </if-empty>
            </if-empty>
        </if-compare>

        <!-- Create the email address -->

        <!-- Check for required E-Mail -->
        <if-compare field="parameters.REQUIRE_EMAIL" operator="not-equals" value="false">
            <call-map-processor in-map-name="parameters" out-map-name="emailContext">
                <simple-map-processor name="newEmail">
                    <process field="roleTypeId"><copy/></process>
                    <process field="CUSTOMER_EMAIL">
                        <copy to-field="emailAddress"/>
                        <not-empty><fail-property resource="PartyUiLabels" property="PartyEmailAddressMissingError"/></not-empty>
                        <validate-method method="isEmail"><fail-property resource="PartyUiLabels" property="PartyEmailAddressNotFormattedCorrectly"/></validate-method>
                    </process>
                    <process field="CUSTOMER_EMAIL_ALLOW_SOL"><copy to-field="allowSolicitation"/></process>
                </simple-map-processor>
            </call-map-processor>
        <else>
            <call-map-processor in-map-name="parameters" out-map-name="emailContext">
                <simple-map-processor name="newEmail">
                    <process field="roleTypeId"><copy/></process>
                    <process field="CUSTOMER_EMAIL">
                        <copy to-field="emailAddress"/>
                        <validate-method method="isEmail"><fail-property resource="PartyUiLabels" property="PartyEmailAddressNotFormattedCorrectly"/></validate-method>
                    </process>
                    <process field="CUSTOMER_EMAIL_ALLOW_SOL"><copy to-field="allowSolicitation"/></process>
                </simple-map-processor>
            </call-map-processor>
        </else>
        </if-compare>

        <!-- create the PartyDataSource entry to track where this info came from... -->
        <make-value entity-name="PartyDataSource" value-field="partyDataSource"/>
        <set value="ECOMMERCE_SITE" field="partyDataSource.dataSourceId"/>
        <set from-field="nowStamp" field="partyDataSource.fromDate"/>
        <set value="Y" field="partyDataSource.isCreate"/>
        <!-- get the visit from the session to get the visitId -->
        <session-to-field field="visit"/>
        <set from-field="visit.visitId" field="partyDataSource.visitId"/>

        <!-- now that everything is validated & setup, check to see if there are errors, then call the services -->
        <check-errors/>

        <set-service-fields map="personContext" service-name="createPersonAndUserLogin" to-map="personUserLoginContext"/>
        <set-service-fields map="newUserLogin" service-name="createPersonAndUserLogin" to-map="personUserLoginContext"/>
        <set from-field="newUserLogin.currentPassword" field="personUserLoginContext.currentPasswordVerify"/>
        <!-- the above copy is okay since we checked already that they are the same -->
        <call-service service-name="createPersonAndUserLogin" in-map-name="personUserLoginContext">
            <result-to-field result-name="partyId" field="tempMap.partyId"/>
            <result-to-field result-name="newUserLogin" field="createdUserLogin"/>
        </call-service>
        <set-current-user-login value-field="createdUserLogin"/>

        <!-- now that we have the partyId, put it where it needs to go... -->
        <set from-field="tempMap.partyId" field="partyDataSource.partyId"/>
        <set from-field="tempMap.partyId" field="userLoginContext.partyId"/>
        <set from-field="tempMap.partyId" field="personContext.partyId"/>
        <set from-field="tempMap.partyId" field="partyRoleContext.partyId"/>
        <set from-field="tempMap.partyId" field="addressContext.partyId"/>
        <set from-field="tempMap.partyId" field="homePhoneContext.partyId"/>
        <set from-field="tempMap.partyId" field="workPhoneContext.partyId"/>
        <set from-field="tempMap.partyId" field="faxPhoneContext.partyId"/>
        <set from-field="tempMap.partyId" field="mobilePhoneContext.partyId"/>
        <set from-field="tempMap.partyId" field="emailContext.partyId"/>

        <create-value value-field="partyDataSource"/>
        <call-service service-name="createPartyRole" in-map-name="partyRoleContext" include-user-login="true"/>

        <!-- shipping address -->
        <if-compare field="parameters.USE_ADDRESS" operator="equals" value="false">
            <!-- address not used, do nothing -->
            <else>
                <call-service service-name="createPartyPostalAddress" in-map-name="addressContext">
                    <result-to-field result-name="contactMechId" field="addressPurposeContext.contactMechId"/>
                </call-service>
                <set from-field="tempMap.partyId" field="addressPurposeContext.partyId"/>
                <!-- create the shipping location -->
                <set value="SHIPPING_LOCATION" field="addressPurposeContext.contactMechPurposeTypeId"/>
                <call-service service-name="createPartyContactMechPurpose" in-map-name="addressPurposeContext"/>
                <!-- also consider this address the general correspondence address -->
                <set value="GENERAL_LOCATION" field="addressPurposeContext.contactMechPurposeTypeId"/>
                <call-service service-name="createPartyContactMechPurpose" in-map-name="addressPurposeContext"/>
            </else>
        </if-compare>

        <!-- home phone -->
        <if-not-empty field="parameters.CUSTOMER_HOME_CONTACT">
            <call-service service-name="createPartyTelecomNumber" in-map-name="homePhoneContext">
                <result-to-field result-name="contactMechId" field="homePhonePurposeContext.contactMechId"/>
            </call-service>
            <set from-field="tempMap.partyId" field="homePhonePurposeContext.partyId"/>
            <set value="PHONE_HOME" field="homePhonePurposeContext.contactMechPurposeTypeId"/>
            <call-service service-name="createPartyContactMechPurpose" in-map-name="homePhonePurposeContext"/>
            <set value="PRIMARY_PHONE" field="homePhonePurposeContext.contactMechPurposeTypeId"/>
            <call-service service-name="createPartyContactMechPurpose" in-map-name="homePhonePurposeContext"/>
        </if-not-empty>

        <!-- work phone -->
        <if-not-empty field="parameters.CUSTOMER_WORK_CONTACT">
            <call-service service-name="createPartyTelecomNumber" in-map-name="workPhoneContext">
                <result-to-field result-name="contactMechId" field="workPhonePurposeContext.contactMechId"/>
            </call-service>
            <set from-field="tempMap.partyId" field="workPhonePurposeContext.partyId"/>
            <set value="PHONE_WORK" field="workPhonePurposeContext.contactMechPurposeTypeId"/>
            <call-service service-name="createPartyContactMechPurpose" in-map-name="workPhonePurposeContext"/>
        </if-not-empty>

        <!-- fax phone -->
        <if-not-empty field="parameters.CUSTOMER_FAX_CONTACT">
            <call-service service-name="createPartyTelecomNumber" in-map-name="faxPhoneContext">
                <result-to-field result-name="contactMechId" field="faxPhonePurposeContext.contactMechId"/>
            </call-service>
            <set from-field="tempMap.partyId" field="faxPhonePurposeContext.partyId"/>
            <set value="FAX_NUMBER" field="faxPhonePurposeContext.contactMechPurposeTypeId"/>
            <call-service service-name="createPartyContactMechPurpose" in-map-name="faxPhonePurposeContext"/>
        </if-not-empty>

        <!-- mobile phone -->
        <if-not-empty field="parameters.CUSTOMER_MOBILE_CONTACT">
            <call-service service-name="createPartyTelecomNumber" in-map-name="mobilePhoneContext">
                <result-to-field result-name="contactMechId" field="mobilePhonePurposeContext.contactMechId"/>
            </call-service>
            <set from-field="tempMap.partyId" field="mobilePhonePurposeContext.partyId"/>
            <set value="PHONE_MOBILE" field="mobilePhonePurposeContext.contactMechPurposeTypeId"/>
            <call-service service-name="createPartyContactMechPurpose" in-map-name="mobilePhonePurposeContext"/>
        </if-not-empty>

        <!-- email address -->
        <if-not-empty field="emailContext.emailAddress">
            <call-service service-name="createPartyEmailAddress" in-map-name="emailContext">
                <result-to-field result-name="contactMechId" field="emailPurposeContext.contactMechId"/>
            </call-service>
            <set from-field="tempMap.partyId" field="emailPurposeContext.partyId"/>
            <set value="PRIMARY_EMAIL" field="emailPurposeContext.contactMechPurposeTypeId"/>
            <call-service service-name="createPartyContactMechPurpose" in-map-name="emailPurposeContext"/>
        </if-not-empty>

        <!-- club number -->
        <if-not-empty field="parameters.REQUIRE_CLUB">
            <set from-field="tempMap.partyId" field="personLookup.partyId"/>
            <find-by-primary-key entity-name="Person" map="personLookup" value-field="personVo"/>
            <if-empty field="parameters.CLUB_NUMBER">
                <script>groovy:
                    clubId = org.apache.ofbiz.party.party.PartyWorker.createClubId(delegator, "999", 13);
                    parameters.put("CLUB_NUMBER", clubId);
                </script>
            </if-empty>
            <set from-field="parameters.CLUB_NUMBER" field="personVo.memberId"/>
            <store-value value-field="personVo"/>
        </if-not-empty>

        <!-- now finished, log in the user and set the cart's partyId to that of the newly created customer ... -->
        <if-compare field="allowPassword" operator="equals" value="Y">
            <script>groovy:
                org.apache.ofbiz.webapp.control.LoginWorker.doBasicLogin(createdUserLogin, request);
                org.apache.ofbiz.webapp.control.LoginWorker.autoLoginSet(request, response);
                session = request.getSession();
                cart = session.getAttribute("shoppingCart");
                if (cart != null) {
                    cart.setOrderPartyId(tempMap.get("partyId"));
                }
            </script>
        </if-compare>

        <!-- Associated to Product Store -->
        <entity-one entity-name="UserLogin" value-field="userLogin">
            <field-map field-name="userLoginId" value="system"/>
        </entity-one>
        <set field="createProductStoreRoleMap.userLogin" from-field="userLogin"/>
        <set field="createProductStoreRoleMap.partyId" from-field="tempMap.partyId"/>
        <set field="createProductStoreRoleMap.roleTypeId" from-field="parameters.roleTypeId"/>
        <set field="createProductStoreRoleMap.productStoreId" from-field="parameters.emailProductStoreId"/>
        <call-service service-name="createProductStoreRole" in-map-name="createProductStoreRoleMap"/>

        <!--Create User Login Security Question if entered by the user-->
        <if-not-empty field="parameters.SECURITY_ANSWER">
            <set field="createULSQCtx.userLoginId" from-field="parameters.USERNAME"/>
            <set field="createULSQCtx.questionEnumId" from-field="parameters.securityQuestion"/>
            <set field="createULSQCtx.answer" from-field="parameters.SECURITY_ANSWER"/>
            <call-service service-name="createUserLoginSecurityQuestion" in-map-name="createULSQCtx" />
        </if-not-empty>

        <!-- send off the registration email -->
        <if-not-empty field="emailContext.emailAddress">
            <set from-field="parameters.emailProductStoreId" field="storeEmailLookup.productStoreId"/>
            <set value="PRDS_CUST_REGISTER" field="storeEmailLookup.emailType"/>
            <find-by-primary-key map="storeEmailLookup" entity-name="ProductStoreEmailSetting"  value-field="storeEmail"/>
            <if-not-empty field="storeEmail.bodyScreenLocation">
                <get-related-one value-field="createdUserLogin" relation-name="Person" to-value-field="person"/>
                <set field="bodyParameters.person" from-field="person"/>
                <set field="emailParams.bodyParameters" from-field="bodyParameters"/>
                <set field="emailParams.sendTo" from-field="emailContext.emailAddress"/>
                <set field="emailParams.subject" from-field="storeEmail.subject"/>
                <set field="emailParams.sendFrom" from-field="storeEmail.fromAddress"/>
                <set field="emailParams.sendCc" from-field="storeEmail.ccAddress"/>
                <set field="emailParams.sendBcc" from-field="storeEmail.bccAddress"/>
                <set field="emailParams.contentType" from-field="storeEmail.contentType"/>
                <set field="emailParams.bodyScreenUri" from-field="storeEmail.bodyScreenLocation"/>
                <set field="emailParams.emailType" from-field="storeEmailLookup.emailType"/>
                <call-service-asynch service-name="sendMailFromScreen" in-map-name="emailParams" include-user-login="true"/>
            </if-not-empty>
        </if-not-empty>
        
        <!-- security for manage profile  -->
        <set field="securityParams.userLoginId" from-field="createdUserLogin.userLoginId"/>
        <set field="securityParams.groupId" value="ECOMMERCE_CUSTOMER"/>
        <set field="securityParams.userLogin" from-field="userLogin"/>
        <call-service service-name="addUserLoginToSecurityGroup" in-map-name="securityParams"/>

        <!-- tell the control servlet that we just logged in the user... -->
        <set value="TRUE" field="_LOGIN_PASSED_"/>
        <field-to-request field="_LOGIN_PASSED_"/>
    </simple-method>

    <!-- =========================================== -->
    <!-- ======== Anonymous Checkout Events ======== -->
    <!-- =========================================== -->

    <simple-method method-name="processCustomerSettings" short-description="Process Customer Settings; to be called as a Request Event" login-required="false">
        <if-empty field="parameters.partyId">
            <call-simple-method method-name="createAnonymousCustomer"/>
            <else>
                <call-simple-method method-name="updateCustomer"/>
            </else>
        </if-empty>
        <!-- see if we should continue now... -->
        <check-errors/>
        <log level="info" message="Setting up party ${tempMap.partyId} and shipping address ${addressPurposeContext} in cart"/>
        <session-to-field field="cart" session-name="shoppingCart"/>
        <session-to-field field="userLogin"/>
        <log level="info" message="userLogin in Env ${userLogin} in parameters.userLogin ${parameters.userLogin}"/>
        <if-empty field="userLogin">
            <call-object-method obj-field="session" method-name="removeAttribute">
                <string value="autoUserLogin"/>
            </call-object-method>
            <check-errors/>
            <call-object-method obj-field="session" method-name="removeAttribute">
                <string value="autoName"/>
            </call-object-method>
            <check-errors/>
            <if-not-empty field="cart">
                <script>groovy:
                    // clear out the login fields from the cart
                    try {
                        if (cart!=null) cart.setAutoUserLogin(null, dispatcher);
                    } catch (CartItemModifyException e) {
                        Debug.logError(e, module);
                    }
                </script>
            </if-not-empty>
            <set from-field="tempMap.partyId" field="partyId"/>
            <if-not-empty field="partyId">
                <set field="lookupKeyValue.userLoginId" value="anonymous"/>
                <find-by-primary-key map="lookupKeyValue" entity-name="UserLogin" value-field="userLogin"/>
                <if-not-empty field="userLogin">
                    <set field="userLogin.partyId" from-field="partyId"/>
                    <field-to-session field="userLogin" session-name="userLogin"/>
                    <if-not-empty field="cart">
                        <call-object-method obj-field="cart" method-name="setOrderPartyId">
                            <field field="partyId"/>
                        </call-object-method>
                        <script>groovy:
                            // clear out the login fields from the cart
                            try {
                                if (cart!=null) cart.setUserLogin(userLogin, dispatcher);
                            } catch (CartItemModifyException e) {
                                Debug.logError(e, module);
                            }
                        </script>
                        <!-- call-object-method obj-field="cart"  method-name="setUserLogin">
                            <field field="userLogin"  type="org.apache.ofbiz.entity.GenericValue"/>
                            <field field="dispatcher" map-name="request" type="org.apache.ofbiz.service.LocalDispatcher"/>
                        </call-object-method -->
                    </if-not-empty>
                </if-not-empty>
            </if-not-empty>
        </if-empty>
        <check-errors/>
        <log level="info" message="If anonymous, user-login has been activated"/>
    </simple-method>


    <simple-method method-name="validateCustomerInfo" short-description="validateCustomerInfo" login-required="false">
        <!-- timestamp to be used -->
        <now-timestamp field="nowStamp"/>

        <!-- setup the party/person -->
        <if-not-empty field="parameters.birthDateYear">
            <set field="parameters.birthDate" value="${parameters.birthDateYear}-${parameters.birthDateMonth}-${parameters.birthDateDay}" type="Long"/>
        </if-not-empty>
        <call-map-processor in-map-name="parameters" out-map-name="personMap">
            <simple-map-processor name="newPerson">
                <process field="personalTitle"><copy/></process>
                <process field="firstName">
                    <copy/>
                    <not-empty><fail-property resource="PartyUiLabels" property="PartyFirstNameMissing"/></not-empty>
                </process>
                <process field="middleName"><copy/></process>
                <process field="lastName">
                    <copy/>
                    <not-empty><fail-property resource="PartyUiLabels" property="PartyLastNameMissingError"/></not-empty>
                </process>
                <process field="suffix"><copy/></process>
                <process field="birthDate">
                    <convert type="Date" to-field="birthDate"><fail-property resource="PartyUiLabels" property="PartyBirthDateMissingError"/></convert>
                </process>
                <process field="gender"><copy/></process>

                <process field="residenceStatusEnumId"><copy/></process>
                <process field="maritalStatus"><copy/></process>
                <process field="employmentStatusEnumId"><copy/></process>
                <process field="occupation"><copy/></process>
                <process field="yearsWithEmployer"><convert type="Long"><fail-property resource="EcommerceUiLabels" property="EcommerceYearsWithEmployeeNotValid"/></convert></process>
                <process field="monthsWithEmployer"><convert type="Long"><fail-property resource="EcommerceUiLabels" property="EcommerceMonthsWithEmployeeNotValid"/></convert></process>
                <process field="existingCustomer"><copy/></process>
            </simple-map-processor>
        </call-map-processor>

        <!-- setup the email -->
        <call-map-processor in-map-name="parameters" out-map-name="emailMap">
            <simple-map-processor name="newEmail">
                <process field="emailAddress">
                    <copy/>
                    <not-empty><fail-property resource="PartyUiLabels" property="PartyEmailAddressMissingError"/></not-empty>
                    <validate-method method="isEmail"><fail-property resource="PartyUiLabels" property="PartyEmailAddressNotFormattedCorrectly"/></validate-method>
                </process>
                <process field="emailSol"><copy to-field="allowSolicitation"/></process>
            </simple-map-processor>
        </call-map-processor>

        <!-- Create the Home Phone -->
        <call-map-processor in-map-name="parameters" out-map-name="homePhoneMap">
            <simple-map-processor name="newTelecomNumber">
                <process field="homeCountryCode">
                    <copy to-field="countryCode"/>
                </process>
                <process field="homeAreaCode">
                    <copy to-field="areaCode"/>
                </process>
                <process field="homeContactNumber">
                    <copy to-field="contactNumber"/>
                    <not-empty><fail-property resource="PartyUiLabels" property="PartyHomePhoneContactNumberMissing"/></not-empty>
                </process>
                <process field="homeExt"><copy to-field="extension"/></process>
                <process field="homeSol"><copy to-field="allowSolicitation"/></process>
            </simple-map-processor>
        </call-map-processor>

        <!-- Create the Work Phone -->
        <call-map-processor in-map-name="parameters" out-map-name="workPhoneMap">
            <simple-map-processor name="newTelecomNumber">
                <process field="workCountryCode">
                    <copy to-field="countryCode"/>
                </process>
                <process field="workAreaCode">
                    <copy to-field="areaCode"/>
                </process>
                <process field="workContactNumber">
                    <copy to-field="contactNumber"/>
                </process>
                <process field="workSol"><copy to-field="allowSolicitation"/></process>
                <process field="workExt"><copy to-field="extension"/></process>
            </simple-map-processor>
        </call-map-processor>

        <!-- Create the Quick Calls Phone -->
        <call-map-processor in-map-name="parameters" out-map-name="quickCallsPhoneMap">
            <simple-map-processor name="newTelecomNumber">
                <process field="quickCallsContactNumber">
                    <copy to-field="contactNumber"/>
                </process>
                <process field="quickCallsSol"><copy to-field="allowSolicitation"/></process>
            </simple-map-processor>
        </call-map-processor>
    </simple-method>

    <simple-method method-name="createUpdateCustomerInfo" short-description="Create or Update Customer Info" login-required="false">
        <!-- update the email address -->
        <if-not-empty field="parameters.emailContactMechId">
            <set field="emailMap.partyId" from-field="partyId"/>
            <set field="emailMap.contactMechId" from-field="parameters.emailContactMechId"/>
            <!-- call the update email service -->
            <call-service service-name="updatePartyEmailAddress" in-map-name="emailMap"/>
        <else>
            <!-- create the email address -->
            <set field="emailMap.partyId" from-field="partyId"/>
            <set field="emailMap.contactMechPurposeTypeId" value="PRIMARY_EMAIL"/>
            <!-- call the create email service -->
            <call-service service-name="createPartyEmailAddress" in-map-name="emailMap"/>
        </else>
        </if-not-empty>


        <!-- create home phone -->
        <if-not-empty field="parameters.homePhoneContactMechId">
            <set field="homePhoneMap.partyId" from-field="partyId"/>
            <set field="homePhoneMap.contactMechId" from-field="parameters.homePhoneContactMechId"/>
            <!-- call update telecom service -->
            <call-service service-name="updatePartyTelecomNumber" in-map-name="homePhoneMap"/>
        <else>
            <!-- create home phone -->
            <if-not-empty field="parameters.homeContactNumber">
                <set field="homePhoneMap.partyId" from-field="partyId"/>
                <set field="homePhoneMap.contactMechPurposeTypeId" value="PHONE_HOME"/>
                <!-- call create telecom service -->
                <call-service service-name="createPartyTelecomNumber" in-map-name="homePhoneMap"/>
            </if-not-empty>
        </else>
        </if-not-empty>

        <!-- create work phone -->
        <if-not-empty field="parameters.workPhoneContactMechId">
            <set field="workPhoneMap.partyId" from-field="partyId"/>
            <set field="workPhoneMap.contactMechId" from-field="parameters.workPhoneContactMechId"/>
            <!-- call update telecom service -->
            <call-service service-name="updatePartyTelecomNumber" in-map-name="workPhoneMap"/>
        <else>
            <!-- create work phone -->
            <if-not-empty field="parameters.workContactNumber">
                <set field="workPhoneMap.partyId" from-field="partyId"/>
                <set field="workPhoneMap.contactMechPurposeTypeId" value="PHONE_WORK"/>
                <!-- call create telecom service -->
                <call-service service-name="createPartyTelecomNumber" in-map-name="workPhoneMap"/>
            </if-not-empty>
        </else>
        </if-not-empty>
    </simple-method>
    <simple-method method-name="updateCustomer" short-description="Update Customer" login-required="true">
        <if-empty field="parameters.partyId">
            <add-error>
                <fail-property resource="PartyUiLabels" property="PartyNoPartyForUpdateCustomer"/>
            </add-error>
        </if-empty>

        <call-simple-method method-name="validateCustomerInfo"/>

        <!-- see if we should continue now... -->
        <check-errors/>

        <!-- update person service -->
        <set from-field="parameters.partyId" field="personMap.partyId"/>
        <call-service service-name="updatePerson" in-map-name="personMap">
        </call-service>

        <set from-field="parameters.partyId" field="partyId"/>
        <call-simple-method method-name="createUpdateCustomerInfo"/>
    </simple-method>
    <simple-method method-name="createAnonymousCustomer" short-description="Create Customer" login-required="false">
        <call-simple-method method-name="validateCustomerInfo"/>

        <!-- see if we should continue now... -->
        <check-errors/>

        <!-- call the create person service -->
        <call-service service-name="createPerson" in-map-name="personMap">
            <result-to-field result-name="partyId" field="tempMap.partyId"/>
            <result-to-request result-name="partyId"/>
        </call-service>

        <log level="info" message="CreatePerson : ${tempMap.partyId}"/>

        <!-- the rest of the methods require a userLogin object; so if we are anonymous lets fake it -->
        <if-empty field="userLogin">
            <set field="ulLookup.userLoginId" value="anonymous"/>
            <find-by-primary-key entity-name="UserLogin" map="ulLookup" value-field="userLogin"/>
            <set field="userLogin.partyId" from-field="tempMap.partyId"/>
            <set-current-user-login value-field="userLogin"/>
            <else><!-- of an anonymous vistor is coming back, update the party id in the userLogin object -->
                <if-compare field="userLogin.userLoginId" value="anonymous" operator="equals">
                    <set field="userLogin.partyId" from-field="tempMap.partyId"/>
                </if-compare>
            </else>
        </if-empty>

        <log level="info" message="UserLogin : ${userLogin}"/>

        <!-- add the party to the customer role -->
        <set field="roleMap.roleTypeId" value="CUSTOMER"/>
        <set field="roleMap.partyId" from-field="tempMap.partyId"/>
        <call-service service-name="createPartyRole" in-map-name="roleMap"/>

        <set from-field="tempMap.partyId" field="partyId"/>
        <call-simple-method method-name="createUpdateCustomerInfo"/>

        <!-- create userLogin -->
        <if-not-empty field="parameters.userLoginId">
            <set field="loginMap.userLoginId" from-field="parameters.userLoginId"/>
            <!-- call create userLogin -->
            <!-- call reset password (to email a password) -->
        </if-not-empty>
    </simple-method>

    <simple-method method-name="processShipSettings" short-description="Process Ship Settings; to be called as a Request Event" login-required="false">
        <call-map-processor in-map-name="parameters" out-map-name="addressContext">
            <simple-map-processor name="newAddress">
                <process field="toName"><copy/></process>
                <process field="attnName"><copy/></process>
                <process field="address1">
                    <copy/>
                    <not-empty><fail-property resource="PartyUiLabels" property="PartyAddressLine1MissingError"/></not-empty>
                </process>
                <process field="address2"><copy/></process>
                <process field="city">
                    <copy/>
                    <not-empty><fail-property resource="PartyUiLabels" property="PartyCityMissing"/></not-empty>
                </process>
                <process field="stateProvinceGeoId"><copy/></process>
                <process field="postalCode">
                    <copy/>
                    <not-empty><fail-property resource="PartyUiLabels" property="PartyZipCodeMissing"/></not-empty>
                </process>
                <process field="countyGeoId">
                    <copy/>
                </process>
                <process field="countryGeoId">
                    <copy/>
                    <not-empty><fail-property resource="PartyUiLabels" property="PartyCountryMissing"/></not-empty>
                </process>
                <process field="allowSolicitation"><copy/></process>
                <process field="yearsAtAddress"><convert type="Long" to-field="yearsWithContactMech"><fail-property resource="EcommerceUiLabels" property="EcommerceYearsAtAddressNotValid"/></convert></process>
                <process field="monthsAtAddress"><convert type="Long" to-field="monthsWithContactMech"><fail-property resource="EcommerceUiLabels" property="EcommerceMonthsAtAddressNotValid"/></convert></process>
            </simple-map-processor>
        </call-map-processor>
        <if-compare value="USA" operator="equals" field="parameters.countryGeoId">
            <if-empty field="parameters.stateProvinceGeoId">
                <property-to-field field="tempErrorMessage" resource="PartyUiLabels" property="PartyStateInUsMissing"/>
                <string-to-list string="${tempErrorMessage}" message-field="CUSTOMER_STATE" list="error_list"/>
            </if-empty>
        </if-compare>
        <if-compare value="CAN" operator="equals" field="parameters.countryGeoId">
            <if-empty field="parameters.stateProvinceGeoId">
                <property-to-field field="tempErrorMessage" resource="PartyUiLabels" property="PartyStateInCanadaMissing"/>
                <string-to-list string="${tempErrorMessage}" message-field="CUSTOMER_STATE" list="error_list"/>
            </if-empty>
        </if-compare>
        <check-errors/>

        <!-- shipping address -->
        <if-not-empty field="parameters.shippingContactMechId">
            <set field="addressContext.partyId" from-field="partyId"/>
            <set field="addressContext.contactMechId" from-field="parameters.shippingContactMechId"/>
            <!-- call the update address service -->
            <call-service service-name="updatePartyPostalAddress" in-map-name="addressContext">
                <!-- this is needed for the "anonymous" checkout process, will be used as the shipping address -->
                <result-to-request result-name="contactMechId"/>
                <result-to-field result-name="contactMechId" field="addressContext.contactMechId"/>
            </call-service>
            <else>
                <set field="addressContext.partyId" from-field="partyId"/>
                <call-service service-name="createPartyPostalAddress" in-map-name="addressContext">
                    <result-to-field result-name="contactMechId" field="addressContext.contactMechId"/>
                    <result-to-field result-name="contactMechId" field="addressPurposeContext.contactMechId"/>
                    <result-to-request result-name="contactMechId"/>
                </call-service>

                <set field="addressPurposeContext.partyId" from-field="partyId"/>
                <!-- create the shipping location -->
                <set field="addressPurposeContext.contactMechPurposeTypeId" value="SHIPPING_LOCATION"/>
                <call-service service-name="createPartyContactMechPurpose" in-map-name="addressPurposeContext"/>
                <!-- also consider this address the general correspondence address -->
                <set field="addressPurposeContext.contactMechPurposeTypeId" value="GENERAL_LOCATION"/>
                <call-service service-name="createPartyContactMechPurpose" in-map-name="addressPurposeContext"/>
            </else>
        </if-not-empty>
        <session-to-field field="cart" session-name="shoppingCart"/>
        <if-not-empty field="cart">
            <call-object-method obj-field="cart" method-name="addContactMech">
                <string value="SHIPPING_LOCATION"/>
                <field field="addressContext.contactMechId"/>
            </call-object-method>
            <call-object-method obj-field="cart" method-name="setAllShippingContactMechId">
                <field field="addressContext.contactMechId"/>
            </call-object-method>
        </if-not-empty>
    </simple-method>

    <simple-method method-name="processShipOptions" short-description="Process Ship Options; to be called as a Request Event" login-required="false">
        <script>groovy:
           shipmentMethod = parameters.get("shipping_method");
           if(shipmentMethod != null){
              parameters.put("shipmentMethodTypeId", shipmentMethod.substring(0, shipmentMethod.indexOf("@")));
              parameters.put("carrierPartyId", shipmentMethod.substring(shipmentMethod.indexOf("@")+1));
           }
       </script>
       <session-to-field field="cart" session-name="shoppingCart"/>
       <if-not-empty field="cart">
           <set field="shipmentMethodTypeId" from-field="parameters.shipmentMethodTypeId"/>
           <call-object-method obj-field="cart" method-name="setAllShipmentMethodTypeId">
               <field field="shipmentMethodTypeId"/>
           </call-object-method>

           <set field="carrierPartyId" from-field="parameters.carrierPartyId"/>
           <call-object-method obj-field="cart" method-name="setAllCarrierPartyId">
               <field field="carrierPartyId"/>
           </call-object-method>

           <set field="maySplit" from-field="parameters.may_split" type="Boolean"/>
           <if-not-empty field="maySplit">
               <call-object-method obj-field="cart" method-name="setAllMaySplit">
                   <field field="maySplit" type="Boolean"/>
               </call-object-method>
           </if-not-empty>

           <set field="shippingInstruction" from-field="parameters.shipping_instructions" type="String"/>
           <if-not-empty field="shippingInstruction">
           <call-object-method obj-field="cart" method-name="setAllShippingInstructions">
               <field field="shippingInstruction" type="String"/>
           </call-object-method>
           </if-not-empty>

           <set field="correspondingPoId" from-field="parameters.correspondingPoId"/>
           <if-not-empty field="correspondingPoId">
                  <call-object-method obj-field="cart" method-name="setPoNumber">
                   <field field="correspondingPoId" type="String"/>
               </call-object-method>
           </if-not-empty>

           <set field="isGift" from-field="parameters.is_gift" type="Boolean"/>
           <if-not-empty field="isGift">
               <call-object-method obj-field="cart" method-name="setAllIsGift">
                   <field field="isGift" type="Boolean"/>
               </call-object-method>
           </if-not-empty>

           <set field="giftMessage" from-field="parameters.gift_message" type="String"/>
           <if-not-empty field="giftMessage">
           <call-object-method obj-field="cart" method-name="setAllGiftMessage">
               <field field="giftMessage" type="String"/>
           </call-object-method>
           </if-not-empty>
       </if-not-empty>
    </simple-method>

    <!-- One page checkout process  -->
    <simple-method method-name="createUpdateUserLogin" short-description="Create and update a user login" login-required="false">
        <!-- Check if for this user still an anonymus user login exists and remove it -->
        <session-to-field field="user" session-name="userLogin"/>
        <session-to-field field="cart" session-name="shoppingCart"/>

        <if>
            <condition>
                    <and>
                        <if-compare operator="equals" value="anonymous" field="cart.userLogin.userLoginId" />
                        <if-compare operator="equals" value="anonymous" field="user.userLoginId" />
                        <if-compare operator="equals" value="anonymous" field="userLogin.userLoginId" />
                    </and>
            </condition>
            <then>
                <clear-field field="userLogin"/>
                <call-object-method method-name="removeAttribute" obj-field="session">
                    <string value="userLogin" />
                </call-object-method>
            </then>
        </if>

        <if-empty field="parameters.partyId">
            <request-to-field request-name="partyId" field="parameters.partyId"/>
        </if-empty>
        <if-empty field="parameters.username">
            <call-class-method class-name="org.apache.ofbiz.product.store.ProductStoreWorker" method-name="getProductStore" ret-field="productStore">
                <field field="request" type="javax.servlet.ServletRequest"/>
            </call-class-method>
            <if-compare field="productStore.usePrimaryEmailUsername" operator="equals" value="Y">
                <set field="parameters.username" from-field="parameters.emailAddress"/>
            </if-compare>
        </if-empty>
        <if-empty field="userLogin">
            <call-map-processor xml-resource="component://securityext/minilang/login/LoginMapProcs.xml"
                processor-name="userLogin" in-map-name="parameters" out-map-name="userLoginMap"/>
            <if-not-empty field="userLoginMap.userLoginId">
                <entity-one entity-name="UserLogin" value-field="existingUserLogin">
                    <field-map field-name="userLoginId" value="${userLoginMap.userLoginId}"/>
                </entity-one>
                <if-not-empty field="existingUserLogin">
                    <add-error error-list-name="error_list"><fail-property resource="PartyUiLabels" property="PartyUserNameInUse"/></add-error>
                </if-not-empty>
            </if-not-empty>
            <make-value entity-name="UserLogin" value-field="newUserLogin"/>
            <set field="newUserLogin.userLoginId" from-field="userLoginMap.userLoginId"/>
            <set field="newUserLogin.currentPassword" from-field="userLoginMap.currentPassword"/>
            <set field="newUserLogin.passwordHint" from-field="userLoginMap.passwordHint"/>
            <!-- Check the password, etc for validity -->
            <script>groovy:
                String password = (String) userLoginMap.get("currentPassword");
                String confirmPassword = (String) userLoginMap.get("currentPasswordVerify");
                String passwordHint = (String) userLoginMap.get("passwordHint");
                org.apache.ofbiz.common.login.LoginServices.checkNewPassword(newUserLogin, null, password, confirmPassword, passwordHint, error_list, true, locale);
            </script>
            <check-errors/>
            <set-service-fields service-name="createUserLogin"  map="userLoginMap" to-map="userLoginCtx"/>

            <!-- call the service with the system account to get around security constraints for this special create -->
            <entity-one entity-name="UserLogin" value-field="userLoginCtx.userLogin" auto-field-map="false">
                <field-map field-name="userLoginId" value="system"/>
            </entity-one>
            <call-service service-name="createUserLogin" in-map-name="userLoginCtx"/>
            <entity-one entity-name="UserLogin" value-field="userLogin">
                <field-map field-name="userLoginId" from-field="userLoginMap.userLoginId"/>
            </entity-one>

            <!-- now finished, log in the user and set the cart's partyId -->
            <script>groovy:
                    org.apache.ofbiz.webapp.control.LoginWorker.doBasicLogin(userLogin, request);
                    org.apache.ofbiz.webapp.control.LoginWorker.autoLoginSet(request, response);
            </script>
            <set field="parameters.userLogin" from-field="userLogin"/>
        <else>
            <if>
                <condition>
                    <or>
                        <not><if-empty field="parameters.currentPassword"></if-empty></not>
                        <not><if-empty field="parameters.newPassword"></if-empty></not>
                        <not><if-empty field="parameters.newPasswordVerify"> </if-empty></not>
                    </or>
                </condition>
                <then>
                    <call-map-processor xml-resource="component://securityext/minilang/login/LoginMapProcs.xml"
                        processor-name="updatePassword" in-map-name="parameters" out-map-name="passwordMap"/>
                    <check-errors/>
                    <set-service-fields service-name="updatePassword" map="passwordMap" to-map="passwordCtx"/>
                    <call-service service-name="updatePassword" in-map-name="passwordCtx">
                        <result-to-field result-name="updatedUserLogin"/>
                    </call-service>
                    <set-current-user-login value-field="updatedUserLogin"/>
                    <session-to-field field="userLogin"/>
                    <if-compare field="userLogin.userLoginId" operator="equals" value="${updatedUserLogin.userLoginId}">
                        <field-to-session field="updatedUserLogin" session-name="userLogin"/>
                    </if-compare>
                    <session-to-field field="userLogin"/>
              </then>
           </if>
        </else>
        </if-empty>
    </simple-method>

    <simple-method method-name="getShipOptions" short-description="Get shipping options" login-required="false">
        <set field="dispatcher" from-field="parameters.dispatcher" type="Object"/>
        <set field="shoppingCart" from-field="parameters.shoppingCart"/>
        <if-empty field="shoppingCart">
            <session-to-field field="shoppingCart"/>
        </if-empty>
        <script>groovy:
                import org.apache.ofbiz.order.shoppingcart.shipping.ShippingEstimateWrapper;
                shippingEstWpr = ShippingEstimateWrapper.getWrapper(dispatcher, shoppingCart, 0);
                parameters.put("shippingEstWpr", shippingEstWpr);
        </script>
        <set field="shippingEstWpr" from-field="parameters.shippingEstWpr"/>
        <call-object-method obj-field="shippingEstWpr" method-name="getShippingMethods" ret-field="carrierShipmentMethodList"/>
        <call-object-method obj-field="shoppingCart" method-name="getShipmentMethodTypeId" ret-field="shipmentMethodTypeId"/>
        <call-object-method obj-field="shoppingCart" method-name="getCarrierPartyId" ret-field="carrierPartyId"/>
        <call-object-method obj-field="shoppingCart" method-name="getCurrency" ret-field="currency"/>
        <if-not-empty field="shipmentMethodTypeId">
            <if-not-empty field="carrierPartyId">
                 <set field="chosenShippingMethod" value="${shipmentMethodTypeId}@${carrierPartyId}"/>
            </if-not-empty>
        </if-not-empty>
        <iterate list="carrierShipmentMethodList"  entry="carrierShipmentMethod">
            <call-object-method obj-field="shippingEstWpr" method-name="getShippingEstimate" ret-field="shippingEst">
                <field field="carrierShipmentMethod" type="org.apache.ofbiz.entity.GenericValue"/>
            </call-object-method>
            <if-empty field="shippingEst">
                <set field="shippingEst" value="-1" type="Integer"/>
            </if-empty>
            <set field="negValue" value="-1" type="Integer"/>
            <set field="shippingMethod" value="${carrierShipmentMethod.shipmentMethodTypeId}@${carrierShipmentMethod.partyId}"/>

            <if-compare-field field="shippingEst" operator="greater" to-field="negValue">
                <set field="shippingDesc" value="${carrierShipmentMethod.partyId} ${carrierShipmentMethod.description} - ${shippingEst?currency(${currency})}"/>
                <else>
                    <set field="shippingDesc" value="${carrierShipmentMethod.partyId} ${carrierShipmentMethod.description} - ${uiLabelMap.OrderCalculatedOffline}"/>
                </else>
            </if-compare-field>
            <set field="shippingOptionMap.shippingMethod" from-field="shippingMethod"/>
            <set field="shippingOptionMap.shippingDesc" from-field="shippingDesc"/>
            <if-not-empty field="carrierShipmentMethod.productStoreShipMethId">
                <set field="shippingOptionMap.productStoreShipMethId" from-field="carrierShipmentMethod.productStoreShipMethId"/>
            </if-not-empty>
            <field-to-list field="shippingOptionMap" list="shippingOptions"/>
            <clear-field field="shippingOptionMap"/>
        </iterate>
         <set field="parameters.shippingOptions" from-field="shippingOptions"/>
         <field-to-request field="parameters.shippingOptions" request-name="shippingOptions"/>
    </simple-method>

    <simple-method method-name="setShippingOption" short-description="Set shipping method" login-required="false">
        <script>groovy:
            shippingMethod = parameters.get("shipMethod");
            if(shippingMethod != null) {
                shipmentMethodTypeId = shippingMethod.substring(0, shippingMethod.indexOf("@"));
                if (shippingMethod.indexOf(":") != -1) {
                    carrierPartyId = shippingMethod.substring(shippingMethod.indexOf("@")+1, shippingMethod.indexOf(":"));
                    productStoreShipMethId =  shippingMethod.substring(shippingMethod.indexOf(":")+1);
                    parameters.put("productStoreShipMethId", productStoreShipMethId);
                } else {
                    carrierPartyId = shippingMethod.substring(shippingMethod.indexOf("@")+1);
                }
                parameters.put("shipmentMethodTypeId", shipmentMethodTypeId);
                parameters.put("carrierPartyId", carrierPartyId);
            }
        </script>
        <set field="shipmentMethodTypeId" from-field="parameters.shipmentMethodTypeId"/>
        <set field="carrierPartyId" from-field="parameters.carrierPartyId"/>
        <set field="productStoreShipMethId" from-field="parameters.productStoreShipMethId"/>
        <log level="info" message=" shipmentMethodTypeId is ${shipmentMethodTypeId} "/>
        <log level="info" message=" carrierPartyId is ${carrierPartyId}"/>
        <log level="info" message=" productStoreShipMethId is ${productStoreShipMethId}"/>

        <entity-one entity-name="CarrierAndShipmentMethod" value-field="shipmentMethod">
            <field-map field-name="shipmentMethodTypeId" from-field="shipmentMethodTypeId"/>
            <field-map field-name="partyId" from-field="carrierPartyId"/>
            <field-map field-name="roleTypeId" value="CARRIER"/>
        </entity-one>
        <field-to-request field="shipmentMethod.description" request-name="shippingDescription"/>

        <set field="shoppingCart" from-field="parameters.shoppingCart"/>
        <if-empty field="shoppingCart">
            <session-to-field field="shoppingCart"/>
        </if-empty>
        <call-object-method obj-field="shoppingCart" method-name="setAllShipmentMethodTypeId">
            <field field="shipmentMethodTypeId"/>
        </call-object-method>
        <call-object-method obj-field="shoppingCart" method-name="setAllCarrierPartyId">
            <field field="carrierPartyId"/>
        </call-object-method>
        <call-object-method obj-field="shoppingCart" method-name="setAllProductStoreShipMethId">
            <field field="productStoreShipMethId"/>
        </call-object-method>
        <call-object-method  obj-field="shoppingCart" method-name="getCurrency" ret-field="isoCode"/>
        <set field="dispatcher" from-field="parameters.dispatcher" type="Object"/>
        <set field="delegator" from-field="parameters.delegator" type="Object"/>
        <set field="locale" from-field="parameters.locale" type="Object"/>

        <script>groovy:
            Map shipCost = org.apache.ofbiz.order.shoppingcart.shipping.ShippingEvents.getShipGroupEstimate(dispatcher, delegator, shoppingCart, 0);
            shippingTotal = shipCost.get("shippingTotal");
            if (shippingTotal == null) {
                shippingTotal = java.math.BigDecimal.ZERO;
            }
            shoppingCart.setItemShipGroupEstimate(shippingTotal, 0);
            parameters.put("shippingTotal", org.apache.ofbiz.base.util.UtilFormatOut.formatCurrency(shippingTotal, isoCode, locale));

            checkOutHelper = new org.apache.ofbiz.order.shoppingcart.CheckOutHelper(dispatcher, delegator, shoppingCart);
            // Calculate and add the tax adjustments
            checkOutHelper.calcAndAddTax();

            salesTax = shoppingCart.getTotalSalesTax();
            totalSalesTax = org.apache.ofbiz.base.util.UtilFormatOut.formatCurrency(salesTax, isoCode, locale);
            parameters.put("totalSalesTax", totalSalesTax);

            cartGrandTotal = org.apache.ofbiz.base.util.UtilFormatOut.formatCurrency(shoppingCart.getGrandTotal(), isoCode, locale);
            parameters.put("cartGrandTotal", cartGrandTotal);
        </script>
        <call-class-method method-name="doPromotions" class-name="org.apache.ofbiz.order.shoppingcart.product.ProductPromoWorker">
            <field field="shoppingCart" type="org.apache.ofbiz.order.shoppingcart.ShoppingCart"/>
            <field field="dispatcher" type="org.apache.ofbiz.service.LocalDispatcher"/>
        </call-class-method>
        <field-to-request field="parameters.shippingTotal" request-name="shippingTotal"/>
        <field-to-request field="parameters.cartGrandTotal" request-name="cartGrandTotal"/>
        <field-to-request field="parameters.totalSalesTax" request-name="totalSalesTax"/>
        <log level="info" message="Shipping total is : ${parameters.shippingTotal}"/>
        <log level="info" message="Cart Grand total is : ${parameters.cartGrandTotal}"/>
        <log level="info" message="Total sale tax is : ${parameters.totalSalesTax}"/>
    </simple-method>

    <simple-method method-name="createCustomerProfile" short-description="create a customer profile" login-required="false">
        <!-- Process all map -->
        <call-map-processor xml-resource="component://party/minilang/contact/PartyContactMechMapProcs.xml"
                processor-name="person" in-map-name="parameters" out-map-name="personCtx"/>
        <call-map-processor xml-resource="component://party/minilang/contact/PartyContactMechMapProcs.xml"
                processor-name="emailAddress" in-map-name="parameters" out-map-name="emailAddressCtx"/>
        <call-map-processor xml-resource="component://order/minilang/customer/CheckoutMapProcs.xml"
            processor-name="shipToAddress" in-map-name="parameters" out-map-name="shipToAddressCtx"/>
        <call-map-processor xml-resource="component://order/minilang/customer/CheckoutMapProcs.xml"
                processor-name="shipToPhone" in-map-name="parameters" out-map-name="shipToTelecomNumberCtx"/>
        <check-errors/>

        <!-- create person -->
        <set-service-fields service-name="createPerson" map="personCtx" to-map="createPersonCtx"/>
        <call-service service-name="createPerson" in-map-name="createPersonCtx">
            <result-to-field result-name="partyId" field="partyId"/>
        </call-service>
        <set field="parameters.partyId" from-field="partyId"/>

        <!-- create userLogin -->
        <call-simple-method method-name="createUpdateUserLogin"/>

        <!-- Create party role-->
        <set field="partyRoleContext.partyId" from-field="parameters.partyId"/>
        <set field="partyRoleContext.roleTypeId" from-field="parameters.roleTypeId"/>
        <set field="partyRoleContext.userLogin" from-field="parameters.userLogin"/>
        <call-service service-name="createPartyRole" in-map-name="partyRoleContext"/>

        <!-- Create email address -->
        <set field="emailAddressCtx.partyId" from-field="parameters.partyId"/>
        <set field="emailAddressCtx.userLogin" from-field="parameters.userLogin"/>
        <set field="emailAddressCtx.contactMechPurposeTypeId" from-field="parameters.emailContactMechPurposeTypeId"/>
        <call-service service-name="createPartyEmailAddress" in-map-name="emailAddressCtx">
            <result-to-field result-name="contactMechId" field="emailContactMechId"/>
        </call-service>
        <log level="info" message="Email Contact Created emailContactMechId is ${emailContactMechId}"/>

        <!-- Create shipping address -->
        <set field="shipToAddressCtx.partyId" from-field="parameters.partyId"/>
        <set field="shipToAddressCtx.userLogin" from-field="parameters.userLogin"/>
        <set field="shipToAddressCtx.setShippingPurpose" value="Y"/>
        <set field="shipToAddressCtx.productStoreId" from-field="parameters.productStoreId"/>
        <if-compare field="parameters.useShippingAddressForBilling" operator="equals" value="Y">
          <set field="shipToAddressCtx.setBillingPurpose" value="Y"/>
        </if-compare>
        <call-service service-name="createPostalAddressAndPurposes" in-map-name="shipToAddressCtx">
            <result-to-field result-name="contactMechId" field="shipToContactMechId"/>
        </call-service>
        <log level="info" message="Shipping address created with contactMechId ${shipToContactMechId}"/>

        <!-- create shipping telecom number  -->
        <set field="shipToTelecomNumberCtx.partyId" from-field="parameters.partyId"/>
        <set field="shipToTelecomNumberCtx.userLogin" from-field="parameters.userLogin"/>
        <set field="shipToTelecomNumberCtx.contactMechPurposeTypeId" value="PHONE_SHIPPING"/>
        <!-- call create telecom service -->
        <call-service service-name="createPartyTelecomNumber" in-map-name="shipToTelecomNumberCtx">
            <result-to-field result-name="contactMechId" field="parameters.shipToTelecomContactMechId"/>
        </call-service>
        <log level="info" message="Shipping telecom number is created with contactMechId ${parameters.shipToTelecomContactMechId}"/>

        <!-- Create billing address -->
        <if-compare field="parameters.useShippingAddressForBilling" operator="not-equals" value="Y">
            <call-map-processor xml-resource="component://order/minilang/customer/CheckoutMapProcs.xml"
                    processor-name="billToAddress" in-map-name="parameters" out-map-name="billToAddressCtx"/>
            <set field="billToAddressCtx.partyId" from-field="parameters.partyId"/>
            <set field="billToAddressCtx.userLogin" from-field="parameters.userLogin"/>
            <set field="billToAddressCtx.setBillingPurpose" value="Y"/>
            <set field="billToAddressCtx.productStoreId" from-field="parameters.productStoreId"/>
            <call-service service-name="createPostalAddressAndPurposes" in-map-name="billToAddressCtx">
                <result-to-field result-name="contactMechId" field="billToContactMechId"/>
            </call-service>
            <log level="info" message="Billing address created with contactMechId ${billToContactMechId}"/>
        <else>
            <log level="info" message="Billing address created same as Shipping address with contactMechId ${shipToContactMechId}"/>
        </else>
        </if-compare>
        <!-- create billing telecom number  -->
        <call-map-processor xml-resource="component://order/minilang/customer/CheckoutMapProcs.xml"
                processor-name="billToPhone" in-map-name="parameters" out-map-name="billToTelecomNumberCtx"/>
        <set field="billToTelecomNumberCtx.partyId" from-field="parameters.partyId"/>
        <set field="billToTelecomNumberCtx.userLogin" from-field="parameters.userLogin"/>
        <set field="billToTelecomNumberCtx.contactMechPurposeTypeId" value="PHONE_BILLING"/>
        <!-- call create telecom service -->
        <call-service service-name="createPartyTelecomNumber" in-map-name="billToTelecomNumberCtx">
            <result-to-field result-name="contactMechId" field="billToTelecomContactMechId"/>
        </call-service>
        <!-- Associated to Product Store -->
        <entity-one entity-name="UserLogin" value-field="userLogin">
            <field-map field-name="userLoginId" value="system"/>
        </entity-one>
        <set field="createProductStoreRoleMap.userLogin" from-field="userLogin"/>
        <set field="createProductStoreRoleMap.partyId" from-field="parameters.partyId"/>
        <set field="createProductStoreRoleMap.roleTypeId" from-field="parameters.roleTypeId"/>
        <set field="createProductStoreRoleMap.productStoreId" from-field="parameters.productStoreId"/>
        <call-service service-name="createProductStoreRole" in-map-name="createProductStoreRoleMap"/>

        <set field="emailAddressCtx.productStoreId" from-field="parameters.productStoreId"/>
        <set-service-fields service-name="sendCreatePartyEmailNotification" map="emailAddressCtx" to-map="serviceInMap"/>
        <call-service-asynch service-name="sendCreatePartyEmailNotification" in-map-name="serviceInMap"/>
     </simple-method>

    <simple-method method-name="updateCustomerProfile" short-description="Update a customer profile">
        <call-class-method class-name="org.apache.ofbiz.product.store.ProductStoreWorker" method-name="getProductStore" ret-field="productStore">
            <field field="request" type="javax.servlet.ServletRequest"/>
        </call-class-method>

        <set-service-fields service-name="createUpdatePerson" map="parameters" to-map="createUpdatePersonCtx"/>
        <set field="createUpdatePersonCtx.userLogin" from-field="userLogin"/>
        <set field="createUpdatePersonCtx.partyId" from-field="userLogin.partyId"/>
        <call-service service-name="createUpdatePerson" in-map-name="createUpdatePersonCtx">
            <result-to-request result-name="partyId"/>
            <result-to-field result-name="partyId" field="parameters.partyId"/>
        </call-service>

        <if-compare field="productStore.usePrimaryEmailUsername" operator="equals" value="Y">
            <set field="parameters.userLoginId" from-field="parameters.emailAddress"/>
            <call-simple-method method-name="setUserLoginFromEmail"/>
        </if-compare>

        <call-simple-method method-name="createUpdateUserLogin"/>

        <call-map-processor xml-resource="component://party/minilang/contact/PartyContactMechMapProcs.xml"
                processor-name="emailAddress" in-map-name="parameters" out-map-name="emailAddressContext"/>
        <check-errors/>
        <set-service-fields service-name="createUpdatePartyEmailAddress" map="emailAddressContext" to-map="createUpdatePartyEmailCtx"/>
        <set field="createUpdatePartyEmailCtx.contactMechPurposeTypeId" value="PRIMARY_EMAIL"/>
        <set field="createUpdatePartyEmailCtx.contactMechId" from-field="parameters.emailContactMechId"/>
        <set field="createUpdatePartyEmailCtx.userLogin" from-field="userLogin"/>
        <set field="createUpdatePartyEmailCtx.partyId" from-field="parameters.partyId"/>
        <call-service service-name="createUpdatePartyEmailAddress" in-map-name="createUpdatePartyEmailCtx">
            <result-to-field result-name="contactMechId" field="parameters.emailContactMechId"/>
        </call-service>
    </simple-method>

    <simple-method method-name="setUserLoginFromEmail" short-description="Set userloginId from email. If user edit email address then set it as a new userLoginId and disabled date to far in the future for existing userLoginId">
        <if-compare-field field="parameters.userLoginId" operator="not-equals" to-field="userLogin.userLoginId">
            <set field="loggedInUser" from-field="userLogin"/>
            <set-service-fields service-name="updateUserLoginId" map="parameters" to-map="serviceContext"/>
            <set field="serviceContext.userLogin" from-field="userLogin"/>
            <call-service service-name="updateUserLoginId" in-map-name="serviceContext">
                <result-to-field result-name="newUserLogin"/>
            </call-service>
            <set-current-user-login value-field="newUserLogin"/>
            <script>groovy:
                    org.apache.ofbiz.webapp.control.LoginWorker.doBasicLogin(newUserLogin, request);
                    org.apache.ofbiz.webapp.control.LoginWorker.autoLoginSet(request, response);
            </script>
            <!-- disabledDateTime/disableForYears set time until a user login remains disabled -->
            <if-not-empty field="parameters.disabledDateTime">
                <set field="disabledDateTime" from-field="parameters.disabledDateTime" type="Date"/>
            <else>
                <now-timestamp field="nowTimeStamp"/>
                <set field="disableForYears" from-field="parameters.disableForYears" default-value="20"/>
                <set-calendar field="disabledDateTime" from-field="nowTimeStamp" years="${disableForYears}"/>
            </else>
            </if-not-empty>
            <set field="loggedInUser.disabledDateTime" from-field="disabledDateTime"/>
            <set field="loggedInUser.enabled" value="N"/>
            <store-value value-field="loggedInUser"/>
        </if-compare-field>
    </simple-method>
    <simple-method method-name="createAnonContact" short-description="Create a non Contact" login-required="false">
        <entity-one entity-name="UserLogin" value-field="systemUserLogin">
            <field-map field-name="userLoginId" value="system"/>
        </entity-one>
        <set field="parameters.userLogin" from-field="systemUserLogin"/>
        <set field="isExistingEmail" type="Boolean" value="false"/>
        <if-empty field="parameters.subject">
            <add-error><fail-property resource="EcommerceUiLabels" property="EcommerceSubjectMissing"/></add-error>
        </if-empty>
        <if-empty field="parameters.content">
            <add-error><fail-property resource="CommonUiLabels" property="CommonMessageMissing"/></add-error>
        </if-empty>
        <if-empty field="parameters.emailAddress">
            <add-error><fail-property resource="PartyUiLabels" property="PartyEmailAddressMissingError"/></add-error>
            <else>
                <if-validate-method field="parameters.emailAddress" method="isEmail" class="org.apache.ofbiz.base.util.UtilValidate">
                    <else>
                        <add-error><fail-property resource="PartyUiLabels" property="PartyEmailAddressNotFormattedCorrectly"/></add-error>
                    </else>
                </if-validate-method>
            </else>
        </if-empty>
        <call-object-method obj-field="parameters.captcha" method-name="toLowerCase" ret-field="submittedCaptcha"/>
        <script>groovy: context.actualCaptcha = request.getSession().getAttribute("_CAPTCHA_CODE_")?.get("captchaImage")?.toLowerCase()</script>
        <if-compare-field field="submittedCaptcha" operator="not-equals" to-field="actualCaptcha">
            <add-error><fail-property resource="MyPortalUiLabels" property="MyPortalCaptchaMissingError"/></add-error>
        </if-compare-field>
        <check-errors/>
        <if-empty field="parameters.partyId">
            <set-service-fields service-name="createPerson" map="parameters" to-map="newPerson"/>
            <call-service service-name="createPerson" in-map-name="newPerson">
                <result-to-field result-name="partyId" field="parameters.partyId"/>
            </call-service>
            <set-service-fields service-name="createPartyContactMech" map="parameters" to-map="newContact"/>
            <set field="newContact.infoString" from-field="parameters.emailAddress"/>
            <set field="newContact.contactMechTypeId" value="EMAIL_ADDRESS"/>
            <set field="newContact.contactMechPurposeTypeId" value="PRIMARY_EMAIL"/>
            <call-service service-name="createPartyContactMech" in-map-name="newContact">
                <result-to-field result-name="contactMechId" field="parameters.contactMechIdFrom"/>
            </call-service>
            <else>
                <set field="parameters.contactMechIdFrom" from-field="contact.contactMechId"/>
            </else>
        </if-empty>
        <set-service-fields service-name="sendContactUsEmailToCompany" map="parameters" to-map="newComm"/>
        <set field="newComm.emailType" value="CONT_NOTI_EMAIL"/>
        <call-service service-name="sendContactUsEmailToCompany" in-map-name="newComm">
            <default-message property="ThankYouForContactingUs" resource="EcommerceUiLabels"></default-message>
        </call-service>
    </simple-method>
    <simple-method method-name="fromSetSessionLocale" 
      short-description="Add field to request for redirection after SetSessionLocale" login-required="false">
        <set field="fromSetSessionLocale" value="true"/>
        <field-to-request field="fromSetSessionLocale" request-name="fromSetSessionLocale"/>
    </simple-method>    
</simple-methods>
