I have ran into this bug on two implementations that I've made with NopCommerce, it exists in version 1.8 and 1.9 when the client profile is configured so that the postal code is not required and can be empty.

In that case the validation that is made in the method CanUseAddressAsBillingAddress on the class CustomerService has an issue, since the method is returning false if the ZipPostalCode property is empty, which should be that way if the postal code has been set as disabled.

The code should be corrected like this:


            if (this.FormFieldPostCodeEnabled)
            {
                if (address.ZipPostalCode == null)
                    return false;
                if (String.IsNullOrEmpty(address.ZipPostalCode.Trim()))
                    return false;
            }


Please check if the same flaw exists in version 2.0, maybe it wasn't noticed before because almost all countries have postal codes, here in Colombia we don't have them so it needs to be disabled.