This is an automated email from the ASF dual-hosted git repository.
jleroux pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git The following commit(s) were added to refs/heads/trunk by this push: new b1d4dc6 Improved: Convert CheckoutServices.xml minilang to groovy (#75) b1d4dc6 is described below commit b1d4dc6ea01e961c1c7d70d5fae356f218b5149c Author: SebastianEcomify <[hidden email]> AuthorDate: Mon Mar 15 11:11:47 2021 +0100 Improved: Convert CheckoutServices.xml minilang to groovy (#75) (OFBIZ-11599) --- .../groovyScripts/order/CheckoutServices.groovy | 199 +++++++++++++++++++ .../order/minilang/order/CheckoutServices.xml | 215 --------------------- .../order/servicedef/services_checkout.xml | 6 +- 3 files changed, 202 insertions(+), 218 deletions(-) diff --git a/applications/order/groovyScripts/order/CheckoutServices.groovy b/applications/order/groovyScripts/order/CheckoutServices.groovy new file mode 100644 index 0000000..0bb75ce --- /dev/null +++ b/applications/order/groovyScripts/order/CheckoutServices.groovy @@ -0,0 +1,199 @@ +/* + * 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. + */ + +import org.apache.ofbiz.base.util.StringUtil +import org.apache.ofbiz.entity.GenericValue +import org.apache.ofbiz.minilang.SimpleMapProcessor +import org.apache.ofbiz.order.shoppingcart.CheckOutHelper +import org.apache.ofbiz.order.shoppingcart.ShoppingCart +import org.apache.ofbiz.order.shoppingcart.ShoppingCart.CartPaymentInfo +import org.apache.ofbiz.service.ServiceUtil + + +/** + * Create/Update Customer, Shipping Address and other contact details. + * @return + */ +def createUpdateCustomerAndShippingAddress() { + Map result = success() + + List<String> messages = [] + Map shipToPhoneCtx = [:] + Map emailAddressCtx = [:] + // TODO need to convert from MapProcessor + SimpleMapProcessor.runSimpleMapProcessor('component://order/minilang/customer/CheckoutMapProcs.xml', 'shipToPhone', parameters, shipToPhoneCtx, messages, context.locale) + SimpleMapProcessor.runSimpleMapProcessor('component://party/minilang/contact/PartyContactMechMapProcs.xml', 'emailAddress', parameters, emailAddressCtx, messages, context.locale) + // Check errors + if (messages) return error(StringUtil.join(messages, ',')) + + ShoppingCart shoppingCart = parameters.shoppingCart + String partyId = parameters.partyId + GenericValue userLogin = shoppingCart.getUserLogin() + // If registered user is coming then take partyId from userLogin + if (userLogin && userLogin.partyId && !partyId) { + partyId = userLogin.partyId + } + Map createUpdatePersonCtx = parameters + createUpdatePersonCtx.userLogin = userLogin + createUpdatePersonCtx.partyId = partyId + Map serviceResultCUP = run service: "createUpdatePerson", with: createUpdatePersonCtx + partyId = serviceResultCUP.partyId + + Map partyRoleCtx = [partyId: partyId, roleTypeId: "CUSTOMER"] + if (userLogin) { + if (userLogin.userLoginId == "anonymos") { + userLogin.partyId = partyId + } + partyRoleCtx.userLogin = userLogin + } + run service: "ensurePartyRole", with: partyRoleCtx + + // Create Update Shipping address + Map shipToAddressCtx = parameters + shipToAddressCtx.userLogin = userLogin + Map serviceResultCUSA = run service: "createUpdateShippingAddress", with: shipToAddressCtx + parameters.shipToContactMechId = serviceResultCUSA.contactMechId + result.contactMechId = serviceResultCUSA.contactMechId + + // Create Update Shipping Telecom Number + Map createUpdatePartyTelecomNumberCtx = shipToPhoneCtx + createUpdatePartyTelecomNumberCtx.userLogin = userLogin + createUpdatePartyTelecomNumberCtx.partyId = partyId + createUpdatePartyTelecomNumberCtx.roleTypeId = "CUSTOMER" + createUpdatePartyTelecomNumberCtx.contactMechPurposeTypeId = "PHONE_SHIPPING" + createUpdatePartyTelecomNumberCtx.contactMechId = parameters.shipToPhoneContactMechId + Map serviceResultCUPTN = run service: "createUpdatePartyTelecomNumber", with: createUpdatePartyTelecomNumberCtx + String shipToPhoneContactMechId = serviceResultCUPTN.contactMechId + result.shipToPhoneContactMechId = serviceResultCUPTN.contactMechId + + if (shipToPhoneContactMechId) { + shoppingCart.addContactMech("PHONE_SHIPPING", shipToPhoneContactMechId) + } + // Create Update email address + Map createUpdatePartyEmailCtx = emailAddressCtx + createUpdatePartyEmailCtx.contactMechPurposeTypeId = "PRIMARY_EMAIL" + createUpdatePartyEmailCtx.userLogin = userLogin + createUpdatePartyEmailCtx.partyId = partyId + Map serviceResultCUPEM = run service: "createUpdatePartyEmailAddress", with: createUpdatePartyEmailCtx + parameters.emailContactMechId = serviceResultCUPEM.contactMechId + result.emailContactMechId = serviceResultCUPEM.contactMechId + result.partyId = partyId + if (parameters.emailContactMechId) { + shoppingCart.addContactMech("ORDER_EMAIL", parameters.emailContactMechId) + } + shoppingCart.setUserLogin(userLogin, dispatcher) + shoppingCart.addContactMech("SHIPPING_LOCATION", parameters.shipToContactMechId) + shoppingCart.setAllShippingContactMechId(parameters.shipToContactMechId) + shoppingCart.setOrderPartyId(partyId) + return result +} + +/** + * Create/update billing address and payment information + * @return + */ +def createUpdateBillingAddressAndPaymentMethod() { + Map result = success() + List<String> messages = [] + Map billToPhoneContext = [:] + // TODO need to convert from MapProcessor + SimpleMapProcessor.runSimpleMapProcessor('component://order/minilang/customer/CheckoutMapProcs.xml', 'billToPhone', parameters, billToPhoneContext, messages, context.locale) + // Check Errors + if (messages) return error(StringUtil.join(messages, ',')) + + ShoppingCart shoppingCart = parameters.shoppingCart + GenericValue userLogin = shoppingCart.getUserLogin() + String partyId = parameters.partyId + // If registered user is coming then take partyId from userLogin + if (userLogin && !partyId) { + partyId = userLogin.partyId + } + String shipToContactMechId = parameters.shipToContactMechId + if (shoppingCart) { + if (!partyId) { + partyId = shoppingCart.getPartyId() + } + if (!shipToContactMechId) { + shipToContactMechId = shoppingCart.getShippingContactMechId() + } + } + if (partyId) { + if (userLogin.userLoginId == "anonymous") { + userLogin.partyId = partyId + } + } + // Create Update Billing address + Map billToAddressCtx = parameters + billToAddressCtx.userLogin = userLogin + Map serviceResultCUBA = run service: "createUpdateBillingAddress", with: billToAddressCtx + if (ServiceUtil.isError(serviceResultCUBA)) return serviceResultCUBA + parameters.billToContactMechId = serviceResultCUBA.contactMechId + result.contactMechId = serviceResultCUBA.contactMechId + if (parameters.billToContactMechId) { + shoppingCart.addContactMech("BILLING_LOCATION", parameters.billToContactMechId) + } + // Create Update Billing Telecom Number + Map createUpdatePartyTelecomNumberCtx = billToPhoneContext + createUpdatePartyTelecomNumberCtx.userLogin = userLogin + createUpdatePartyTelecomNumberCtx.partyId = partyId + createUpdatePartyTelecomNumberCtx.roleTypeId = "CUSTOMER" + createUpdatePartyTelecomNumberCtx.contactMechPurposeTypeId = "PHONE_BILLING" + createUpdatePartyTelecomNumberCtx.contactMechId = parameters.billToPhoneContactMechId + Map serviceResultCUPTN = run service: "createUpdatePartyTelecomNumber", with: createUpdatePartyTelecomNumberCtx + if (ServiceUtil.isError(serviceResultCUPTN)) return serviceResultCUPTN + String billToPhoneContactMechId = serviceResultCUPTN.contactMechId + result.billToPhoneContactMechId = serviceResultCUPTN.contactMechId + if (billToPhoneContactMechId) { + shoppingCart.addContactMech("PHONE_BILLING", billToPhoneContactMechId) + } + // Create Update credit card + Map creditCartCtx = parameters + creditCartCtx.contactMechId = parameters.billToContactMechId + creditCartCtx.userLogin = userLogin + Map serviceResultCUCC = run service: "createUpdateCreditCard", with: creditCartCtx + if (ServiceUtil.isError(serviceResultCUCC)) return serviceResultCUCC + String paymentMethodId = serviceResultCUCC.paymentMethodId + result.paymentMethodId = serviceResultCUCC.paymentMethodId + // Set Payment Method + String cardSecurityCode = parameters.billToCardSecurityCode + CheckOutHelper checkOutHelper = new CheckOutHelper(dispatcher, delegator, shoppingCart) + Map callResult = checkOutHelper.finalizeOrderEntryPayment(paymentMethodId, null, false, false) + CartPaymentInfo cartPaymentInfo = shoppingCart.getPaymentInfo(paymentMethodId, null, null, null, true) + cartPaymentInfo.securityCode = cardSecurityCode + return result +} + +/** + * Set user login in the session + * @return + */ +def setAnonUserLogin() { + ShoppingCart shoppingCart = parameters.shoppingCart + GenericValue userLogin = shoppingCart.getUserLogin() + if (!userLogin) { + userLogin = from("UserLogin").where(userLoginId: "anonymous").queryOne() + } else { + // If an anonymous user is coming back, update the party id in the userLogin object + if (userLogin.userLoginId == "anonymous" && parameters.partyId) { + userLogin.partyId = parameters.partyId + } + } + shoppingCart.setUserLogin(userLogin, dispatcher) + return success() +} diff --git a/applications/order/minilang/order/CheckoutServices.xml b/applications/order/minilang/order/CheckoutServices.xml deleted file mode 100644 index 3c0a51d..0000000 --- a/applications/order/minilang/order/CheckoutServices.xml +++ /dev/null @@ -1,215 +0,0 @@ -<?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="createUpdateCustomerAndShippingAddress" short-description="Create/Update Customer, Shipping Address and other contact details." login-required="false"> - <call-map-processor xml-resource="component://order/minilang/customer/CheckoutMapProcs.xml" - processor-name="shipToPhone" in-map-name="parameters" out-map-name="shipToPhoneCtx"/> - <call-map-processor xml-resource="component://party/minilang/contact/PartyContactMechMapProcs.xml" - processor-name="emailAddress" in-map-name="parameters" out-map-name="emailAddressCtx"/> - <check-errors/> - <set field="shoppingCart" from-field="parameters.shoppingCart"/> - <set field="partyId" from-field="parameters.partyId"/> - <call-object-method obj-field="shoppingCart" method-name="getUserLogin" ret-field="userLogin"/> - <!-- If registered user is coming then take partyId from userLogin --> - <if-compare field="userLogin != null @and userLogin.partyId != null @and partyId == null" operator="equals" value="true" type="Boolean"> - <set field="partyId" from-field="userLogin.partyId"/> - </if-compare> - <set-service-fields service-name="createUpdatePerson" map="parameters" to-map="createUpdatePersonCtx"/> - <set field="createUpdatePersonCtx.userLogin" from-field="userLogin"/> - <set field="createUpdatePersonCtx.partyId" from-field="partyId"/> - <call-service service-name="createUpdatePerson" in-map-name="createUpdatePersonCtx"> - <result-to-field result-name="partyId"/> - </call-service> - - <if-not-empty field="userLogin"> - <if-compare field="userLogin.userLoginId" operator="equals" value="anonymous"> - <set field="userLogin.partyId" from-field="partyId"/> - </if-compare> - </if-not-empty> - - <set field="partyRoleCtx.partyId" from-field="partyId"/> - <set field="partyRoleCtx.roleTypeId" value="CUSTOMER"/> - <set field="partyRoleCtx.userLogin" from-field="userLogin"/> - - <call-service service-name="ensurePartyRole" in-map-name="partyRoleCtx"/> - - <!-- Create Update Shipping address --> - <set-service-fields service-name="createUpdateShippingAddress" map="parameters" to-map="shipToAddressCtx"/> - <set field="shipToAddressCtx.userLogin" from-field="userLogin"/> - <call-service service-name="createUpdateShippingAddress" in-map-name="shipToAddressCtx"> - <result-to-field result-name="contactMechId" field="parameters.shipToContactMechId"/> - <result-to-result result-name="contactMechId"/> - </call-service> - - <!-- Create Update Shipping Telecom Number --> - <set-service-fields service-name="createUpdatePartyTelecomNumber" map="shipToPhoneCtx" to-map="createUpdatePartyTelecomNumberCtx"/> - <set field="createUpdatePartyTelecomNumberCtx.userLogin" from-field="userLogin"/> - <set field="createUpdatePartyTelecomNumberCtx.partyId" from-field="partyId"/> - <set field="createUpdatePartyTelecomNumberCtx.roleTypeId" value="CUSTOMER"/> - <set field="createUpdatePartyTelecomNumberCtx.contactMechPurposeTypeId" value="PHONE_SHIPPING"/> - <set field="createUpdatePartyTelecomNumberCtx.contactMechId" from-field="parameters.shipToPhoneContactMechId" /> - <call-service service-name="createUpdatePartyTelecomNumber" in-map-name="createUpdatePartyTelecomNumberCtx"> - <result-to-field result-name="contactMechId" field="shipToPhoneContactMechId"/> - <result-to-result result-name="contactMechId" service-result-name="shipToPhoneContactMechId"/> - </call-service> - - <if-not-empty field="shipToPhoneContactMechId"> - <call-object-method obj-field="shoppingCart" method-name="addContactMech"> - <string value="PHONE_SHIPPING"/> - <field field="shipToPhoneContactMechId"/> - </call-object-method> - </if-not-empty> - - <!-- Create Update email address --> - <set-service-fields service-name="createUpdatePartyEmailAddress" map="emailAddressCtx" to-map="createUpdatePartyEmailCtx"/> - <set field="createUpdatePartyEmailCtx.contactMechPurposeTypeId" value="PRIMARY_EMAIL"/> - <set field="createUpdatePartyEmailCtx.userLogin" from-field="userLogin"/> - <set field="createUpdatePartyEmailCtx.partyId" from-field="partyId"/> - <call-service service-name="createUpdatePartyEmailAddress" in-map-name="createUpdatePartyEmailCtx"> - <result-to-field result-name="contactMechId" field="parameters.emailContactMechId"/> - <result-to-result result-name="contactMechId" service-result-name="emailContactMechId"/> - </call-service> - <field-to-result field="partyId"/> - <if-not-empty field="parameters.emailContactMechId"> - <call-object-method obj-field="shoppingCart" method-name="addContactMech"> - <string value="ORDER_EMAIL"/> - <field field="parameters.emailContactMechId"/> - </call-object-method> - </if-not-empty> - - <call-object-method obj-field="shoppingCart" method-name="setUserLogin"> - <field field="userLogin" type="org.apache.ofbiz.entity.GenericValue"/> - <field field="dispatcher" type="org.apache.ofbiz.service.LocalDispatcher"/> - </call-object-method> - <call-object-method obj-field="shoppingCart" method-name="addContactMech"> - <string value="SHIPPING_LOCATION"/> - <field field="parameters.shipToContactMechId"/> - </call-object-method> - <call-object-method obj-field="shoppingCart" method-name="setAllShippingContactMechId"> - <field field="parameters.shipToContactMechId"/> - </call-object-method> - <call-object-method obj-field="shoppingCart" method-name="setOrderPartyId"> - <field field="partyId"/> - </call-object-method> - </simple-method> - - <simple-method method-name="createUpdateBillingAddressAndPaymentMethod" short-description="Create/update billing address and payment information" login-required="false"> - <call-map-processor xml-resource="component://order/minilang/customer/CheckoutMapProcs.xml" - processor-name="billToPhone" in-map-name="parameters" out-map-name="billToPhoneContext"/> - <check-errors/> - <set field="shoppingCart" from-field="parameters.shoppingCart"/> - <call-object-method obj-field="shoppingCart" method-name="getUserLogin" ret-field="userLogin"/> - <set field="partyId" from-field="parameters.partyId"/> - <!-- If registered user is coming then take partyId from userLogin --> - <if-compare field="userLogin != null @and partyId == null" operator="equals" value="true" type="Boolean"> - <set field="partyId" from-field="userLogin.partyId"/> - </if-compare> - - <set field="shipToContactMechId" from-field="parameters.shipToContactMechId"/> - <if-not-empty field="shoppingCart"> - <if-empty field="partyId"> - <call-object-method obj-field="shoppingCart" method-name="getPartyId" ret-field="partyId"/> - </if-empty> - <if-empty field="shipToContactMechId"> - <call-object-method obj-field="shoppingCart" method-name="getShippingContactMechId" ret-field="shipToContactMechId"/> - </if-empty> - </if-not-empty> - <if-not-empty field="partyId"> - <if-compare field="userLogin.userLoginId" operator="equals" value="anonymous"> - <set field="userLogin.partyId" from-field="partyId"/> - </if-compare> - </if-not-empty> - - <!-- Create Update Billing address --> - <set-service-fields service-name="createUpdateBillingAddress" map="parameters" to-map="billToAddressCtx"/> - <set field="billToAddressCtx.userLogin" from-field="userLogin"/> - <call-service service-name="createUpdateBillingAddress" in-map-name="billToAddressCtx"> - <result-to-field result-name="contactMechId" field="parameters.billToContactMechId"/> - <result-to-result result-name="contactMechId"/> - </call-service> - - <if-not-empty field="parameters.billToContactMechId"> - <call-object-method obj-field="shoppingCart" method-name="addContactMech"> - <string value="BILLING_LOCATION"/> - <field field="parameters.billToContactMechId"/> - </call-object-method> - </if-not-empty> - - <!-- Create Update Billing Telecom Number --> - <set-service-fields service-name="createUpdatePartyTelecomNumber" map="billToPhoneContext" to-map="createUpdatePartyTelecomNumberCtx"/> - <set field="createUpdatePartyTelecomNumberCtx.userLogin" from-field="userLogin"/> - <set field="createUpdatePartyTelecomNumberCtx.partyId" from-field="partyId"/> - <set field="createUpdatePartyTelecomNumberCtx.roleTypeId" value="CUSTOMER"/> - <set field="createUpdatePartyTelecomNumberCtx.contactMechPurposeTypeId" value="PHONE_BILLING"/> - <set field="createUpdatePartyTelecomNumberCtx.contactMechId" from-field="parameters.billToPhoneContactMechId" /> - <call-service service-name="createUpdatePartyTelecomNumber" in-map-name="createUpdatePartyTelecomNumberCtx"> - <result-to-field result-name="contactMechId" field="billToPhoneContactMechId"/> - <result-to-result result-name="contactMechId" service-result-name="billToPhoneContactMechId"/> - </call-service> - <if-not-empty field="billToPhoneContactMechId"> - <call-object-method obj-field="shoppingCart" method-name="addContactMech"> - <string value="PHONE_BILLING"/> - <field field="billToPhoneContactMechId"/> - </call-object-method> - </if-not-empty> - - <!-- Create Update credit card --> - <set-service-fields service-name="createUpdateCreditCard" map="parameters" to-map="creditCardCtx"/> - <set field="creditCardCtx.contactMechId" from-field="parameters.billToContactMechId"/> - <set field="creditCardCtx.userLogin" from-field="userLogin"/> - <call-service service-name="createUpdateCreditCard" in-map-name="creditCardCtx"> - <result-to-field result-name="paymentMethodId"/> - <result-to-result result-name="paymentMethodId"/> - </call-service> - <!-- Set Payment Method--> - <set field="cardSecurityCode" from-field="parameters.billToCardSecurityCode" set-if-null="true" set-if-empty="true"/> - <create-object class-name="org.apache.ofbiz.order.shoppingcart.CheckOutHelper" field="checkOutHelper"> - <field field="dispatcher" type="org.apache.ofbiz.service.LocalDispatcher"/> - <field field="delegator" type="org.apache.ofbiz.entity.Delegator"/> - <field field="shoppingCart" type="org.apache.ofbiz.order.shoppingcart.ShoppingCart"/> - </create-object> - <set field="callResult" value="${groovy:checkOutHelper.finalizeOrderEntryPayment(paymentMethodId, null, false, false)}"/> - <set field="cartPaymentInfo" value="${groovy: org.apache.ofbiz.order.shoppingcart.ShoppingCart.CartPaymentInfo cpi = shoppingCart.getPaymentInfo(paymentMethodId, null, null, null, true); cpi.securityCode = cardSecurityCode; return cpi;}"/> - <check-errors/> - </simple-method> - - <simple-method method-name="setAnonUserLogin" short-description="Set user login in the session" login-required="false"> - <set field="shoppingCart" from-field="parameters.shoppingCart"/> - <call-object-method obj-field="shoppingCart" method-name="getUserLogin" ret-field="userLogin"/> - <if-empty field="userLogin"> - <entity-one entity-name="UserLogin" value-field="userLogin"> - <field-map field-name="userLoginId" value="anonymous"/> - </entity-one> - <else> - <!-- If an anonymous user is coming back, update the party id in the userLogin object --> - <if-compare field="userLogin.userLoginId" operator="equals" value="anonymous"> - <set field="userLogin.partyId" from-field="parameters.partyId"/> - </if-compare> - </else> - </if-empty> - <call-object-method obj-field="shoppingCart" method-name="setUserLogin"> - <field field="userLogin" type="org.apache.ofbiz.entity.GenericValue"/> - <field field="dispatcher" type="org.apache.ofbiz.service.LocalDispatcher"/> - </call-object-method> - </simple-method> -</simple-methods> diff --git a/applications/order/servicedef/services_checkout.xml b/applications/order/servicedef/services_checkout.xml index 13e63d9..ec7ce54 100644 --- a/applications/order/servicedef/services_checkout.xml +++ b/applications/order/servicedef/services_checkout.xml @@ -21,7 +21,7 @@ under the License. <services xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/services.xsd"> - <service name="createUpdateCustomerAndShippingAddress" engine="simple" location="component://order/minilang/order/CheckoutServices.xml" auth="false" invoke="createUpdateCustomerAndShippingAddress"> + <service name="createUpdateCustomerAndShippingAddress" engine="groovy" location="component://order/groovyScripts/order/CheckoutServices.groovy" auth="false" invoke="createUpdateCustomerAndShippingAddress"> <implements service="createUpdateShippingAddress"/> <attribute name="shoppingCart" type="org.apache.ofbiz.order.shoppingcart.ShoppingCart" mode="IN" optional="false"/> <attribute name="firstName" type="String" mode="IN" optional="true"/> @@ -37,7 +37,7 @@ under the License. <attribute name="shipToPhoneContactMechId" type="String" mode="INOUT" optional="true"/> </service> - <service name="createUpdateBillingAddressAndPaymentMethod" engine="simple" location="component://order/minilang/order/CheckoutServices.xml" auth="false" invoke="createUpdateBillingAddressAndPaymentMethod"> + <service name="createUpdateBillingAddressAndPaymentMethod" engine="groovy" location="component://order/groovyScripts/order/CheckoutServices.groovy" auth="false" invoke="createUpdateBillingAddressAndPaymentMethod"> <implements service="createUpdateBillingAddress"/> <implements service="createUpdateCreditCard"/> <attribute name="shoppingCart" type="org.apache.ofbiz.order.shoppingcart.ShoppingCart" mode="IN" optional="false"/> @@ -51,7 +51,7 @@ under the License. <attribute name="billToPhoneContactMechId" mode="INOUT" type="String" optional="true"/> </service> - <service name="setAnonUserLogin" engine="simple" location="component://order/minilang/order/CheckoutServices.xml" auth="false" invoke="setAnonUserLogin"> + <service name="setAnonUserLogin" engine="groovy" location="component://order/groovyScripts/order/CheckoutServices.groovy" auth="false" invoke="setAnonUserLogin"> <attribute name="shoppingCart" type="org.apache.ofbiz.order.shoppingcart.ShoppingCart" mode="IN" optional="false"/> <attribute name="partyId" type="String" mode="IN" optional="true"/> </service> |
Free forum by Nabble | Edit this page |