This affects many versions of nopCommerce, up to and including 4.4
If a customer places an order and redeems reward points, no new reward points are added for that order.
This is because there is a test in the OrderProcessingService.AwardRewardPointsAsync to see if the order's RewardPointsHistoryEntryId has a value. If it does, no points are awarded.
BUT if the customer redeemed points, then RewardPointsHistoryEntryId will have a value.
Place an order with a single item visit the admin order management page for that order. Delete the single line item
An exception is thrown in OrderTotalCalculationService.UpdateOrderTotals because the customer is null. This is because in the OrderProcessingService.UpdateOrderTotals method, the restored cart has no items in it, so there is no way to get a customer record
This can be simply fixed. Instead of trying to get the customer from restored cart, in OrderTotalCalculationService.UpdateOrderTotals, get it from the order: