Fixed the logic for the proration of the fulfillment price to eligible items in various scenarios
If the fulfillment price was determined by a weight band, then prorate the price amongst the eligible items according to their weights instead of prices.
If the item is free and the price was determined using a price band, then prorate the price according to the item’s quantity rather than its price to avoid dividing by zero.
Similarly, if the item has no weight (somehow) and the price was determined using a weight band, then use the quantity to prorate the price.
Fixed potential NPE if item weight is null when calculating fulfillment total with weight-banded pricing.
If null, the weight is assumed to be zero.