Details
Description
While creating a order from a quote with a manual adjustment of shipping charges, the adjustment amount is not included in the cart grand total. Although manual adjustments are copied to order adjustment and added to cart adjustment (ShoppingCartService.java, lines 676-781), they are filtered out while calculating the maxAmount for OrderPaymentPreference when calling the cart.getOrderOtherAdjustmentTotal() method which in turns calls the OrderReadHelper.calcOrderAdjustments(List orderHeaderAdjustments, BigDecimal subTotal, boolean includeOther, boolean includeTax, boolean includeShipping). This method filters out the SHIPPING_CHARGES order adjustment as includeShipping parameter is always true.
One way to solve the problem is to use the value of includeInShipping field from OrderAdjsutment entity in OrderHelper#filterOrderAdjustments(List adjustments, boolean includeOther, boolean includeTax, boolean includeShipping, boolean forTax, boolean forShipping) method and setting this to true in QuoteAdjustment entity. (quote adjustments are copied to order adjustment by loadCartFromQuote service). However, doing so wrongly shows the shipping charges twice in the Order view and also add the shipping charges to the total tax whereas the grand total remains correct.