public String reconfigure(HttpServletRequest request, HttpServletResponse response, Model model,
Long orderItemId) throws IOException, AddToCartException, PricingException, Exception {
DiscreteOrderItem orderItem = (DiscreteOrderItem) orderItemService.readOrderItemById(orderItemId);
Long productId = orderItem.getProduct().getId();
Product product = catalogService.findProductById(productId);
ConfigurableOrderItemRequest itemRequest = orderItemService.createConfigurableOrderItemRequestFromProduct(product);
orderItemService.modifyOrderItemRequest(itemRequest);
orderItemService.mergeOrderItemRequest(itemRequest, orderItem);
itemRequest.setQuantity(orderItem.getQuantity());
model.addAttribute("baseItem", itemRequest);
model.addAttribute("isUpdateRequest", Boolean.TRUE);
model.addAttribute("originalOrderItem", orderItemId);
model.addAttribute(ALL_PRODUCTS_ATTRIBUTE_NAME, orderItemService.findAllProductsInRequest(itemRequest));
return isAjaxRequest(request) ? getConfigureView() : getConfigurePageRedirect();
}