@Override @RequestMapping(value = "/checkout", method = RequestMethod.GET) public Map<String, Object> checkout( final OrderForm orderForm, final HttpServletRequest request, final Device device, final HttpServletResponse response) { boolean auth = isAuthenticated(); String cartId; if (!checkCartIdCookie(request)) { String error = "No cartId cookie."; Map<String, Object> map = new HashMap<String, Object>(); map.put("error", error); return map; } else { Cookie cookie = getCartIdCookie(request); cartId = cookie.getValue(); } ShoppingCart cart = cartService.get(UUID.fromString(cartId)); if (cart.getCartItems() == null || cart.getCartItems().size() == 0) { String error = "No items in cart to checkout."; Map<String, Object> map = new HashMap<String, Object>(); map.put("error", error); return map; } User user = null; if (auth) { user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); } Map<String, Object> map = new HashMap<String, Object>(); String digitalData = digitalDataAdapter.adapt(dataLayer.checkout(request, response, device, cart, user)); map.put("isAuthenticated", auth); map.put("cartId", cart.getId().toString()); map.put("cartSize", calculateCartSize(cart)); map.put("digitalData", digitalData); return map; }