Carrier Service Mapping: channel carrier/service ↔ internal codes
Translate channel-side carrier/service text (e.g. UPS / Ground) into your standard carrier_code / service_code automatically when orders are pulled. Field reference and setup steps included.
Every channel names carriers and services its own way — one calls it "UPS / Ground", another "United Parcel Service / Standard". Carrier Service Mapping translates that channel-side text into your internal standard codes (carrier_code / service_code) so TMS, OMS and WMS always speak the same language.
Where the translation happens#
Right after channel.pull_orders pulls the orders and before the flow writes them into OMS: each order's carrier / service is looked up in this table, and on a hit the order gains carrier_code / service_code. The original carrier / service text is never overwritten.
Field reference#
- Channel Carrier (required): the carrier text as the channel reports it, e.g. "UPS". Matching ignores case and surrounding spaces.
- Channel Service (required): the service text as the channel reports it, e.g. "Ground".
- Internal Carrier (required): your standard carrier_code, e.g. "ups". TMS rate shopping and label printing read this.
- Internal Service (required): your standard service_code, e.g. "ground".
- Channel Code: which channel platform this row applies to (e.g. shopify). Leave empty for a global mapping that applies to every channel.
- Connection: optionally tie the row to one specific connection. A connection-specific row beats the channel-code generic row.
- Active: the on/off switch. Turn off to retire a mapping without deleting it.
Matching priority#
- Connection-specific row (channel_id matches this order's connection).
- Channel-code generic row (same channel platform, any connection).
- Global row (no channel code, no connection).
Set up a mapping#
- Open Master Data → Carrier Service Mappings.
- Click New. Type the Channel Carrier and Channel Service exactly as the channel reports them (copy from a pulled order if unsure).
- Fill Internal Carrier and Internal Service with your standard codes (lowercase, e.g. ups / ground).
- Set Channel Code (e.g. shopify) for a channel-wide mapping, or pick a Connection for a store-specific one. Leave both empty for a global fallback.
- Save, then pull a test order — the order should arrive with carrier_code / service_code attached.
FAQ#
- Order came in without carrier_code: the channel carrier/service has no mapping row yet. Check the flow run logs for the "carrier-mapping" warning, then add the row — future orders will translate.
- Missing mapping never blocks the order: the original carrier / service text is kept and the order writes into OMS as usual.
- "UPS" vs "ups": matching is case-insensitive, so you only need one row for both.
- Temporarily disable a mapping (e.g. the channel renamed a service): flip the Active switch off instead of deleting — the old rows stay for history.