/* * The addItem method adds a product items with one or more quantity to the cart by adding thes * item to a list and calling the addItems method. */ @RequestMapping( value = "/addItem.htm", method = {RequestMethod.GET, RequestMethod.POST}) public String addItem( @RequestParam(required = false) Boolean ajax, @ModelAttribute AddToCartItem addToCartItem, BindingResult errors, ModelMap model, HttpServletRequest request) { if (ajax == null) { ajax = false; } /* new AddToCartItemsValidator().validate(addToCartItems, errors); if (errors.hasErrors()) { return refererRedirect(model, errors, request, ajax); } */ Order currentCartOrder = retrieveCartOrder(request, model); List<OrderItem> orderItemsAdded = new ArrayList<OrderItem>(); if (addToCartItem.getQuantity() > 0) { try { OrderItem orderItem; if (addToCartItem.getSkuId() == 180) { BundleOrderItemRequest itemRequest = new BundleOrderItemRequest(); DiscreteOrderItemRequest discreteRequest1 = cartService.createDiscreteOrderItemRequest( addToCartItem.getSkuId(), addToCartItem.getProductId(), addToCartItem.getCategoryId(), addToCartItem.getQuantity()); DiscreteOrderItemRequest discreteRequest2 = cartService.createDiscreteOrderItemRequest( 11L, null, null, addToCartItem.getQuantity()); itemRequest.getDiscreteOrderItems().add(discreteRequest1); itemRequest.getDiscreteOrderItems().add(discreteRequest2); itemRequest.setName("Havaletta Bundle"); itemRequest.setQuantity(1); if (addToCartItem.getOrderId() != null) { orderItem = cartService.addBundleItemToOrder( cartService.findOrderById(addToCartItem.getOrderId()), itemRequest); } else { orderItem = cartService.addBundleItemToOrder(currentCartOrder, itemRequest); } } else { if (addToCartItem.getOrderId() != null) { orderItem = cartService.addSkuToOrder( addToCartItem.getOrderId(), addToCartItem.getSkuId(), addToCartItem.getProductId(), addToCartItem.getCategoryId(), addToCartItem.getQuantity()); } else { orderItem = cartService.addSkuToOrder( currentCartOrder.getId(), addToCartItem.getSkuId(), addToCartItem.getProductId(), addToCartItem.getCategoryId(), addToCartItem.getQuantity()); } } orderItemsAdded.add(orderItem); } catch (PricingException e) { LOG.error("Unable to price the order: (" + currentCartOrder.getId() + ")", e); } } model.addAttribute("orderItemsAdded", orderItemsAdded); if (!ajax) { return addItemViewRedirect ? "redirect:" + addItemView : addItemView; } else { return "catalog/fragments/addToCartModal"; } }