@Dmitriy
Something does not look right...
if (_shippingSettings.AllowPickUpInStore && !_shippingSettings.IgnoreAdditionalShippingChargeForPickUpInStore && pickupPoint != null)
{
adjustedRate += GetShoppingCartAdditionalShippingCharge(cart);
}
The ... && pickupPoint != null
would mean that the if-clause is only executed when there is a selected pickup point (and of course, ... not Ignore...). But,
the rate also needs to be adjusted when there is no pickup point at all (pickupPoint == null). Also, I don't see the point of looking if any pickup point was selected by customer. If either there is NOT AllowPickUpInStore, or there is AllowPickUpInStore and NOT IgnoreAdditionalShippingChargeForPickUpInStore, then the Additional Shipping Charges should be added. I.e. it probably needs to read as:
if (!_shippingSettings.AllowPickUpInStore || !_shippingSettings.IgnoreAdditionalShippingChargeForPickUpInStore )
{
adjustedRate += GetShoppingCartAdditionalShippingCharge(cart);
}
(P.S. Is it a bit odd that the GitHub commit view/page is showing that code change section with header
public virtual bool IsFreeShipping
when the change was made in method
public virtual decimal AdjustShippingRate
?