[OFBiz] SVN: r6558 - in trunk/specialized/opentravelsystem: . script/org/ofbiz/opentravelsystem servicedef src/org/ofbiz/opentravelsystem webapp webapp/HotelSimple/html webapp/hotelbackend/screens webapp/hotelfrontend/hotelfrontendimages/products/small webapp/newShop webapp/newShop/WEB-INF webapp/newShop/data webapp/newShop/error webapp/newShop/html webapp/newShop/html/images webapp/newShop/html/images/product webapp/newShop/includes webapp/newShop/screens
hansbak@svn.ofbiz.org
hansbak at svn.ofbiz.org
Tue Jan 24 00:48:59 CST 2006
Author: hansbak
Date: 2006-01-24 00:47:05 -0600 (Tue, 24 Jan 2006)
New Revision: 6558
Added:
trunk/specialized/opentravelsystem/webapp/HotelSimple/html/index.htmlOld
trunk/specialized/opentravelsystem/webapp/hotelfrontend/hotelfrontendimages/products/small/Shop-cap.jpg
trunk/specialized/opentravelsystem/webapp/newShop/
trunk/specialized/opentravelsystem/webapp/newShop/WEB-INF/
trunk/specialized/opentravelsystem/webapp/newShop/WEB-INF/controller.xml
trunk/specialized/opentravelsystem/webapp/newShop/WEB-INF/web.xml
trunk/specialized/opentravelsystem/webapp/newShop/data/
trunk/specialized/opentravelsystem/webapp/newShop/data/ShopData.xml
trunk/specialized/opentravelsystem/webapp/newShop/error/
trunk/specialized/opentravelsystem/webapp/newShop/error/error.jsp
trunk/specialized/opentravelsystem/webapp/newShop/html/
trunk/specialized/opentravelsystem/webapp/newShop/html/drop_down.js
trunk/specialized/opentravelsystem/webapp/newShop/html/dropnav.css
trunk/specialized/opentravelsystem/webapp/newShop/html/ecommain.css
trunk/specialized/opentravelsystem/webapp/newShop/html/images/
trunk/specialized/opentravelsystem/webapp/newShop/html/images/about.gif
trunk/specialized/opentravelsystem/webapp/newShop/html/images/contact.gif
trunk/specialized/opentravelsystem/webapp/newShop/html/images/ghillies1.jpg
trunk/specialized/opentravelsystem/webapp/newShop/html/images/gradient.jpg
trunk/specialized/opentravelsystem/webapp/newShop/html/images/image_tba.gif
trunk/specialized/opentravelsystem/webapp/newShop/html/images/left_nav.jpg
trunk/specialized/opentravelsystem/webapp/newShop/html/images/links.gif
trunk/specialized/opentravelsystem/webapp/newShop/html/images/logomontage.jpg
trunk/specialized/opentravelsystem/webapp/newShop/html/images/nav_right.gif
trunk/specialized/opentravelsystem/webapp/newShop/html/images/product/
trunk/specialized/opentravelsystem/webapp/newShop/html/images/product/10000l.jpg
trunk/specialized/opentravelsystem/webapp/newShop/html/images/product/10000m.jpg
trunk/specialized/opentravelsystem/webapp/newShop/html/images/product/10000s.jpg
trunk/specialized/opentravelsystem/webapp/newShop/html/images/terms.gif
trunk/specialized/opentravelsystem/webapp/newShop/html/images/tile_box.gif
trunk/specialized/opentravelsystem/webapp/newShop/html/images/tile_holder.gif
trunk/specialized/opentravelsystem/webapp/newShop/html/main.css
trunk/specialized/opentravelsystem/webapp/newShop/html/popup.js
trunk/specialized/opentravelsystem/webapp/newShop/includes/
trunk/specialized/opentravelsystem/webapp/newShop/includes/categorydetail.ftl
trunk/specialized/opentravelsystem/webapp/newShop/includes/checkoutoptions.ftl
trunk/specialized/opentravelsystem/webapp/newShop/includes/header.ftl
trunk/specialized/opentravelsystem/webapp/newShop/includes/left.ftl
trunk/specialized/opentravelsystem/webapp/newShop/includes/main.ftl
trunk/specialized/opentravelsystem/webapp/newShop/includes/minicart.ftl
trunk/specialized/opentravelsystem/webapp/newShop/includes/productdetail.ftl
trunk/specialized/opentravelsystem/webapp/newShop/includes/productsummary.ftl
trunk/specialized/opentravelsystem/webapp/newShop/includes/showcart.ftl
trunk/specialized/opentravelsystem/webapp/newShop/includes/top.ftl
trunk/specialized/opentravelsystem/webapp/newShop/index.jsp
trunk/specialized/opentravelsystem/webapp/newShop/screens/
trunk/specialized/opentravelsystem/webapp/newShop/screens/CatalogScreens.xml
trunk/specialized/opentravelsystem/webapp/newShop/screens/CommonScreens.xml
Removed:
trunk/specialized/opentravelsystem/webapp/HotelSimple/html/index.html
Modified:
trunk/specialized/opentravelsystem/ofbiz-component.xml
trunk/specialized/opentravelsystem/script/org/ofbiz/opentravelsystem/CatalogServices.xml
trunk/specialized/opentravelsystem/servicedef/services.xml
trunk/specialized/opentravelsystem/src/org/ofbiz/opentravelsystem/importData.java
trunk/specialized/opentravelsystem/webapp/hotelbackend/screens/CatalogScreens.xml
trunk/specialized/opentravelsystem/webapp/hotelbackend/screens/MainScreens.xml
Log:
OTS: new example shop will finally replace existing shop
Modified: trunk/specialized/opentravelsystem/ofbiz-component.xml
===================================================================
--- trunk/specialized/opentravelsystem/ofbiz-component.xml 2006-01-24 06:28:34 UTC (rev 6557)
+++ trunk/specialized/opentravelsystem/ofbiz-component.xml 2006-01-24 06:47:05 UTC (rev 6558)
@@ -44,8 +44,7 @@
<entity-resource type="data" reader-name="seed" loader="main" location="data/BackendData.xml"/>
<entity-resource type="data" reader-name="demo" loader="main" location="webapp/hotelfrontend/data/HotelDemoStore.xml"/>
<entity-resource type="data" reader-name="demo" loader="main" location="webapp/HotelSimple/data/HotelSimple.xml"/>
- <entity-resource type="data" reader-name="demo" loader="main" location="webapp/shop/data/ShopData.xml"/>
- <entity-resource type="data" reader-name="demo" loader="main" location="webapp/vuurwerk/data/VuurwerkData.xml"/>
+ <entity-resource type="data" reader-name="demo" loader="main" location="webapp/newShop/data/ShopData.xml"/>
<!--entity-resource type="data" reader-name="demo" loader="main" location="webapp/anet/data/anet.xml"/-->
<!-- service resources: model(s), eca(s) and group definitions -->
@@ -86,10 +85,10 @@
mount-point="/hotelsimple"
app-bar-display="false"/>
- <webapp name="Shop"
+ <webapp name="shop"
title="Small shop"
server="default-server"
- location="webapp/shop"
+ location="webapp/newShop"
mount-point="/shop"
app-bar-display="false"/>
Modified: trunk/specialized/opentravelsystem/script/org/ofbiz/opentravelsystem/CatalogServices.xml
===================================================================
--- trunk/specialized/opentravelsystem/script/org/ofbiz/opentravelsystem/CatalogServices.xml 2006-01-24 06:28:34 UTC (rev 6557)
+++ trunk/specialized/opentravelsystem/script/org/ofbiz/opentravelsystem/CatalogServices.xml 2006-01-24 06:47:05 UTC (rev 6558)
@@ -30,25 +30,31 @@
<!-- Opentravelsystem Catalog Services -->
<!-- ================================================================ -->
- <simple-method method-name="createProductCategory" short-description="--Add a ProductCategory with the invoice prefix--">
- <check-permission permission="OPENTRAVELSYSTEM" action="_RW">
- <alt-permission permission="${parameters.userLogin.partyId}" action="_RW"/>
- <fail-message message="Security Error: to update you need RW access to "${parameters.partyId}" in the "OPENTRAVELSYSTEM""/>
- </check-permission>
- <check-errors/>
-
- <!-- create id using the invoice prefix -->
+ <simple-method method-name="createProductCategory" short-description="--Add a ProductCategory with the invoice prefix--" >
<entity-one entity-name="PartyAcctgPreference" value-name="partyAcctgPreference" auto-field-map="false" use-cache="true">
<field-map field-name="partyId" env-name="parameters.userLogin.partyId"/>
</entity-one>
+ <if-not-empty field-name="partyAcctgPreference">
+ <check-permission permission="OPENTRAVELSYSTEM" action="_RW">
+ <alt-permission permission="${parameters.userLogin.partyId}" action="_RW"/>
+ <fail-message message="Security Error: to update you need RW access to "${parameters.partyId}" in the "OPENTRAVELSYSTEM""/>
+ </check-permission>
+ <check-errors/>
+
+ <if-empty field-name="parameters.productCategoryId">
+ <sequenced-id-to-env sequence-name="${partyAcctgPreference.invoiceIdPrefix}ProductCategory" env-name="nextProductCategoryId"/>
+ <set field="parameters.productCategoryId" value="${partyAcctgPreference.invoiceIdPrefix}${nextProductCategoryId}"/>
+ <else>
+ <set field="parameters.productCategoryId" value="${partyAcctgPreference.invoiceIdPrefix}${parameters.productCategoryId}"/>
+ </else>
+ </if-empty>
+ <set field="parameters.detailScreen" value="component://${parameters.userLogin.partyId}/includes/categorydetail.ftl"/>
+ </if-not-empty>
+ <!-- call original ofbiz service with preset ProductCategoryId -->
<set-service-fields service-name="createProductCategoryOfbiz" map-name="parameters" to-map-name="createProductCategory"/>
- <sequenced-id-to-env sequence-name="${partyAcctgPreference.invoiceIdPrefix}ProductCategory" env-name="nextProductCategoryId"/>
- <set field="createProductCategory.productCategoryId" value="${partyAcctgPreference.invoiceIdPrefix}${nextProductCategoryId}"/>
- <!-- call original ofbiz service with preset ProductCategoryId -->
<call-service service-name="createProductCategoryOfbiz" in-map-name="createProductCategory">
<result-to-result result-name="productCategoryId" service-result-name="productCategoryId"/>
</call-service>
-
</simple-method>
<simple-method method-name="createProduct" short-description="--Add a Product with the invoice prefix--">
@@ -62,9 +68,15 @@
</check-permission>
<check-errors/>
- <!-- create id using the invoice prefix -->
- <sequenced-id-to-env sequence-name="${partyAcctgPreference.invoiceIdPrefix}Product" env-name="nextProductId"/>
- <set field="parameters.productId" value="${partyAcctgPreference.invoiceIdPrefix}${nextProductId}"/>
+ <!-- create id using the invoice prefix if not provided but add prefix-->
+ <if-empty field-name="parameters.productId">
+ <sequenced-id-to-env sequence-name="${partyAcctgPreference.invoiceIdPrefix}Product" env-name="nextProductId"/>
+ <set field="parameters.productId" value="${partyAcctgPreference.invoiceIdPrefix}${nextProductId}"/>
+ <else>
+ <set field="parameters.productId" value="${partyAcctgPreference.invoiceIdPrefix}${parameters.productId}"/>
+ </else>
+ </if-empty>
+ <set field="parameters.detailScreen" value="component://${parameters.userLogin.partyId}/includes/productdetail.ftl"/>
</if-not-empty>
<!-- call original ofbiz service with preset ProductId -->
<set-service-fields service-name="createProductOfbiz" map-name="parameters" to-map-name="createProduct"/>
Modified: trunk/specialized/opentravelsystem/servicedef/services.xml
===================================================================
--- trunk/specialized/opentravelsystem/servicedef/services.xml 2006-01-24 06:28:34 UTC (rev 6557)
+++ trunk/specialized/opentravelsystem/servicedef/services.xml 2006-01-24 06:47:05 UTC (rev 6558)
@@ -294,24 +294,24 @@
<override name="statusId" mode = "IN" optional="false"/>
</service>
<service name="createProductCategory" default-entity-name="ProductCategory" engine="simple"
- location="org/ofbiz/opentravelsystem/CatalogServices.xml" invoke="createProductCategory" auth="true">
+ location="org/ofbiz/opentravelsystem/CatalogServices.xml" invoke="createProductCategory">
<description>Create an ProductCategory</description>
- <auto-attributes include="pk" mode="OUT" optional="false"/>
+ <auto-attributes include="pk" mode="INOUT" optional="true"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
<override name="productCategoryTypeId" optional="false"/>
</service>
<service name="createProductCategoryOfbiz" default-entity-name="ProductCategory" engine="simple"
- location="org/ofbiz/product/category/CategoryServices.xml" invoke="createProductCategory" auth="true">
+ location="org/ofbiz/product/category/CategoryServices.xml" invoke="createProductCategory">
<description>Create an ProductCategory</description>
<auto-attributes include="pk" mode="INOUT" optional="true"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
<override name="productCategoryTypeId" optional="false"/>
</service>
<service name="createProduct" default-entity-name="Product" engine="simple"
- location="org/ofbiz/opentravelsystem/CatalogServices.xml" invoke="createProduct" auth="true">
+ location="org/ofbiz/opentravelsystem/CatalogServices.xml" invoke="createProduct">
<description>Create a Product</description>
<implements service="interfaceProduct"/>
- <auto-attributes include="pk" mode="OUT" optional="false"/>
+ <auto-attributes include="pk" mode="INOUT" optional="true"/>
<override name="productTypeId" optional="false"/>
<override name="internalName" optional="false"/>
</service>
Modified: trunk/specialized/opentravelsystem/src/org/ofbiz/opentravelsystem/importData.java
===================================================================
--- trunk/specialized/opentravelsystem/src/org/ofbiz/opentravelsystem/importData.java 2006-01-24 06:28:34 UTC (rev 6557)
+++ trunk/specialized/opentravelsystem/src/org/ofbiz/opentravelsystem/importData.java 2006-01-24 06:47:05 UTC (rev 6558)
@@ -27,6 +27,7 @@
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
+import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -41,6 +42,7 @@
import org.ofbiz.entity.GenericValue;
import org.ofbiz.entity.transaction.GenericTransactionException;
import org.ofbiz.entity.transaction.TransactionUtil;
+import org.ofbiz.service.GenericServiceException;
import org.ofbiz.service.LocalDispatcher;
import org.apache.commons.fileupload.FileItem;
@@ -79,15 +81,14 @@
Locale loc = (Locale)request.getSession().getServletContext().getAttribute("locale");
if (loc == null) loc = Locale.getDefault();
String organizationPartyId = userLogin.getString("partyId");
-
+ Map results = null;
+
if (getFile(request).equals("error") || localFile == null || localFile.length() == 0) { // get the content of the uploaded file...
request.setAttribute("_ERROR_MESSAGE_", "imPortProduct: Uploaded file not found or an empty file......");
return "error";
}
if (debug) Debug.logInfo("File loaded...", module);
- List toBeStored = new LinkedList(); // file to keep all the values which need updating
-
GenericValue catalog = null;
GenericValue partyAcctgPreference = null;
try {
@@ -108,64 +109,81 @@
return "error";
}
// create basis categories
+ String browseCategory = null;
+ String promoCategory = null;
// promotion
- toBeStored.add(delegator.makeValue("ProductCategory",UtilMisc.toMap(
- "productCategoryId",organizationPartyId + "_PROMO",
- "productCategoryTypeId","CATALOG_CATEGORY",
- "primaryParentCategoryId",organizationPartyId,
- "description","Promotion Items")));
-
+ try {
+ results = dispatcher.runSync("createProductCategory",UtilMisc.toMap(
+ "userLogin",userLogin,
+ "productCategoryTypeId","CATALOG_CATEGORY",
+ "primaryParentCategoryId",organizationPartyId,
+ "description","Promotion Items"));
+ promoCategory = (String) results.get("productCategoryId");
// connect to catalog
- toBeStored.add(delegator.makeValue("ProdCatalogCategory",UtilMisc.toMap(
- "prodCatalogId",organizationPartyId,
- "productCategoryId",organizationPartyId + "_PROMO",
- "prodCatalogCategoryTypeId","PCCT_PROMOTIONS",
- "fromDate",nowTimestamp)));
+ results = dispatcher.runSync("addProductCategoryToProdCatalog",UtilMisc.toMap(
+ "userLogin",userLogin,
+ "prodCatalogId",organizationPartyId,
+ "productCategoryId",promoCategory,
+ "prodCatalogCategoryTypeId","PCCT_PROMOTIONS",
+ "fromDate",nowTimestamp));
+
+ // browseroot
+ results = dispatcher.runSync("createProductCategory",UtilMisc.toMap(
+ "userLogin",userLogin,
+ "primaryParentCategoryId",organizationPartyId,
+ "productCategoryTypeId","CATALOG_CATEGORY",
+ "description","contain the categories to browse" ));
+ browseCategory = (String) results.get("productCategoryId");
- // browseroot
- toBeStored.add(delegator.makeValue("ProductCategory",UtilMisc.toMap(
- "primaryParentCategoryId",organizationPartyId,
- "productCategoryId",organizationPartyId + "_ROOT",
- "productCategoryTypeId","CATALOG_CATEGORY",
- "description","contain the categories to browse" )));
-
// connect to catalog
- toBeStored.add(delegator.makeValue("ProdCatalogCategory",UtilMisc.toMap(
- "prodCatalogId",organizationPartyId,
- "productCategoryId",organizationPartyId + "_ROOT",
- "prodCatalogCategoryTypeId","PCCT_BROWSE_ROOT",
- "fromDate",nowTimestamp)));
+ results = dispatcher.runSync("addProductCategoryToProdCatalog",UtilMisc.toMap(
+ "userLogin",userLogin,
+ "prodCatalogId",organizationPartyId,
+ "productCategoryId",browseCategory,
+ "prodCatalogCategoryTypeId","PCCT_BROWSE_ROOT",
+ "fromDate",nowTimestamp));
+
+ } catch (GenericServiceException e1) {
+ request.setAttribute("_ERROR_MESSAGE_", "Error creating/linking base Categories");
+ return "error";
+ }
- List categories = new ArrayList(); // remember added categories, do not add links over and over
while ((fileLine = getLine()) != null && lineNumber < 100) {
if (debug) Debug.logInfo("Line read: " +fileLine, module);
// prepare structures for updating
- GenericValue product =delegator.makeValue("Product",UtilMisc.toMap(
+ Map product = UtilMisc.toMap(
+ "userLogin",userLogin,
"productTypeId","FINISHED_GOOD",
"includeInPromotions","Y", // allow promotions
- "primaryProductCategoryId", organizationPartyId));
- GenericValue productPrice =delegator.makeValue("ProductPrice",UtilMisc.toMap(
+ "primaryProductCategoryId", organizationPartyId);
+ Map productPrice =UtilMisc.toMap(
+ "userLogin",userLogin,
"productPricePurposeId","PURCHASE",
"productPriceTypeId","DEFAULT_PRICE",
"currencyUomId",partyAcctgPreference.getString("baseCurrencyUomId"),
"productStoreGroupId","_NA_",
- "fromDate",nowTimestamp));
- GenericValue productCategory =delegator.makeValue("ProductCategory",UtilMisc.toMap(
+ "fromDate",nowTimestamp);
+ Map productCategory = UtilMisc.toMap(
+ "userLogin",userLogin,
"primaryParentCategoryId",organizationPartyId,
- "productCategoryTypeId","CATALOG_CATEGORY")); // category itself
- GenericValue productCategoryMember = delegator.makeValue("ProductCategoryMember",UtilMisc.toMap( // connect product to category
- "fromDate",nowTimestamp));
- GenericValue productCategoryMemberPromo = delegator.makeValue("ProductCategoryMember",UtilMisc.toMap( // connect product to promo category
+ "productCategoryTypeId","CATALOG_CATEGORY"); // category itself
+ Map productCategoryMember = UtilMisc.toMap( // connect product to category
+ "userLogin",userLogin,
+ "fromDate",nowTimestamp);
+ Map productCategoryMemberPromo = UtilMisc.toMap( // connect product to promo category
+ "userLogin",userLogin,
"fromDate",nowTimestamp,
- "productCategoryId",organizationPartyId + "_PROMO"));
- GenericValue prodCatalogCategory =delegator.makeValue("ProdCatalogCategory",UtilMisc.toMap( // category to productCatalog
+ "productCategoryId",promoCategory);
+ Map prodCatalogCategory = UtilMisc.toMap( // category to productCatalog
+ "userLogin",userLogin,
"prodCatalogId",organizationPartyId,
"prodCatalogCategoryTypeId","PCCT_QUICK_ADD", // dummy entry
- "fromDate",nowTimestamp));
- GenericValue productCategoryRollup =delegator.makeValue("ProductCategoryRollup",UtilMisc.toMap( // category to parent for browsing
+ "fromDate",nowTimestamp);
+ Map productCategoryRollup =UtilMisc.toMap( // category to parent for browsing
+ "userLogin",userLogin,
"fromDate",nowTimestamp,
- "parentProductCategoryId",organizationPartyId + "_ROOT"));
+ "parentProductCategoryId",browseCategory);
int infoItemNr = 0;
boolean promo = false;
@@ -176,30 +194,31 @@
if (debug) Debug.logInfo("Token read: " + infoItem, module);
switch(++infoItemNr) {
case 1: // product number
- product.put("productId", prefix.concat("-").concat(infoItem));
- productPrice.put("productId", prefix.concat("-").concat(infoItem));
- productCategoryMemberPromo.put("productId",prefix.concat("-").concat(infoItem)); // connect to promocategory if required
- productCategoryMember.put("productId",prefix.concat("-").concat(infoItem)); // connect to browse category
+ product.put("productId", infoItem);
+ productPrice.put("productId", prefix.concat(infoItem));
+ productCategoryMemberPromo.put("productId",prefix.concat(infoItem)); // connect to promocategory if required
+ productCategoryMember.put("productId",prefix.concat(infoItem)); // connect to browse category
break;
case 2: //description
product.put("productName", infoItem);
+ product.put("internalName", infoItem);
product.put("description", infoItem);
break;
case 3: // large image
- product.put("largeImageUrl", "/".concat(organizationPartyId).concat("/html/").concat(infoItem));
+ product.put("largeImageUrl", "/".concat(organizationPartyId).concat("/html/images/").concat(infoItem));
break;
case 4: //small image
- product.put("smallImageUrl","/".concat(organizationPartyId).concat("/html/").concat(infoItem));
+ product.put("smallImageUrl","/".concat(organizationPartyId).concat("/html/images").concat(infoItem));
break;
case 5: //price
productPrice.put("price", new Double(Double.parseDouble(infoItem)));
break;
case 6: //category
- productCategory.put("productCategoryId", prefix.concat("-").concat(infoItem));
+ productCategory.put("productCategoryId", infoItem);
productCategory.put("description",infoItem);
- prodCatalogCategory.put("productCategoryId", prefix.concat("-").concat(infoItem));
- productCategoryRollup.put("productCategoryId", prefix.concat("-").concat(infoItem));
- productCategoryMember.put("productCategoryId", prefix.concat("-").concat(infoItem));
+ prodCatalogCategory.put("productCategoryId", prefix.concat(infoItem));
+ productCategoryRollup.put("productCategoryId", prefix.concat(infoItem));
+ productCategoryMember.put("productCategoryId", prefix.concat(infoItem));
break;
case 7: //promo (y/n)
if (infoItem.equals("N") || infoItem.equals("n")|| infoItem.equals(" ")) {
@@ -217,37 +236,35 @@
GenericValue prExist = null;
GenericValue catExist = null;
try {
- prExist = delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId",product.getString("productId")));
- catExist = delegator.findByPrimaryKey("ProductCategory", UtilMisc.toMap("productCategoryId",productCategory.getString("productCategoryId")));
+ prExist = delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId",prefix.concat((String)product.get("productId"))));
+ catExist = delegator.findByPrimaryKey("ProductCategory", UtilMisc.toMap("productCategoryId",prefix.concat((String)productCategory.get("productCategoryId"))));
} catch(GenericEntityException e2) {
request.setAttribute("_ERROR_MESSAGE_", e2.getMessage());
return "error";
}
- // update/create
- toBeStored.add(productCategory); // category
- toBeStored.add(product); // product
- toBeStored.add(productPrice); // product price
-
- // create links only if items did not exist
- if(prExist == null) {
- toBeStored.add(productCategoryMember); // product link to category
+ // create only if items did not exist
+ try {
+ if (catExist == null) {
+ results = dispatcher.runSync("createProductCategory",productCategory); // add category
+ results = dispatcher.runSync("addProductCategoryToProdCatalog",prodCatalogCategory); // link to catalog
+ results = dispatcher.runSync("addProductCategoryToCategory",productCategoryRollup); // link to browse category
+ }
+ if(prExist == null) {
+ results = dispatcher.runSync("createProduct",product); // create product
+ results = dispatcher.runSync("createProductPrice",productPrice); // create product price
+ results = dispatcher.runSync("addProductToCategory",productCategoryMember); // add to browse category
+ }
+ if (promo)
+ results = dispatcher.runSync("addProductToCategory",productCategoryMemberPromo); // add product to promo category
+
+ } catch (GenericServiceException e1) {
+ request.setAttribute("_ERROR_MESSAGE_", "Error creating/linking base Categories");
+ return "error";
}
- if (catExist == null && categories.indexOf(productCategory.getString("productCategoryId")) == -1) {
- categories.add(productCategory.getString("productCategoryId")); // add to the list so not recreated
- toBeStored.add(productCategoryRollup); // category to browseroot category
- }
- if (promo)
- toBeStored.add(productCategoryMemberPromo); // product link to promotion category
}
- try { // create entities for this record
- delegator.storeAll(toBeStored);
- } catch(GenericEntityException e2) {
- request.setAttribute("_ERROR_MESSAGE_", e2.getMessage());
- return "error";
- }
- request.setAttribute("_EVENT_MESSAGE_", "Import successfull: " + toBeStored.size() + " records imported/updated.");
+ request.setAttribute("_EVENT_MESSAGE_", "Import successfull. ");
return (String) "success";
}
@@ -276,7 +293,11 @@
}
else { // not quoted field find next comma...
end = fileLine.indexOf(",");
- if (end > 0) { // found?
+ if (fileLine.charAt(0) == ',') { //empty
+ token = "";
+ fileLine = fileLine.substring(end + 1);
+ }
+ else if (end > 0) { // found?
token = fileLine.substring(start,end);
fileLine = fileLine.substring(end + 1);
}
Deleted: trunk/specialized/opentravelsystem/webapp/HotelSimple/html/index.html
===================================================================
--- trunk/specialized/opentravelsystem/webapp/HotelSimple/html/index.html 2006-01-24 06:28:34 UTC (rev 6557)
+++ trunk/specialized/opentravelsystem/webapp/HotelSimple/html/index.html 2006-01-24 06:47:05 UTC (rev 6558)
@@ -1,137 +0,0 @@
-<html><!-- InstanceBegin template="/Templates/haagschesuites2.dwt" codeOutsideHTMLIsLocked="false" --><head>
-<meta name="GENERATOR" content="Mozilla/4.79 [en] (Win98; U) [Netscape]">
-<meta name="Author" content="Guido J. van den Elshout">
-<META NAME="description" CONTENT="Hotel, Exclusive Bed and Breakfast, Exclusive all suite Hotel, Exclusive Private Guesthouse">
-<META NAME="keywords" CONTENT="Haagsche Suites, Hotel, Exclusive Bed and Breakfast, Luxurious Bed & Breakfast, Exclusive Private Guesthouse, Exclusive all suites Hotel, Haagsche Suite, Haagse Suites, Haagse Suite, Hotels in Den Haag, Hotels in The Hague, Hotels in 's-Gravenhage, Hotel in The Hague, Hotel in Den Haag, Hotel in 's-Gravenhage, Suites in Den Haag, Suites in Den Haag, Suites in 's-Gravenhage, Hague Suites, Hague suite, Bed and Breakfast in Den Haag, Bed and Breakfast in The Hague, Bed and Breakfast in 's-Gravenhage, Exclusive B&B, Exclusive all suites Hotel, Private Guesthouse, Accomodation in The Hague, The Hague accomodation, Luxurious Hotelsuites, Luxurious accomodation in Den Haag, The Hague, Nederland, The Netherlands, Holland, Zuid-Holland, haagschesuites.nl, haagschesuites.com, haagsesuites.nl, haagse suites.nl, Boutique Hotel, Boutique Hotel in Den Haag, Hip Hotel in Den Haag, Luxurious Weekend Hotel in Den Haag, Weekend Hotel, Weekend hotel in The Hague, Weekend hotel in Den Haag, Hip Weekend Hotel, Weekend Hotel in 's-Gravenhage, Den Haag, Zuid-Holland, Weekend in Den Haag, Weekend in The Hague, Weekend holiday in Den Haag, Midweek in Den Haag, North Sea Jazz Festival, GEM, Gemeente Museum, Madurodam, Panorama Mesdag, Museum Mesdag, Omniversum, Nederlands Congres Centrum, haagschesuites.nl, haagschesuites.com, haagsesuites.nl, haagse suites.nl, Streetcar 3, Streetcar 7, Wedding in The Hague, Bridal Suite in Den Haag, Bridal Suite in The Hague, Bridal Suite in 's-Gravenhage, Wedding night in The Hague, Wedding night Suite, wedding proposal, wedding aniversary, just married, wedding idea, Scheveningen, Boutique Hotel, Boutique hotel in Den Haag, Boutique Hotel in The Hague, Boutique Hotel in 's-Gravenhage, Hip Hotel in Den Haag, Hip Hotel in the Hague, Luxurious weekend in Den Haag, weekend hotel, Weekend hotel in Den Haag, Weekend hotel in The Hague, Hip weekend hotel, weekend in The hague, Weekend uit in Den Haag, Midweek in Den Haag, North Sea Jazz Festival, GEM, Gemeente Museum, Madurodam, Panorama Mesdag, Museum Mesdag, Omniversum, Nederlands Congres Centrum, lounging, wining and dining, best breakfast in The Hague, Private Guesthouse, Accomodation in The Hague, The Hague accomodation, Luxurious Hotelsuites, Luxurious accomodation in Den Haag, The Hague, Nederland, The Netherlands, Holland, Zuid-Holland, haagschesuites.nl, haagschesuites.com, haagsesuites.nl, haagse suites, haagse suites.nl, Boutique Hotel, Boutique Hotel in Den Haag, Hip Hotel in Den Haag, Luxurious Weekend Hotel in Den Haag, Weekend Hotel, Weekend hotel in The Hague, Weekend hotel in Den Haag, Hip Weekend Hotel, Weekend Hotel in 's-Gravenhage, Den Haag, Zuid-Holland, Weekend in Den Haag, Weekend in The Hague, Weekend holiday in Den Haag, Midweek in Den Haag, North Sea Jazz Festival, GEM, Gemeente Museum, Madurodam, Panorama Mesdag, Museum Mesdag, Omniversum, Nederlands Congres Centrum, haagschesuites.nl, haagschesuites.com, haagsesuites.nl, Streetcar 3, Streetcar 10, Wedding in The Hague, Bridal Suite in Den Haag, Bridal Suite in The Hague, , Madurodam, Panorama Mesdag, Museum Mesdag, Omniversum, Nederlands Congres Centrum, lounging, wining and dining, best breakfast in The Hague, inn, city center, city, condominimum, condominium, congress, furnished, gay friendly, guest, guesthouse, holiday homes, homestay, leisure, lodging, motels, Bridal Suite in 's-Gravenhage, Honeymoon suite, Honeymoon suites, Wedding night in The Hague, Wedding night Suite, wedding proposal, wedding aniversary, just married, wedding idea, Scheveningen, Boutique Hotel, Boutique hotel in Den Haag, Boutique Hotel in The Hague, Boutique Hotel in 's-Gravenhage, Hip Hotel in Den Haag, Hip Hotel in the Hague, Luxurious weekend in Den Haag, luxe weekend in Den haag, Luxurious weekend in The Hague, weekend hotel, Weekend hotel in Den Haag, Weekend hotel in The Hague, Hip weekend hotel, weekend in The hague, Weekend uit in Den Haag, Midweek in Den Haag, North Sea Jazz Festival, GEM, Gemeente Museumuseum, nightlife, non smoking, Amsterdam, expat apartment, rent, expat rent, rental, studio, Schiphol Airport, art, art galleries, business, cabaret, cafés, coffee, casino, centre, central, cinema, classical music, clothes, clubs, cruising, dance, dancing, designer, discos, drink, drinking, eating, english-language, entertainment, fashion, festivals, film, folk, food, fun, fringe theatre, galleries, gay, gourmet, gyms, lesbian, getting around, health, hostels, hotels, house, health food, information, internet, jazz, literature, lounge, markets, menu, museums, money, movies, opera, orchestra, public transport, parks, parties, party, pension, photography, pop, post office, private, private meetings, private dinner, pubs, restaurants, reviews, rock, rock music, roots, shopping, sightseeing, soccer, souvenirs, sport, swimming, taxis, tennis, theatre, tourist, VVV, tourist board, tourist information, tourism, tours, transport, travel, vegetarian, smoke-free, non-smoking, privacy, internet, broadband, Hotel seulement a Suites, La Haye, Pays Bas, B&B, bed, Breakfast, auberge, appartement, centre, chalet, chambre, chambres, gite, gites, herbergement, historique, h�e, h�el, immeuble particulier , lit, logement, loisirs, petit d�euner, pi�e, romantique, marriage, f�e, studio, tourisme, vacances, voyage, maison, Mesdag, Mauritshuis, Niederlande, Bett, Kondominium, Kongress, Kongress, Ferien, Freizeit, Frhstck, Gast, G�tezimmer, Gaestezimmer, Gasthaus, accommodation, Haus, historisch, logement, messe, Miete, Stadt Mitte, Museum, nicht rauchen, rauchfrei, Pension, reisen, romantisch, schwull, Fruehstueck, Studio, Tourismus, Unterkunft, Wohnung, Zentrum, Zimmer">
-
-
-<META NAME="copyright" CONTENT="Copyright 2002 - 2005 Guido J. van den Elshout">
-<meta name="Classification" content="Hotel, Exclusive Bed and Breakfast, Exclusive Bead and Breakfast in The Hague, Luxurious B & B, Luxurious B&B in Den Haag, Exclusive all suite hotel, hotelsuites, suites, The Hague">
-<META NAME="robot" CONTENT="index">
-<META NAME="revisit-after" CONTENT="15">
-<title>Haagsche Suites - Den Haag, Hotel, Exclusive Bed and Breakfast, Exclusive Private Guesthouse</title>
-<link href="haagsestyles.css" rel="stylesheet" type="text/css">
-<script language="JavaScript" type="text/JavaScript">
-function MM_preloadImages() { //v3.0
- var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
- var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
- if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
-}
-
-function MM_findObj(n, d) { //v4.01
- var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
- d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
- if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
- for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
- if(!x && d.getElementById) x=d.getElementById(n); return x;
-}
-
-function MM_swapImage() { //v3.0
- var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
- if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
-}
-
-function MM_swapImgRestore() { //v3.0
- var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
-}
-
-function MM_jumpMenu(targ,selObj,restore){ //v3.0
- eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
- if (restore) selObj.selectedIndex=0;
-}
-
-// Open travel System link in new window
-function newWin(){
- window.open("","test","scrollbars=yes,width=500,height=600");
- }
-</script>
-</head>
-
-<bodyleftmargin="0" topmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0" >
-
-<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td class="credits" height="35" bgcolor="#666666" align="center">
- Booking links:<br/>
- <a style="color:#FFFFFF;font:11px Verdana, Arial, Helvetica, sans-serif;text-decoration:none;" href="../control/main" target="test" onclick="newWin()">List of Suites</a>
- - <a style="color:#FFFFFF;font:11px Verdana, Arial, Helvetica, sans-serif;text-decoration:none;" href="../control/product/~product_id=HS10000" target="test" onclick="newWin()">BOOK Suite 1</a>
- - <a style="color:#FFFFFF;font:11px Verdana, Arial, Helvetica, sans-serif;text-decoration:none;" href="../control/product/~category_id=HotelSimple/~product_id=HS10010" target="test" onclick="newWin()">BOOK Suite 2</a>
- - <a style="color:#FFFFFF;font:11px Verdana, Arial, Helvetica, sans-serif;text-decoration:none;" href="../control/product/~category_id=HotelSimple/~product_id=HS10020" target="test" onclick="newWin()">BOOK Suite 3</a>
- - <a style="color:#FFFFFF;font:11px Verdana, Arial, Helvetica, sans-serif;text-decoration:none;" href="../control/product/~category_id=HotelSimple/~product_id=HS10021" target="test" onclick="newWin()">BOOK all 3 Suites</a>
- </td>
- </tr>
- <tr height="15"><td style="border-bottom:3px solid #D8D0C8;line-height:13px;padding:3px" class="text" style="text-align:center">
- <center>
- In the top menu demo links are provided as an example<br/>
- they can be placed anywhere in an existing website<br/>The page below is for decoration only...it is not functional.</center>
- </td></tr>
- <tr>
- <td><!-- InstanceBeginEditable name="body" -->
- <table width="100%" height="360" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" bordercolor="#999999">
- <tr>
- <td><img src="../images/spacer.gif" width="8" height="25"></td>
- <td> </td>
- <td> </td>
- </tr>
- <tr>
- <td><img src="../images/spacer.gif" width="40" height="40"></td>
- <td rowspan="3" bordercolor="#666666"><img src="../images/Homerechtsg330.jpg" name="trap" width="330" height="330" vspace="5" border="1" id="trap"></td>
- <td><table width="100%" border="0" cellspacing="0" cellpadding="10">
- <tr>
- <td class="kop"><span class="koppers"><strong>'Thou shalt enjoy
- Thyself!'</strong></span></td>
- </tr>
- </table></td>
- </tr>
- <tr>
- <td height="250" bgcolor="#D8D0C8"> </td>
- <td valign="top" bordercolor="#FFFFFF" bgcolor="#D8D0C8" > <table width="400" border="0" cellpadding="10">
- <tr>
- <td valign="top" class="text"><p align="justify" class="textblok">Under
- this motto we created three luxurious private suites in a
- townhouse, originally built in 1890 and recently completely
- refurbished. Situated between the heart of The Hague and the
- beaches of Scheveningen. Amsterdam and Rotterdam airports
- not far away. Each suite occupies a whole floor. Each suite
- has a lovely view of the designer garden. Each suite suiteable
- for both the distinguished business and leisure traveller.
- Each suite a bridal suite.<br>
- We offer ultimate luxury and intimate privacy.<br>
- Guido and Irene van den Elshout </p>
- </td>
- </tr>
- </table></td>
- </tr>
- <tr>
- <td><img src="../images/spacer.gif" width="8" height="40"></td>
- <td width="100%"><div align="right"><span class="koppers">Dutch
- </span><span class="koppers"> - »Next </span>
- <img src="../images/logo.GIF" width="200" height="54" border="0" align="absmiddle" ></div></td>
- </tr>
- <tr>
- <td><img src="../images/spacer.gif" width="15" height="25"></td>
- <td class="linktekst" >
-<div align="center"> more
- <img src="../images/blokjegrijs.gif" name="blokje1" width="15" height="15" hspace="3" border="0" align="top" id="blokje1" onMouseOver="MM_swapImage('blokje1','','../images/blokjewit.gif',1)" onMouseOut= "MM_swapImage('blokje1','','../images/blokjegrijs.gif',1)">
- <img src="../images/blokjegrijs.gif" name="blokje2" width="15" height="15"hspace="3" border="0" align="top" id="blokje2" onMouseOver="MM_swapImage('blokje2','','../images/blokjewit.gif',1)" onMouseOut= "MM_swapImage('blokje2','','../images/blokjegrijs.gif',1)">
- <img src="../images/blokjegrijs.gif" name="blokje3" width="15" height="15"hspace="3" border="0" align="top" id="blokje3" onMouseOver="MM_swapImage('blokje3','','../images/blokjewit.gif',1)" onMouseOut= "MM_swapImage('blokje3','','../images/blokjegrijs.gif',1)">
- <img src="../images/blokjegrijs.gif" name="blokje4" width="15" height="15" hspace="3" border="0" align="top" id="blokje4" onMouseOver="MM_swapImage('blokje4','','../images/blokjewit.gif',1)" onMouseOut= "MM_swapImage('blokje4','','../images/blokjegrijs.gif',1)">photo's
- <span class="text"> </span></div></td>
- <td width="100%" valign="top" class="text"> <div align="right">info at haagschesuites.nl
- </div></td>
- </tr>
- </table>
- <!-- InstanceEndEditable --></td>
- </tr>
-<tr>
- <td style="border-top:8px solid #D8D0C8" height="10" class="text" >
- <div align="center" ><strong><font color="#725E4E">Laan van Meerdervoort
- 155, NL 2517 AX The Hague - Tel: +31 (0)70 364 78 79 - Fax: +31 (0)70 345
- 65 33</font> </strong></div></td>
- </tr>
-</table>
-
-</body>
-
-
-<!-- InstanceEnd --></html>
Copied: trunk/specialized/opentravelsystem/webapp/HotelSimple/html/index.htmlOld (from rev 6534, trunk/specialized/opentravelsystem/webapp/HotelSimple/html/index.html)
Modified: trunk/specialized/opentravelsystem/webapp/hotelbackend/screens/CatalogScreens.xml
===================================================================
--- trunk/specialized/opentravelsystem/webapp/hotelbackend/screens/CatalogScreens.xml 2006-01-24 06:28:34 UTC (rev 6557)
+++ trunk/specialized/opentravelsystem/webapp/hotelbackend/screens/CatalogScreens.xml 2006-01-24 06:47:05 UTC (rev 6558)
@@ -679,6 +679,10 @@
<set field="productStoreId" from-scope="user" from-field="productStoreId" global="true"/>
<set field="productCategoryId" from-field="parameters.showProductCategoryId"/>
<set field="productCategoryId" from-field="parameters.productCategoryId" default-value="${productCategoryId}"/>
+ <entity-one entity-name="PartyAcctgPreference" value-name="partyAcctgPreference" use-cache="true">
+ <field-map field-name="partyId" value="${parameters.userLogin.partyId}"/>
+ </entity-one>
+ <set field="prefix" from-field="partyAcctgPreference.invoiceIdPrefix"/>
<entity-one entity-name="ProductCategory" value-name="productCategory"/>
<entity-condition entity-name="ProductCategoryRollup" list-name="currentProductCategoryRollups">
Modified: trunk/specialized/opentravelsystem/webapp/hotelbackend/screens/MainScreens.xml
===================================================================
--- trunk/specialized/opentravelsystem/webapp/hotelbackend/screens/MainScreens.xml 2006-01-24 06:28:34 UTC (rev 6557)
+++ trunk/specialized/opentravelsystem/webapp/hotelbackend/screens/MainScreens.xml 2006-01-24 06:47:05 UTC (rev 6558)
@@ -43,7 +43,7 @@
<decorator-screen name="CatalogDecorator" location="${parameters.mainDecoratorLocation}">
<decorator-section name="body">
<!--content content-id="otsfrontpage"/--> <!-- get page from internal cms instead of main.ftl below-->
- <content content-id="testcontent"/> <!-- xml/xsl test-->
+ <!--content content-id="testcontent"/--> <!-- xml/xsl test-->
<platform-specific>
<html>
<html-template location="component://opentravelsystem/webapp/hotelbackend/main.ftl"/>
Added: trunk/specialized/opentravelsystem/webapp/hotelfrontend/hotelfrontendimages/products/small/Shop-cap.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/specialized/opentravelsystem/webapp/hotelfrontend/hotelfrontendimages/products/small/Shop-cap.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/specialized/opentravelsystem/webapp/newShop/WEB-INF/controller.xml
===================================================================
--- trunk/specialized/opentravelsystem/webapp/newShop/WEB-INF/controller.xml 2006-01-24 06:28:34 UTC (rev 6557)
+++ trunk/specialized/opentravelsystem/webapp/newShop/WEB-INF/controller.xml 2006-01-24 06:47:05 UTC (rev 6558)
@@ -0,0 +1,1287 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ * Copyright (c) 2001-2005 The Open For Business Project - www.ofbiz.org
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
+ * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+-->
+
+<site-conf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/site-conf.xsd">
+ <description>OFBiz: OpenTravelSystem eCommerce Controller Configuration File</description>
+ <owner>The Open For Business Project Copyright (c) 2001-2005</owner>
+ <errorpage>/error/error.jsp</errorpage>
+
+ <handler name="java" type="request" class="org.ofbiz.webapp.event.JavaEventHandler"/>
+ <handler name="bsf" type="request" class="org.ofbiz.webapp.event.BsfEventHandler"/>
+ <handler name="soap" type="request" class="org.ofbiz.webapp.event.SOAPEventHandler"/>
+ <handler name="service" type="request" class="org.ofbiz.webapp.event.ServiceEventHandler"/>
+ <handler name="service-multi" type="request" class="org.ofbiz.webapp.event.ServiceMultiEventHandler"/>
+ <handler name="simple" type="request" class="org.ofbiz.webapp.event.SimpleEventHandler"/>
+
+ <handler name="jsp" type="view" class="org.ofbiz.webapp.view.JspViewHandler"/>
+ <handler name="http" type="view" class="org.ofbiz.webapp.view.HttpViewHandler"/>
+ <handler name="screen" type="view" class="org.ofbiz.widget.screen.ScreenWidgetViewHandler"/>
+
+ <!-- Events run from here for the first hit in a visit -->
+ <firstvisit>
+ <event type="java" path="org.ofbiz.securityext.login.LoginEvents" invoke="autoLoginCheck"/>
+ <event type="java" path="org.ofbiz.marketing.tracking.TrackingCodeEvents" invoke="checkTrackingCodeCookies"/>
+ <event type="java" path="org.ofbiz.product.product.ProductEvents" invoke="setDefaultStoreSettings"/>
+ </firstvisit>
+
+ <!-- Events to run on every request before security (chains exempt) -->
+ <preprocessor>
+ <!-- This event allows affilate/distributor entry on any page -->
+ <event type="java" path="org.ofbiz.securityext.login.LoginEvents" invoke="checkExternalLoginKey"/>
+ <event type="java" path="org.ofbiz.ecommerce.misc.ThirdPartyEvents" invoke="setAssociationId"/>
+ <event type="java" path="org.ofbiz.marketing.tracking.TrackingCodeEvents" invoke="checkTrackingCodeUrlParam"/>
+ <event type="java" path="org.ofbiz.marketing.tracking.TrackingCodeEvents" invoke="checkPartnerTrackingCodeUrlParam"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.ShoppingCartEvents" invoke="keepCartUpdated"/>
+ <event type="java" path="org.ofbiz.order.shoppinglist.ShoppingListEvents" invoke="restoreAutoSaveList"/>
+ </preprocessor>
+
+ <!-- Events to run on every request after all other processing (chains exempt) -->
+ <!--
+ <postprocessor>
+ <event type="java" path="org.ofbiz.webapp.event.TestEvent" invoke="test"/>
+ </postprocessor>
+ -->
+
+ <after-login>
+ <event type="java" path="org.ofbiz.ecommerce.misc.ThirdPartyEvents" invoke="updateAssociatedDistributor"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.ShoppingCartEvents" invoke="keepCartUpdated"/>
+ <!-- after login, get everything from the auto-save list -->
+ <event type="java" path="org.ofbiz.order.shoppinglist.ShoppingListEvents" invoke="restoreAutoSaveList"/>
+ <!-- after login and restoring from the auto-save list, save everything to the auto-save list to handle anything that may have already been in the cart before login -->
+ <event type="java" path="org.ofbiz.order.shoppinglist.ShoppingListEvents" invoke="saveCartToAutoSaveList"/>
+ </after-login>
+
+ <!-- Security Mappings -->
+ <request-map uri="checkLogin" edit="false">
+ <description>Verify a user is logged in.</description>
+ <security https="true" auth="false"/>
+ <event type="java" path="org.ofbiz.securityext.login.LoginEvents" invoke="storeCheckLogin"/>
+ <response name="success" type="view" value="main"/>
+ <response name="error" type="view" value="login"/>
+ </request-map>
+ <request-map uri="login">
+ <security https="true" auth="false"/>
+ <event type="java" path="org.ofbiz.securityext.login.LoginEvents" invoke="storeLogin"/>
+ <response name="success" type="view" value="main"/>
+ <response name="error" type="view" value="login"/>
+ </request-map>
+ <request-map uri="logout">
+ <security https="true" auth="true"/>
+ <event type="java" path="org.ofbiz.securityext.login.LoginEvents" invoke="logout"/>
+ <response name="success" type="request" value="checkLogin"/>
+ <response name="error" type="view" value="main"/>
+ </request-map>
+ <request-map uri="autoLogout">
+ <security https="true" auth="false"/>
+ <event type="java" path="org.ofbiz.securityext.login.LoginEvents" invoke="autoLoginRemove"/>
+ <response name="success" type="request" value="checkLogin"/>
+ <response name="error" type="view" value="main"/>
+ </request-map>
+ <!-- End of Security Mappings -->
+
+ <!-- Request Mappings -->
+ <request-map uri="setdistributor">
+ <security https="true" auth="false"/>
+ <event type="java" path="org.ofbiz.ecommerce.misc.ThirdPartyEvents" invoke="setAssociationId"/>
+ <response name="success" type="view" value="main"/>
+ <response name="error" type="view" value="main"/>
+ </request-map>
+
+ <request-map uri="view">
+ <security https="false" auth="false"/>
+ <response name="success" type="view" value="main"/>
+ <response name="error" type="view" value="error"/>
+ </request-map>
+ <request-map uri="authview">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="main"/>
+ <response name="error" type="view" value="error"/>
+ </request-map>
+
+ <request-map uri="main">
+ <security https="false" auth="false"/>
+ <response name="success" type="view" value="main"/>
+ </request-map>
+
+ <request-map uri="passwordemail">
+ <security https="false" auth="false"/>
+ <response name="success" type="view" value="passwordemail"/>
+ </request-map>
+
+ <request-map uri="setSessionLocale">
+ <security https="false" auth="false"/>
+ <event type="java" path="org.ofbiz.common.CommonEvents" invoke="setSessionLocale"/>
+ <response name="success" type="view" value="main"/>
+ <response name="error" type="view" value="main"/>
+ </request-map>
+
+ <request-map uri="setSessionCurrencyUom">
+ <security https="false" auth="false"/>
+ <event type="java" path="org.ofbiz.common.CommonEvents" invoke="setSessionCurrencyUom"/>
+ <response name="success" type="view" value="main"/>
+ <response name="error" type="view" value="main"/>
+ </request-map>
+
+ <request-map uri="setSessionProductStore">
+ <security https="false" auth="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.product.ProductStoreCartAwareEvents" invoke="setSessionProductStore"/>
+ <response name="success" type="view" value="main"/>
+ <response name="error" type="view" value="main"/>
+ </request-map>
+
+ <request-map uri="editShoppingList">
+ <security auth="true" https="false"/>
+ <response name="success" type="view" value="editShoppingList"/>
+ </request-map>
+
+ <request-map uri="createEmptyShoppingList">
+ <security auth="true" https="false"/>
+ <event type="service" path="" invoke="createShoppingList"/>
+ <response name="success" type="view" value="editShoppingList"/>
+ <response name="error" type="view" value="editShoppingList"/>
+ </request-map>
+
+ <request-map uri="createShoppingListFromOrder">
+ <security auth="true" https="false"/>
+ <event type="service" path="" invoke="makeShoppingListFromOrder"/>
+ <response name="success" type="view" value="editShoppingList"/>
+ <response name="error" type="view" value="orderstatus"/>
+ </request-map>
+
+ <request-map uri="updateShoppingList">
+ <security auth="true" https="false"/>
+ <event type="service" path="" invoke="updateShoppingList"/>
+ <response name="success" type="view" value="editShoppingList"/>
+ <response name="error" type="view" value="editShoppingList"/>
+ </request-map>
+
+ <request-map uri="addItemToShoppingList">
+ <security auth="true" https="false"/>
+ <event type="service" path="" invoke="createShoppingListItem"/>
+ <response name="success" type="view" value="editShoppingList"/>
+ <response name="error" type="view" value="editShoppingList"/>
+ </request-map>
+
+ <request-map uri="addBulkToShoppingList">
+ <security auth="true" https="false"/>
+ <event type="java" path="org.ofbiz.order.shoppinglist.ShoppingListEvents" invoke="addBulkFromCart"/>
+ <response name="success" type="view" value="editShoppingList"/>
+ <response name="error" type="view" value="showcart"/>
+ </request-map>
+
+ <request-map uri="addListToCart">
+ <security auth="true" https="false"/>
+ <event type="java" path="org.ofbiz.order.shoppinglist.ShoppingListEvents" invoke="addListToCart"/>
+ <response name="success" type="view" value="showcart"/>
+ <response name="error" type="view" value="editShoppingList"/>
+ </request-map>
+
+ <request-map uri="updateShoppingListItem">
+ <security auth="true" https="false"/>
+ <event type="service" path="" invoke="updateShoppingListItem"/>
+ <response name="success" type="view" value="editShoppingList"/>
+ <response name="error" type="view" value="editShoppingList"/>
+ </request-map>
+
+ <request-map uri="removeFromShoppingList">
+ <security auth="true" https="false"/>
+ <event type="service" path="" invoke="removeShoppingListItem"/>
+ <response name="success" type="view" value="editShoppingList"/>
+ <response name="error" type="view" value="editShoppingList"/>
+ </request-map>
+
+ <request-map uri="replaceShoppingListItem">
+ <security auth="true" https="false"/>
+ <event type="java" path="org.ofbiz.order.shoppinglist.ShoppingListEvents" invoke="replaceShoppingListItem"/>
+ <response name="success" type="view" value="editShoppingList"/>
+ <response name="error" type="view" value="editShoppingList"/>
+ </request-map>
+
+ <request-map uri="addpromocode">
+ <security https="false" auth="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.ShoppingCartEvents" invoke="addProductPromoCode"/>
+ <response name="success" type="view" value="showcart"/>
+ <response name="error" type="view" value="showcart"/>
+ </request-map>
+
+ <request-map uri="additem">
+ <security https="false" auth="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.ShoppingCartEvents" invoke="addToCart"/>
+ <response name="success" type="view" value="showcart"/>
+ <response name="survey" type="view" value="survey"/>
+ <response name="viewcart" type="request-redirect" value="showcart"/>
+ <response name="error" type="view" value="showcart"/>
+ </request-map>
+
+ <request-map uri="additemsurvey">
+ <security https="false" auth="false"/>
+ <event type="service" invoke="createSurveyResponse"/>
+ <response name="success" type="request" value="additem"/>
+ <response name="error" type="view" value="main"/>
+ </request-map>
+
+ <request-map uri="addordertocart">
+ <security https="true" auth="true"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.ShoppingCartEvents" invoke="addToCartFromOrder"/>
+ <response name="success" type="view" value="showcart"/>
+ <response name="error" type="view" value="orderstatus"/>
+ </request-map>
+
+ <request-map uri="addtocartbulk">
+ <security https="false" auth="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.ShoppingCartEvents" invoke="addToCartBulk"/>
+ <response name="success" type="view" value="quickadd"/>
+ <response name="error" type="view" value="quickadd"/>
+ </request-map>
+ <request-map uri="addCategoryDefaults">
+ <security https="false" auth="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.ShoppingCartEvents" invoke="addCategoryDefaults"/>
+ <response name="success" type="view" value="showcart"/>
+ <response name="error" type="view" value="showcart"/>
+ </request-map>
+
+ <request-map uri="addseperator">
+ <security https="false" auth="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.ShoppingCartEvents" invoke="addSeparator"/>
+ <response name="success" type="view" value="showcart"/>
+ <response name="error" type="view" value="showcart"/>
+ </request-map>
+
+ <request-map uri="showcart">
+ <security https="false" auth="false"/>
+ <response name="success" type="view" value="showcart"/>
+ </request-map>
+ <request-map uri="modifycart">
+ <security https="false" auth="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.ShoppingCartEvents" invoke="modifyCart"/>
+ <response name="success" type="view" value="showcart"/>
+ <response name="error" type="view" value="showcart"/>
+ </request-map>
+ <request-map uri="emptycart">
+ <security https="false" auth="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.ShoppingCartEvents" invoke="clearCart"/>
+ <response name="success" type="view" value="showcart"/>
+ <response name="error" type="view" value="showcart"/>
+ </request-map>
+
+ <request-map uri="setDesiredAlternateGwpProductId">
+ <security https="false" auth="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.ShoppingCartEvents" invoke="setDesiredAlternateGwpProductId"/>
+ <response name="success" type="view" value="showcart"/>
+ <response name="error" type="view" value="showcart"/>
+ </request-map>
+
+ <request-map uri="showAllPromotions">
+ <security https="false" auth="false"/>
+ <response name="success" type="view" value="showAllPromotions"/>
+ </request-map>
+ <request-map uri="showPromotionDetails">
+ <security https="false" auth="false"/>
+ <response name="success" type="view" value="showPromotionDetails"/>
+ </request-map>
+
+ <!-- anonymous checkout requests -->
+ <request-map uri="setCustomer">
+ <security https="true" auth="false"/>
+ <response name="success" type="view" value="custsetting"/>
+ </request-map>
+ <request-map uri="setBasicInfo">
+ <security https="true" auth="false"/>
+ <event type="simple" path="org/ofbiz/opentravelsystem/customer/CustomerEvents.xml" invoke="createCustomer"/>
+ <response name="success" type="request" value="finalizeOrder"/>
+ <response name="error" type="view" value="custsetting"/>
+ </request-map>
+ <request-map uri="setShipping">
+ <security https="true" auth="false"/>
+ <response name="success" type="view" value="shipsetting"/>
+ </request-map>
+ <request-map uri="enterShippingAddress">
+ <security https="true" auth="false"/>
+ <event type="service" invoke="createPartyPostalAddress"/>
+ <response name="success" type="request" value="finalizeOrder"/>
+ <response name="error" type="view" value="shipsetting"/>
+ </request-map>
+ <request-map uri="changeShippingAddress">
+ <security https="true" auth="false"/>
+ <event type="service" invoke="updatePartyPostalAddress"/>
+ <response name="success" type="request" value="finalizeOrder"/>
+ <response name="error" type="view" value="shipsetting"/>
+ </request-map>
+ <request-map uri="setShipOptions">
+ <security https="true" auth="false"/>
+ <response name="success" type="view" value="optionsetting"/>
+ </request-map>
+ <request-map uri="setBilling">
+ <security https="true" auth="false"/>
+ <response name="success" type="view" value="billsetting"/>
+ </request-map>
+ <request-map uri="enterCreditCardAndBillingAddress">
+ <security https="true" auth="false"/>
+ <event type="service" path="" invoke="createCreditCardAndAddress"/>
+ <response name="success" type="request" value="finalizeOrder"/>
+ <response name="error" type="view" value="billsetting"/>
+ </request-map>
+ <request-map uri="enterCreditCard">
+ <security https="true" auth="false"/>
+ <event type="service" path="" invoke="createCreditCard"/>
+ <response name="success" type="request" value="finalizeOrder"/>
+ <response name="error" type="view" value="billsetting"/>
+ </request-map>
+ <request-map uri="changeCreditCardAndBillingAddress">
+ <security https="true" auth="false"/>
+ <event type="service" path="" invoke="updateCreditCardAndAddress"/>
+ <response name="success" type="request" value="finalizeOrder"/>
+ <response name="error" type="view" value="billsetting"/>
+ </request-map>
+ <request-map uri="enterEftAccountAndBillingAddress">
+ <security https="true" auth="false"/>
+ <event type="service" path="" invoke="createEftAccountAndAddress"/>
+ <response name="success" type="request" value="finalizeOrder"/>
+ <response name="error" type="view" value="billsetting"/>
+ </request-map>
+ <request-map uri="enterEftAccount">
+ <security https="true" auth="false"/>
+ <event type="service" path="" invoke="createEftAccount"/>
+ <response name="success" type="request" value="finalizeOrder"/>
+ <response name="error" type="view" value="billsetting"/>
+ </request-map>
+ <request-map uri="changeEftAccountAndBillingAddress">
+ <security https="true" auth="false"/>
+ <event type="service" path="" invoke="updateEftAccountAndAddress"/>
+ <response name="success" type="request" value="finalizeOrder"/>
+ <response name="error" type="view" value="billsetting"/>
+ </request-map>
+ <request-map uri="finalizeOrder">
+ <security https="true" auth="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.CheckOutEvents" invoke="finalizeOrderEntry"/>
+ <response name="customer" type="view" value="custsetting"/>
+ <response name="shipping" type="view" value="shipsetting"/>
+ <response name="options" type="view" value="optionsetting"/>
+ <response name="payment" type="view" value="billsetting"/>
+ <response name="addparty" type="view" value="checkoutreview"/> <!-- this actually wants to go to a page to set another party, but for ecommerce we'll skip it and go to review and checkout -->
+ <response name="paysplit" type="view" value="checkoutpayment"/>
+ <response name="sales" type="request" value="calcShipping"/>
+ <response name="error" type="request" value="finalizeOrderError"/>
+ </request-map>
+ <request-map uri="finalizeOrderError">
+ <security direct-request="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.CheckOutEvents" invoke="finalizeOrderEntryError"/>
+ <response name="customer" type="view" value="custsetting"/>
+ <response name="shipping" type="view" value="shipsetting"/>
+ <response name="options" type="view" value="optionsetting"/>
+ <response name="payment" type="view" value="billsetting"/>
+ <response name="paysplit" type="view" value="checkoutpayment"/>
+ <response name="sales" type="request" value="calcShipping"/>
+ <response name="error" type="view" value="showcart"/>
+ </request-map>
+ <!-- end of anonymous checkout requests -->
+
+ <request-map uri="checkoutpayment">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="checkoutpayment"/>
+ </request-map>
+ <request-map uri="checkoutoptions">
+ <security https="true" auth="true"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.CheckOutEvents" invoke="setCheckOutPages"/>
+ <response name="shippingaddress" type="view" value="checkoutshippingaddress"/>
+ <response name="shippingoptions" type="view" value="checkoutshippingoptions"/>
+ <response name="payment" type="view" value="checkoutpayment"/>
+ <response name="confirm" type="request" value="calcShipping"/>
+ <response name="success" type="view" value="checkoutshippingaddress"/>
+ <response name="error" type="request" value="checkouterror"/>
+ </request-map>
+ <request-map uri="checkouterror">
+ <security https="true" auth="true"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.CheckOutEvents" invoke="setCheckOutError"/>
+ <response name="shippingaddress" type="view" value="checkoutshippingaddress"/>
+ <response name="shippingoptions" type="view" value="checkoutshippingoptions"/>
+ <response name="payment" type="view" value="checkoutpayment"/>
+ <response name="confirm" type="request" value="calcShipping"/>
+ <response name="quick" type="view" value="quickcheckout"/>
+ <response name="error" type="view" value="checkoutshippingaddress"/>
+ <response name="success" type="view" value="checkoutshippingaddress"/>
+ </request-map>
+ <request-map uri="quickcheckout">
+ <security https="true" auth="true"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.CheckOutEvents" invoke="cartNotEmpty"/>
+ <response name="success" type="view" value="quickcheckout"/>
+ <response name="error" type="view" value="main"/>
+ </request-map>
+
+ <request-map uri="splitship">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="splitship"/>
+ </request-map>
+ <request-map uri="updatesplit">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="assignItemShipGroup"/>
+ <response name="success" type="view" value="splitship"/>
+ <response name="error" type="view" value="splitship"/>
+ </request-map>
+
+ <request-map uri="checkout">
+ <security https="true" auth="true"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.CheckOutEvents" invoke="cartNotEmpty"/>
+ <response name="success" type="request" value="setOptions"/>
+ <response name="error" type="view" value="showcart"/>
+ </request-map>
+
+ <!-- old checkout options events -->
+ <request-map uri="updateCheckoutOptions">
+ <security https="true" auth="true"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.CheckOutEvents" invoke="setPartialCheckOutOptions"/>
+ <response name="success" type="view" value="checkoutshippingaddress"/>
+ <response name="error" type="request" value="checkouterror"/>
+ </request-map>
+ <request-map uri="setOptions">
+ <security https="true" auth="true" direct-request="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.CheckOutEvents" invoke="setCheckOutOptions"/>
+ <response name="success" type="request" value="calcShipping"/>
+ <response name="error" type="request" value="checkouterror"/>
+ </request-map>
+
+ <!-- new checkout option services -->
+ <request-map uri="updateShippingAddress">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="setCartShippingAddress"/>
+ <response name="success" type="view" value="splitship"/>
+ <response name="error" type="request" value="splitship"/>
+ </request-map>
+ <request-map uri="updateShippingOptions">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="setCartShippingOptions"/>
+ <response name="success" type="view" value="splitship"/>
+ <response name="error" type="request" value="splitship"/>
+ </request-map>
+
+ <request-map uri="calcShipping">
+ <security direct-request="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.shipping.ShippingEvents" invoke="getShipEstimate"/>
+ <response name="success" type="request" value="calcTax"/>
+ <response name="error" type="request" value="checkouterror"/>
+ </request-map>
+ <request-map uri="calcTax">
+ <security direct-request="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.CheckOutEvents" invoke="calcTax"/>
+ <response name="success" type="request" value="validatePaymentMethods"/>
+ <response name="error" type="request" value="checkouterror"/>
+ </request-map>
+
+ <request-map uri="validatePaymentMethods">
+ <security direct-request="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.CheckOutEvents" invoke="checkPaymentMethods"/>
+ <response name="success" type="view" value="checkoutreview"/>
+ <response name="error" type="request" value="checkouterror"/>
+ </request-map>
+
+ <request-map uri="checkBlacklist">
+ <security direct-request="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.CheckOutEvents" invoke="checkOrderBlacklist"/>
+ <response name="success" type="request" value="processpayment"/>
+ <response name="failed" type="request" value="failedBlacklist"/>
+ <response name="error" type="view" value="checkoutreview"/>
+ </request-map>
+ <request-map uri="failedBlacklist">
+ <security direct-request="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.CheckOutEvents" invoke="failedBlacklistCheck"/>
+ <response name="success" type="view" value="main"/>
+ <response name="error" type="view" value="error"/>
+ </request-map>
+
+ <request-map uri="processorder">
+ <security https="true" auth="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.CheckOutEvents" invoke="createOrder"/>
+ <response name="sales_order" type="request" value="checkBlacklist"/>
+ <response name="work_order" type="request" value="checkBlacklist"/>
+ <response name="error" type="view" value="checkoutreview"/>
+ </request-map>
+ <request-map uri="processpayment">
+ <security https="true" direct-request="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.CheckOutEvents" invoke="processPayment"/>
+ <response name="success" type="request" value="clearcartfororder"/>
+ <response name="fail" type="request" value="checkouterror"/>
+ <response name="error" type="view" value="checkoutreview"/>
+ </request-map>
+ <request-map uri="clearcartfororder">
+ <security direct-request="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.ShoppingCartEvents" invoke="clearCart"/>
+ <response name="success" type="request" value="checkExternalPayment"/>
+ <response name="error" type="view" value="checkoutreview"/>
+ </request-map>
+
+ <request-map uri="checkExternalPayment">
+ <security https="true" direct-request="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.CheckOutEvents" invoke="checkExternalPayment"/>
+ <response name="none" type="request" value="emailorder"/>
+ <response name="offline" type="request" value="emailorder"/>
+ <response name="worldpay" type="request" value="callWorldPay"/>
+ <response name="paypal" type="request" value="callPayPal"/>
+ <response name="billact" type="request" value="emailorder"/>
+ <response name="cod" type="request" value="emailorder"/>
+ <response name="error" type="view" value="checkoutreview"/>
+ </request-map>
+
+ <request-map uri="emailorder">
+ <security https="true" direct-request="false"/>
+ <event type="service" path="async" invoke="sendOrderConfirmation"/>
+ <response name="success" type="view" value="ordercomplete"/>
+ <response name="error" type="view" value="ordercomplete"/>
+ </request-map>
+
+ <request-map uri="callWorldPay">
+ <security https="true" direct-request="false"/>
+ <event type="java" path="org.ofbiz.accounting.thirdparty.worldpay.WorldPayEvents" invoke="worldPayRequest"/>
+ <response name="success" type="none"/>
+ <response name="error" type="view" value="checkoutreview"/>
+ </request-map>
+
+ <request-map uri="callPayPal">
+ <security https="true" direct-request="false"/>
+ <event type="java" path="org.ofbiz.accounting.thirdparty.paypal.PayPalEvents" invoke="callPayPal"/>
+ <response name="success" type="none"/>
+ <response name="error" type="view" value="checkoutreview"/>
+ </request-map>
+ <request-map uri="payPalNotify">
+ <security https="false"/>
+ <event type="java" path="org.ofbiz.accounting.thirdparty.paypal.PayPalEvents" invoke="payPalIPN"/>
+ <response name="success" type="none"/>
+ <response name="error" type="view" value="checkoutreview"/>
+ </request-map>
+ <request-map uri="payPalCancel">
+ <security https="true"/>
+ <event type="java" path="org.ofbiz.accounting.thirdparty.paypal.PayPalEvents" invoke="cancelPayPalOrder"/>
+ <response name="success" type="view" value="main"/>
+ <response name="error" type="view" value="main"/>
+ </request-map>
+
+ <request-map uri="approveOrder">
+ <security https="true" direct-request="false"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.CheckOutEvents" invoke="autoApproveOrder"/>
+ <response name="success" type="view" value="ordercomplete"/>
+ </request-map>
+
+ <request-map uri="confirmorder">
+ <security https="false" auth="false"/>
+ <response name="success" type="view" value="confirmorder"/>
+ </request-map>
+
+ <request-map uri="catalog">
+ <security https="false" auth="false"/>
+ <response name="success" type="view" value="catalog"/>
+ </request-map>
+ <request-map uri="quickadd">
+ <security https="false" auth="false"/>
+ <response name="success" type="view" value="quickadd"/>
+ </request-map>
+ <request-map uri="category">
+ <security https="false" auth="false"/>
+ <response name="success" type="view" value="category"/>
+ </request-map>
+ <request-map uri="product">
+ <security https="false" auth="false"/>
+ <response name="success" type="view" value="product"/>
+ </request-map>
+ <request-map uri="detailImage">
+ <security https="false" auth="false"/>
+ <response name="success" type="view" value="detailImage"/>
+ </request-map>
+ <request-map uri="crosssell">
+ <security https="false" auth="false"/>
+ <response name="success" type="view" value="product"/>
+ </request-map>
+ <request-map uri="upsell">
+ <security https="false" auth="false"/>
+ <response name="success" type="view" value="product"/>
+ </request-map>
+
+ <request-map uri="clearLastViewed">
+ <security https="false" auth="false"/>
+ <event type="java" path="org.ofbiz.product.product.ProductEvents" invoke="clearAllLastViewed"/>
+ <response name="success" type="view" value="main"/>
+ <response name="error" type="view" value="main"/>
+ </request-map>
+ <request-map uri="lastviewedproducts">
+ <security https="false" auth="false"/>
+ <response name="success" type="view" value="lastviewedproducts"/>
+ </request-map>
+
+ <request-map uri="reviewProduct">
+ <security https="false" auth="true"/>
+ <response name="success" type="view" value="productReview"/>
+ </request-map>
+ <request-map uri="createProductReview">
+ <security https="false" auth="true"/>
+ <event type="service" invoke="createProductReview"/>
+ <response name="success" type="view" value="product"/>
+ <response name="error" type="view" value="product"/>
+ </request-map>
+
+ <request-map uri="advancedsearch">
+ <security https="false" auth="false"/>
+ <response name="success" type="view" value="advancedsearch"/>
+ </request-map>
+ <request-map uri="keywordsearch">
+ <security https="false" auth="false"/>
+ <event type="java" path="org.ofbiz.product.product.ProductSearchSession" invoke="checkDoKeywordOverride"/>
+ <response name="success" type="view" value="keywordsearch"/>
+ <response name="none" type="none" value=""/>
+ </request-map>
+ <request-map uri="clearSearchOptionsHistoryList">
+ <security https="false" auth="false"/>
+ <event type="java" path="org.ofbiz.product.product.ProductSearchSession" invoke="clearSearchOptionsHistoryList"/>
+ <response name="success" type="view" value="advancedsearch"/>
+ <response name="error" type="view" value="advancedsearch"/>
+ </request-map>
+ <request-map uri="setCurrentSearchFromHistory">
+ <security https="false" auth="false"/>
+ <event type="java" path="org.ofbiz.product.product.ProductSearchSession" invoke="setCurrentSearchFromHistory"/>
+ <response name="success" type="view" value="advancedsearch"/>
+ <response name="error" type="view" value="advancedsearch"/>
+ </request-map>
+ <request-map uri="setCurrentSearchFromHistoryAndSearch">
+ <security https="false" auth="false"/>
+ <event type="java" path="org.ofbiz.product.product.ProductSearchSession" invoke="setCurrentSearchFromHistory"/>
+ <response name="success" type="request" value="keywordsearch"/>
+ <response name="error" type="view" value="advancedsearch"/>
+ </request-map>
+
+ <request-map uri="orderhistory">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="orderhistory"/>
+ </request-map>
+ <request-map uri="orderstatus">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="orderstatus"/>
+ </request-map>
+ <request-map uri="allowordersplit">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="setAllowOrderSplit"/>
+ <response name="success" type="view" value="orderstatus"/>
+ <response name="error" type="view" value="orderstatus"/>
+ </request-map>
+ <request-map uri="cancelOrderItem">
+ <security https="true" auth="true"/>
+ <event type="java" path="org.ofbiz.order.shoppingcart.CheckOutEvents" invoke="cancelOrderItem"/>
+ <response name="success" type="view" value="orderstatus"/>
+ <response name="error" type="view" value="orderstatus"/>
+ </request-map>
+
+ <request-map uri="makeReturn">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="requestreturn"/>
+ </request-map>
+ <request-map uri="requestReturn">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="createReturnHeader"/>
+ <response name="success" type="request" value="setReturnItems"/>
+ <response name="error" type="view" value="orderstatus"/>
+ </request-map>
+ <request-map uri="setReturnItems">
+ <security https="true" auth="true" direct-request="false"/>
+ <event type="service-multi" invoke="createReturnItem"/>
+ <response name="success" type="view" value="orderstatus"/>
+ <response name="error" type="view" value="orderstatus"/>
+ </request-map>
+
+ <request-map uri="newcustomer">
+ <security https="true" auth="false"/>
+ <response name="success" type="view" value="newcustomer"/>
+ </request-map>
+ <request-map uri="createcustomer">
+ <security https="true" auth="false"/>
+ <event type="simple" path="org/ofbiz/opentravelsystem/customer/CustomerEvents.xml" invoke="createCustomer"/>
+ <response name="success" type="view" value="main"/>
+ <response name="error" type="view" value="newcustomer"/>
+ </request-map>
+
+ <request-map uri="viewprofile">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="viewprofile"/>
+ </request-map>
+
+ <request-map uri="createCustomerTaxAuthInfo">
+ <security https="true" auth="true"/>
+ <event type="service" path="" invoke="createCustomerTaxAuthInfo"/>
+ <response name="success" type="view" value="viewprofile"/>
+ <response name="error" type="view" value="viewprofile"/>
+ </request-map>
+ <request-map uri="updateCustomerTaxAuthInfo">
+ <security https="true" auth="true"/>
+ <event type="service" path="" invoke="updatePartyTaxAuthInfo"/>
+ <response name="success" type="view" value="viewprofile"/>
+ <response name="error" type="view" value="viewprofile"/>
+ </request-map>
+ <request-map uri="deleteCustomerTaxAuthInfo">
+ <security https="true" auth="true"/>
+ <event type="service" path="" invoke="deletePartyTaxAuthInfo"/>
+ <response name="success" type="view" value="viewprofile"/>
+ <response name="error" type="view" value="viewprofile"/>
+ </request-map>
+
+ <request-map uri="editcontactmech">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="editcontactmech"/>
+ </request-map>
+ <request-map uri="createContactMech">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="createPartyContactMech"/>
+ <response name="success" type="view" value="editcontactmech"/>
+ <response name="error" type="view" value="editcontactmech"/>
+ </request-map>
+ <request-map uri="updateContactMech">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="updatePartyContactMech"/>
+ <response name="success" type="view" value="editcontactmech"/>
+ <response name="error" type="view" value="editcontactmech"/>
+ </request-map>
+ <request-map uri="deleteContactMech">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="deletePartyContactMech"/>
+ <response name="success" type="view" value="editcontactmech"/>
+ <response name="error" type="view" value="editcontactmech"/>
+ </request-map>
+
+ <request-map uri="createPostalAddressAndPurpose">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="createPartyPostalAddress"/>
+ <response name="success" type="view" value="editcontactmech"/>
+ <response name="error" type="view" value="editcontactmech"/>
+ </request-map>
+ <request-map uri="createPostalAddress">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="createPartyPostalAddress"/>
+ <response name="success" type="view" value="editcontactmech"/>
+ <response name="error" type="view" value="editcontactmech"/>
+ </request-map>
+ <request-map uri="updatePostalAddress">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="updatePartyPostalAddress"/>
+ <response name="success" type="view" value="editcontactmech"/>
+ <response name="error" type="view" value="editcontactmech"/>
+ </request-map>
+
+ <request-map uri="createTelecomNumber">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="createPartyTelecomNumber"/>
+ <response name="success" type="view" value="editcontactmech"/>
+ <response name="error" type="view" value="editcontactmech"/>
+ </request-map>
+ <request-map uri="updateTelecomNumber">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="updatePartyTelecomNumber"/>
+ <response name="success" type="view" value="editcontactmech"/>
+ <response name="error" type="view" value="editcontactmech"/>
+ </request-map>
+
+ <request-map uri="createEmailAddress">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="createPartyEmailAddress"/>
+ <response name="success" type="view" value="editcontactmech"/>
+ <response name="error" type="view" value="editcontactmech"/>
+ </request-map>
+ <request-map uri="updateEmailAddress">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="updatePartyEmailAddress"/>
+ <response name="success" type="view" value="editcontactmech"/>
+ <response name="error" type="view" value="editcontactmech"/>
+ </request-map>
+
+ <request-map uri="createPartyContactMechPurpose">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="createPartyContactMechPurpose"/>
+ <response name="success" type="view" value="editcontactmech"/>
+ <response name="error" type="view" value="editcontactmech"/>
+ </request-map>
+ <request-map uri="deletePartyContactMechPurpose">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="deletePartyContactMechPurpose"/>
+ <response name="success" type="view" value="editcontactmech"/>
+ <response name="error" type="view" value="editcontactmech"/>
+ </request-map>
+
+ <request-map uri="editcreditcard">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="editcreditcard"/>
+ </request-map>
+ <request-map uri="createCreditCard">
+ <security https="true" auth="true"/>
+ <event type="simple" path="org/ofbiz/accounting/payment/PaymentMethodEvents.xml" invoke="createCreditCard"/>
+ <response name="success" type="view" value="editcreditcard"/>
+ <response name="address" type="view" value="editcontactmech"/>
+ <response name="error" type="view" value="editcreditcard"/>
+ </request-map>
+ <request-map uri="updateCreditCard">
+ <security https="true" auth="true"/>
+ <event type="simple" path="org/ofbiz/accounting/payment/PaymentMethodEvents.xml" invoke="updateCreditCard"/>
+ <response name="success" type="view" value="editcreditcard"/>
+ <response name="address" type="view" value="editcontactmech"/>
+ <response name="error" type="view" value="editcreditcard"/>
+ </request-map>
+
+ <request-map uri="editgiftcard">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="editgiftcard"/>
+ </request-map>
+ <request-map uri="createGiftCard">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="createGiftCard"/>
+ <response name="success" type="view" value="editgiftcard"/>
+ <response name="error" type="view" value="editgiftcard"/>
+ </request-map>
+ <request-map uri="updateGiftCard">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="updateGiftCard"/>
+ <response name="success" type="view" value="editgiftcard"/>
+ <response name="error" type="view" value="editgiftcard"/>
+ </request-map>
+
+ <request-map uri="editeftaccount">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="editeftaccount"/>
+ </request-map>
+ <request-map uri="createEftAccount">
+ <security https="true" auth="true"/>
+ <event type="simple" path="org/ofbiz/accounting/payment/PaymentMethodEvents.xml" invoke="createEftAccount"/>
+ <response name="success" type="view" value="editeftaccount"/>
+ <response name="error" type="view" value="editeftaccount"/>
+ </request-map>
+ <request-map uri="updateEftAccount">
+ <security https="true" auth="true"/>
+ <event type="simple" path="org/ofbiz/accounting/payment/PaymentMethodEvents.xml" invoke="updateEftAccount"/>
+ <response name="success" type="view" value="editeftaccount"/>
+ <response name="error" type="view" value="editeftaccount"/>
+ </request-map>
+
+ <request-map uri="deletePaymentMethod">
+ <security https="true" auth="true"/>
+ <event type="simple" path="org/ofbiz/accounting/payment/PaymentMethodEvents.xml" invoke="deletePaymentMethod"/>
+ <response name="success" type="view" value="viewprofile"/>
+ <response name="error" type="view" value="viewprofile"/>
+ </request-map>
+
+ <request-map uri="editperson">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="editperson"/>
+ </request-map>
+ <request-map uri="createPerson">
+ <security https="true" auth="true"/>
+ <event type="service" path="" invoke="createPerson"/>
+ <response name="success" type="view" value="editperson"/>
+ <response name="error" type="view" value="editperson"/>
+ </request-map>
+ <request-map uri="updatePerson">
+ <security https="true" auth="true"/>
+ <event type="service" path="" invoke="updatePerson"/>
+ <response name="success" type="view" value="editperson"/>
+ <response name="error" type="view" value="editperson"/>
+ </request-map>
+
+ <request-map uri="setprofiledefault">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="setPartyProfileDefaults"/>
+ <response name="success" type="view" value="viewprofile"/>
+ <response name="error" type="view" value="viewprofile"/>
+ </request-map>
+
+ <request-map uri="changepassword">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="changepassword"/>
+ </request-map>
+
+ <request-map uri="updatePassword">
+ <security https="true" auth="true"/>
+ <event type="simple" path="org/ofbiz/securityext/login/LoginSimpleEvents.xml" invoke="updatePassword"/>
+ <response name="success" type="view" value="changepassword"/>
+ <response name="error" type="view" value="changepassword"/>
+ </request-map>
+
+ <request-map uri="forgotpassword">
+ <security https="true" auth="false"/>
+ <event type="java" path="org.ofbiz.securityext.login.LoginEvents" invoke="forgotPassword"/>
+ <response name="success" type="view" value="login"/>
+ <response name="error" type="view" value="login"/>
+ </request-map>
+
+ <request-map uri="changeDelegator">
+ <security https="false" auth="false"/>
+ <event type="java" path="org.ofbiz.webapp.event.CoreEvents" invoke="changeDelegator"/>
+ <response name="success" type="view" value="main"/>
+ <response name="error" type="view" value="error"/>
+ </request-map>
+
+ <request-map uri="tellafriend">
+ <security https="false" auth="false"/>
+ <response name="success" type="view" value="tellafriend"/>
+ </request-map>
+ <request-map uri="emailFriend">
+ <security https="false" auth="false"/>
+ <event type="java" path="org.ofbiz.product.product.ProductEvents" invoke="tellAFriend"/>
+ <response name="success" type="view" value="tellafriend"/>
+ <response name="error" type="view" value="tellafriend"/>
+ </request-map>
+
+ <request-map uri="giftcardbalance">
+ <security https="true" auth="false"/>
+ <response name="success" type="view" value="giftcardbalance"/>
+ </request-map>
+ <request-map uri="querygcbalance">
+ <security https="true" auth="false"/>
+ <event type="service" invoke="balanceInquireGiftCard"/>
+ <response name="success" type="view" value="giftcardbalance"/>
+ <response name="error" type="view" value="giftcardbalance"/>
+ </request-map>
+
+ <request-map uri="giftcardlink">
+ <security https="true" auth="false"/>
+ <response name="success" type="view" value="giftcardlink"/>
+ </request-map>
+ <request-map uri="linkgiftcard">
+ <security https="true" auth="false"/>
+ <event type="service" invoke="linkPhysicalGiftCard"/>
+ <response name="success" type="view" value="giftcardlink"/>
+ <response name="error" type="view" value="giftcardlink"/>
+ </request-map>
+
+ <request-map uri="takesurvey">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="profilesurvey"/>
+ </request-map>
+ <request-map uri="profilesurvey">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="createSurveyResponse"/>
+ <response name="success" type="view" value="profilesurvey"/>
+ <response name="error" type="view" value="profilesurvey"/>
+ </request-map>
+ <request-map uri="minipoll">
+ <security https="false" auth="false"/>
+ <event type="service" invoke="createSurveyResponse"/>
+ <response name="success" type="view" value="main"/>
+ <response name="error" type="view" value="main"/>
+ </request-map>
+
+ <request-map uri="messagelist">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="messagelist"/>
+ </request-map>
+ <request-map uri="readmessage">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="markCommEventRead"/>
+ <response name="success" type="view" value="messagedetail"/>
+ <response name="error" type="view" value="messagedetail"/>
+ </request-map>
+ <request-map uri="newmessage">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="messagecreate"/>
+ </request-map>
+ <request-map uri="sendmessage">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="createCommunicationEvent"/>
+ <response name="success" type="view" value="messagelist"/>
+ <response name="error" type="view" value="messagecreate"/>
+ </request-map>
+
+ <request-map uri="contactus">
+ <security https="true" auth="true"/>
+ <response name="success" type="view" value="contactus"/>
+ </request-map>
+ <request-map uri="contactsubmit">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="createCommunicationEvent"/>
+ <response name="success" type="view" value="contactus"/>
+ <response name="error" type="view" value="contactus"/>
+ </request-map>
+
+ <request-map uri="defaultcontent">
+ <security https="true" auth="false"/>
+ <response name="success" type="view" value="defaultcontent"/>
+ </request-map>
+ <request-map uri="showforum">
+ <security https="true" auth="false"/>
+ <response name="success" type="view" value="showforum"/>
+ </request-map>
+ <request-map uri="showforumarticle">
+ <security https="true" auth="false"/>
+ <response name="su