Hi Stuart,
The maximum length for BillingState with sagepay is 2 characters
The plugin as of nop(2.7) Version 1.05 does not check the length of this value and in the table in nop(2.6) that value comes from [StateProvince] has a max lenght of 100 characters.
So you probably have abbreviations that are over 2 characters in length?
Looking at nop(2.6) you can edit these values in the admin via Configuration > Countries > edit country > States and provinces tab.
The value is not required for non US states so you could alter the source code for the pluggin to prevent passing a value if country is not US
Source code for nop1.7 below which may help.
if (!string.IsNullOrEmpty(order.ShippingStateProvince))
{
if (shippingCountryCode == "US")
{
var stateProvince = StateProvinceManager.GetStateProvinceById(order.ShippingStateProvinceId);
if (stateProvince != null)
{
cryptBuilder.AppendFormat("&DeliveryState={0}", stateProvince.Abbreviation);
}
}
}
&
if (!string.IsNullOrEmpty(order.BillingStateProvince))
{
if (billingCountryCode == "US")
{
var stateProvince = StateProvinceManager.GetStateProvinceById(order.BillingStateProvinceId);
if (stateProvince != null)
{
cryptBuilder.AppendFormat("&BillingState={0}", stateProvince.Abbreviation);
}
}
}
Finally a link to sagepay documentation
hereHTH