Problem
An order pushed in from a host or ERP will not load or rate, and the ship-to state is a 3-letter code (for example "VIC") instead of a 2-letter code. Loading the order by hand and fixing the state lets a label print.
deserialization error
Cause
Shipstore expects 2-letter state and region codes (for example "VI" for Victoria, Australia). When the host sends a 3-letter code such as "VIC", the value does not match and the order fails to load. Shipstore accepts a state only for countries that use one - Canada, Mexico, Australia, and Ireland - and only in the 2-letter form. For any other country the host should send no state (NULL).
Fix
- Open the failing shipment and check the ship-to state or region.
- If it is a 3-letter code, change it to the 2-letter code (for example "VIC" becomes "VI"), and confirm the city and postal code are complete.
- Reprocess the shipment to print the label.
- If the destination country does not use states (for example Germany or Japan), have your host send no state for that field.
- If a bad value is arriving in the Bill To address (for example a Japanese prefecture code like "JP08"), remove the Bill To address for that shipment, or add a business rule that clears the Bill To before shipping to that destination.
Prevent it from happening again
Have your host integration send 2-letter state and region codes. If the host cannot change that, email support@shipstore.com and include an example order so translation logic can be looked at.
What you should see
The corrected shipment rates and prints a label, and newly imported orders with 2-letter codes no longer hit the error.
Related articles
See also: "UPS international shipment fails: Serialization / Deserialization failed" and "Error Code: Object Reference Not Set to an Instance of an Object."