diff --git a/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/model/CmaShopParagraphModel.java b/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/model/CmaShopParagraphModel.java index 024e7cc..9eb9648 100644 --- a/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/model/CmaShopParagraphModel.java +++ b/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/model/CmaShopParagraphModel.java @@ -18,7 +18,7 @@ import info.magnolia.context.MgnlContext; import info.magnolia.jcr.util.PropertyUtil; import info.magnolia.module.shop.ShopRepositoryConstants; -import info.magnolia.module.shop.paragraphs.ShopParagraphModel; +import info.magnolia.module.shop.components.ShopParagraphModel; import info.magnolia.module.shop.util.ShopUtil; import info.magnolia.module.templatingkit.STKModule; import info.magnolia.module.templatingkit.functions.STKTemplatingFunctions; diff --git a/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/processors/AbstractSendEmailProcessor.java b/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/processors/AbstractSendEmailProcessor.java index fb9c9c5..9c42f40 100644 --- a/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/processors/AbstractSendEmailProcessor.java +++ b/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/processors/AbstractSendEmailProcessor.java @@ -36,15 +36,16 @@ public void internalProcess(Node content, Map parameters) throws FormProcessorFailedException { // add current shopping cart to the parameters map - String cartId = (String) MgnlContext.getAttribute("cartId"); - DefaultShoppingCartImpl cart = (DefaultShoppingCartImpl) ShopUtil.getShoppingCart(); + //String cartId = (String) MgnlContext.getAttribute("cartId"); + DefaultShoppingCartImpl cart = (DefaultShoppingCartImpl) ShopUtil.getPreviousShoppingCart(ShopUtil.getShopName()); + //DefaultShoppingCartImpl cart = (DefaultShoppingCartImpl) ShopUtil.getShoppingCart(); if (cart == null) { throw new FormProcessorFailedException("cart.not.found"); } parameters.put("cart", cart); - parameters.put("cartId", cartId); + parameters.put("cartId", cart.getName()); } public void sendErrorMailNotification(Map params) throws FormProcessorFailedException { diff --git a/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/processors/SaveOrderFormProcessor.java b/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/processors/SaveOrderFormProcessor.java index 78d583a..9c03837 100644 --- a/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/processors/SaveOrderFormProcessor.java +++ b/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/processors/SaveOrderFormProcessor.java @@ -6,6 +6,8 @@ import info.magnolia.customerprojects.coop.marketing.lbk.template.service.CmaReportShopService; import info.magnolia.jcr.util.NodeUtil; import info.magnolia.module.form.processors.FormProcessorFailedException; +import info.magnolia.module.shop.ShopConfiguration; +import info.magnolia.module.shop.accessors.ShopAccessor; import info.magnolia.module.shop.beans.DefaultShoppingCartImpl; import info.magnolia.module.shop.util.ShopUtil; import info.magnolia.objectfactory.Components; @@ -14,7 +16,6 @@ import java.util.Map; import javax.jcr.Node; -import javax.jcr.RepositoryException; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; @@ -46,8 +47,18 @@ @Override public void internalProcess(Node content, Map parameters) throws FormProcessorFailedException { + String shopName = ShopUtil.getShopName(); + ShopConfiguration shopConfiguration = null; + try { - DefaultShoppingCartImpl defaultCart = (DefaultShoppingCartImpl) ShopUtil.getShoppingCart(); + shopConfiguration = new ShopAccessor(shopName).getShopConfiguration(); + } catch (Exception e) { + log.error("cant get shop configuration for " + shopName); + } + + try { + DefaultShoppingCartImpl defaultCart = (DefaultShoppingCartImpl) ShopUtil.getShoppingCart(shopName); + //DefaultShoppingCartImpl defaultCart = (DefaultShoppingCartImpl) ShopUtil.getShoppingCart(); if (defaultCart == null) { log.error("Shopping cart could not be found!"); throw new FormProcessorFailedException("cart.not.found"); @@ -60,15 +71,15 @@ defaultCart.setUserIP(request.getRemoteAddr() + ":" + request.getRemotePort()); // save via OCM - String cartUUID = saveViaOcm(defaultCart); + String cartUUID = saveViaOcm(defaultCart, shopConfiguration, shopName); // save extra value reportShopService.persist(NodeUtil.getNodeByIdentifier("shoppingCarts", cartUUID), parameters); } catch (Exception e) { // initialize new cart - MgnlContext.getWebContext().getRequest().getSession().removeAttribute(ShopUtil.ATTRIBUTE_SHOPPINGCART); - ShopUtil.setShoppingCartInSession(); +// MgnlContext.removeAttribute(shopName + "_" + ShopUtil.ATTRIBUTE_SHOPPINGCART); +// ShopUtil.setShoppingCartInSession(shopName); // send error mail notification to the logged user sendErrorMailNotification(parameters); throw new FormProcessorFailedException("Error while saving your shopping cart."); @@ -76,7 +87,7 @@ } - protected String saveViaOcm(DefaultShoppingCartImpl cart) throws RepositoryException { + protected String saveViaOcm(DefaultShoppingCartImpl cart, ShopConfiguration shopConfiguration, String shopName) throws Exception { Mapper mapper = new MgnlConfigMapperImpl(); RequestObjectCacheImpl requestObjectCache = new RequestObjectCacheImpl(); DefaultAtomicTypeConverterProvider converterProvider = new MgnlAtomicTypeConverterProvider(); @@ -90,11 +101,18 @@ // Cart has not been saved before (this would most likely be the standard case) // Set the parent path according to the shop configuration - cart.setParentPath("/" + ShopUtil.getShopName()); + String parentPath = "/" + shopName; + if (shopConfiguration != null) { + parentPath = shopConfiguration.getHierarchyStrategy().getCartParentPath(shopName); + } + cart.setParentPath(parentPath); ocm.insert(cart); ocm.save(); MgnlContext.setAttribute("cartId", cart.getName(), Context.SESSION_SCOPE); } + + ShopUtil.resetShoppingCart(shopName); + return cart.getUuid(); } } diff --git a/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/processors/SendConfirmationEmailProcessor.java b/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/processors/SendConfirmationEmailProcessor.java index ac518b2..4af52c7 100644 --- a/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/processors/SendConfirmationEmailProcessor.java +++ b/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/processors/SendConfirmationEmailProcessor.java @@ -1,13 +1,11 @@ package info.magnolia.customerprojects.coop.marketing.lbk.template.processors; -import info.magnolia.context.MgnlContext; import info.magnolia.jcr.util.PropertyUtil; import info.magnolia.module.form.processors.FormProcessorFailedException; import info.magnolia.module.mail.MgnlMailFactory; import info.magnolia.module.mail.templates.MailAttachment; import info.magnolia.module.mail.templates.MgnlEmail; import info.magnolia.module.mail.util.MailUtil; -import info.magnolia.module.shop.util.ShopUtil; import java.util.List; import java.util.Map; @@ -31,9 +29,6 @@ super.internalProcess(content, parameters); sendConfirmationEmail(content, parameters); } catch (Exception e) { - // initialize new cart - MgnlContext.getWebContext().getRequest().getSession().removeAttribute("shoppingCart"); - ShopUtil.setShoppingCartInSession(); // send error mail notification to the logged user sendErrorMailNotification(parameters); throw new FormProcessorFailedException("Error while sending confirmation email to the order person."); diff --git a/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/processors/SendOrderEmailProcessor.java b/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/processors/SendOrderEmailProcessor.java index 7acb183..4aacd5e 100644 --- a/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/processors/SendOrderEmailProcessor.java +++ b/cma-marketing-projects/cma-marketing-lbk-template/src/main/java/info/magnolia/customerprojects/coop/marketing/lbk/template/processors/SendOrderEmailProcessor.java @@ -1,7 +1,6 @@ package info.magnolia.customerprojects.coop.marketing.lbk.template.processors; import info.magnolia.cms.util.QueryUtil; -import info.magnolia.context.MgnlContext; import info.magnolia.customerprojects.coop.marketing.lbk.template.predicates.ShoppingCartItemGroupBySupplierPredicate; import info.magnolia.jcr.util.NodeUtil; import info.magnolia.jcr.util.PropertyUtil; @@ -10,7 +9,6 @@ import info.magnolia.module.shop.ShopRepositoryConstants; import info.magnolia.module.shop.beans.DefaultShoppingCartImpl; import info.magnolia.module.shop.beans.ShoppingCartItem; -import info.magnolia.module.shop.util.ShopUtil; import java.util.ArrayList; import java.util.List; @@ -40,9 +38,6 @@ super.internalProcess(content, parameters); sendOrderMail(content, parameters); } catch (Exception e) { - // initialize new cart - MgnlContext.getWebContext().getRequest().getSession().removeAttribute("shoppingCart"); - ShopUtil.setShoppingCartInSession(); // send error mail notification to the logged user sendErrorMailNotification(parameters); throw new FormProcessorFailedException("Error while sending order email to suppliers."); diff --git a/cma-marketing-projects/cma-marketing-lbk-template/src/main/resources/cma-marketing-lbk-template/templates/paragraphs/features/formStepConfirmOrder.ftl b/cma-marketing-projects/cma-marketing-lbk-template/src/main/resources/cma-marketing-lbk-template/templates/paragraphs/features/formStepConfirmOrder.ftl index 0a26f26..ede153d 100644 --- a/cma-marketing-projects/cma-marketing-lbk-template/src/main/resources/cma-marketing-lbk-template/templates/paragraphs/features/formStepConfirmOrder.ftl +++ b/cma-marketing-projects/cma-marketing-lbk-template/src/main/resources/cma-marketing-lbk-template/templates/paragraphs/features/formStepConfirmOrder.ftl @@ -7,6 +7,7 @@ [#if (!shoppingCart?has_content || shoppingCart.getCartItemsCount() == 0) && !cmsfn.isEditMode() ]

${i18n['shoppingcart.empty']}

+[#else] [#if actionResult == "go-to-first-page"]
${i18n.get("form.user.errorMessage.go-to-first-page", [cmsfn.link("website", model.view.firstPage)])} @@ -41,7 +42,6 @@
[/#if] [/#if] -[#else]

${content.formTitle!}

${content.formText!}

diff --git a/cma-marketing-projects/cma-marketing-lbk-webapp/.gitignore b/cma-marketing-projects/cma-marketing-lbk-webapp/.gitignore new file mode 100644 index 0000000..b63b4e5 --- /dev/null +++ b/cma-marketing-projects/cma-marketing-lbk-webapp/.gitignore @@ -0,0 +1,3 @@ +/repositories/ +/repositories-bk/ +/repositories-bk1/ diff --git a/cma-marketing-projects/cma-marketing-lbk-webapp/pom.xml b/cma-marketing-projects/cma-marketing-lbk-webapp/pom.xml index fa5e888..98cdca2 100644 --- a/cma-marketing-projects/cma-marketing-lbk-webapp/pom.xml +++ b/cma-marketing-projects/cma-marketing-lbk-webapp/pom.xml @@ -70,6 +70,16 @@ info.magnolia.customerprojects.coop.marketing cma-marketing-mbv-theme + + + ch.fastforward + magnolia-module-ocm + + + + info.magnolia.shop + magnolia-module-shop + diff --git a/cma-marketing-projects/cma-marketing-lbk-webapp/src/main/webapp/.gitignore b/cma-marketing-projects/cma-marketing-lbk-webapp/src/main/webapp/.gitignore new file mode 100644 index 0000000..3a7e751 --- /dev/null +++ b/cma-marketing-projects/cma-marketing-lbk-webapp/src/main/webapp/.gitignore @@ -0,0 +1,12 @@ +/cache/ +/docroot/ +/logs/ +/META-INF/ +/repositories/ +/repositories-bk/ +/LICENSE.txt +/NOTICE.txt +/README.txt +/repositories-bk20150601/ +/tmp/ +/repositories-bk20150602/ diff --git a/cma-marketing-projects/cma-marketing-lbk-webapp/src/main/webapp/WEB-INF/.gitignore b/cma-marketing-projects/cma-marketing-lbk-webapp/src/main/webapp/WEB-INF/.gitignore new file mode 100644 index 0000000..1f9dba7 --- /dev/null +++ b/cma-marketing-projects/cma-marketing-lbk-webapp/src/main/webapp/WEB-INF/.gitignore @@ -0,0 +1,4 @@ +/lib/ +/bootstrap/ +/classes/ +/web.xml diff --git a/cma-marketing-projects/cma-marketing-lbk-webapp/src/main/webapp/WEB-INF/config/.gitignore b/cma-marketing-projects/cma-marketing-lbk-webapp/src/main/webapp/WEB-INF/config/.gitignore new file mode 100644 index 0000000..d7d09ec --- /dev/null +++ b/cma-marketing-projects/cma-marketing-lbk-webapp/src/main/webapp/WEB-INF/config/.gitignore @@ -0,0 +1,3 @@ +/magnoliaAuthor/ +/magnoliaPublic/ +/repo-conf/ diff --git a/cma-marketing-projects/pom.xml b/cma-marketing-projects/pom.xml index 43338ec..08e5982 100644 --- a/cma-marketing-projects/pom.xml +++ b/cma-marketing-projects/pom.xml @@ -16,7 +16,7 @@ 1.7 5.3.9 5.3.9 - 2.2.1-SNAPSHOT + 2.3.0-SNAPSHOT 1.2.1-SNAPSHOT