I have some products that I only want allowed to be shipped to a single state.
I went to Configuration->Countries, added a new "United States", then put it only the state I wanted allowed.
This had the intended effect; however, not only that state can be selected for billing, which I do not want. I want all states available for billing. How can I achieve this?
I have Shipping Director, and I tried adding the following rules:
ErrorExit Missing Country State Zip ShippingAddress.Country = null or ShippingAddress.ZipPostalCode = null or ("US,CA".Contains(ShippingAddress.Country.TwoLetterIsoCode) and ShippingAddress.StateProvince = null)
ErrorExit Only Ship to WA State ShippingAddress.StateProvince.Abbreviation != "WA"
But this seemed to not have any effect on the checkout process.
In standard nopCommerce, although Countries have properties for
States do not. As you noticed, only having one state linked to the country means the limitation applies to both shipping and billing addresses.
You've already contacted us at nopTools for support, but for everyone else's benefit ;) ... When using Shipping Director, it must be the only Active shipping provider plugin. You can call another plugin from Shipping Director. So, for example, the ErrorExit rule expression can check the state
Product 123 can only ship to NY
Items.Any(Product.Sku = "123") and State != "NY"
"Sorry, we can't 123 outside of NY"
Then, follow your ErrorExit rules with Option rules - e.g.
Note that if you have many restricted products, we recommend that you create an Unpublished Category for them, and then your ErrorExit Expression would be:
Items.Any(Product.HasCategory("Shipping to NY Only")) and State != "NY"