Put carrier_code and service_code in ShipNotice
The ShipNotice hook with the custom store integration passes Carrier and Service in the request, but not carriercode and servicecode. The latter would be more robust.
- You call the service "FedEx Ground©", but we call it "FedEx Ground" without the pesky © symbol. Sure, we could strip that out before matching on the name, but that's silly when...
- You require servicecode in other API calls, such as creating a label for an order. So we need to store that servicecode on our end anyway. Might as well match on that, as a code is much less likely to change than a name on either end.
- We integrate with multiple shipping platforms, so matching on name doesn't scale in that direction; different platforms have different names for the same thing.
In short, "name" (something that might change) shouldn't be used to match records, but rather "id/key/code" (something that won't change).