How to Configure Carrier Suppression by Product
Summary
PRODUCT_LIST_CARRIERS_EXCLUDE_LIST is a SmartTMS system setting that hides specific carriers from the rate shop when a customer selects a given product from the product list. It supports two kinds of rules on the same product:
-
-
- Simple suppression — always hide a carrier for a product.
- Dimension-based suppression — hide a carrier only when a shipment's length, width, or height crosses a threshold.
-
⚠️ VLTL exception: VLTL rates always bypass this setting (see TMS-6857). If a rep reports a VLTL carrier still being suppressed, this setting is not the cause — check CARRIER_SUPPRESSION or EXCLUDE_CUBIC_CAPACITY_RATES instead.
Where to find it
Admin → Global System Settings → Client Account Settings → search for PRODUCT_LIST_CARRIERS_EXCLUDE_LIST.
It's a multi-line text field — each line configures suppression rules for one product.
Format
{productListId}~{carrierEntry1},{carrierEntry2},{carrierEntry3}...
-
-
- The first ~ separates the product ID from its carrier rules.
- Commas separate multiple carrier rules on the same product line.
- Each carrier entry must have exactly 1 field (SCAC only) or exactly 4 fields (SCAC~dimensionField~operator~thresholdInches). Any other number of fields is invalid and gets skipped silently.
-
Simple suppression (1 field)
SCAC
Hides the carrier for that product, no matter the dimensions. Example: SEFL
Dimension-based suppression (4 fields)
SCAC~dimensionField~operator~thresholdInches
|
Field |
Description |
Valid values |
|
SCAC |
Carrier to suppress |
Any valid carrier SCAC |
|
dimensionField |
Dimension to check |
length, width, height |
|
operator |
Comparison |
gte, gt, lte, lt |
|
thresholdInches |
Threshold, in inches |
Any positive number |
Operator cheat sheet:
|
Operator |
Meaning |
Use when the rule says... |
|
gte |
≥ threshold |
"5 feet or more" → gte~60 |
|
gt |
> threshold |
"over 5 feet" (61"+) → gt~60 |
|
lte |
≤ threshold |
Carrier only handles items up to a size |
|
lt |
< threshold |
Carrier only handles items under a size |
💡 When a carrier's rule language is ambiguous, default to gte — it's the more inclusive/safer choice.
Combining rules on one product
Mix simple and dimension-based entries on the same line with commas — different carriers can follow different rules for the same product:
16090~SEFL~length~gte~60,EXLA,CNWY
SEFL is suppressed only when length ≥ 60"; EXLA and CNWY are suppressed unconditionally.
Examples
Simple — multiple carriers, one product
16090~SEFL,EXLA,CNWY
Dimension-based — one carrier, one product
16139~SEFL~length~gte~60
SEFL disappears once piece length hits 60"; returns for shorter pieces.
Mixed — multiple products, multiple rule types
16090~SEFL,EXLA,CNWY
16139~SEFL~length~gte~60
16138~SEFL,EXLA~height~gt~48
Real-world reference — Watsco / SEFL / HVAC
16090~SEFL,EXLA,CNWY
16139~SEFL~length~gte~60
16138~SEFL~length~gte~60
Product 16090: SEFL, EXLA, CNWY always suppressed. Products 16139 & 16138 (HVAC): SEFL only suppressed at 60"+ length.
How it behaves
|
Scenario |
Result |
|
Simple entry configured |
Carrier suppressed as soon as the product is selected |
|
Dimension entry configured, no dimensions entered yet |
Carrier shows normally — suppression waits on valid dimensions |
|
Dimensions entered, threshold met |
Carrier suppressed |
|
Dimensions entered, threshold not met |
Carrier shows normally |
|
User edits dimensions mid-booking |
Suppression re-evaluates live on every change |
|
Multi-piece shipment, one piece meets threshold |
Whole shipment's carrier suppressed |
|
Pre-defined product dimensions meet threshold |
Suppressed — applies to pre-defined and user-entered dimensions alike |
|
Carrier entry has 2 or 3 fields |
Invalid — entry is skipped |
|
VLTL rate |
Never suppressed by this setting |
Troubleshooting
|
Symptom |
Likely cause |
Fix |
|
Carrier still shows when it should be suppressed |
Dimensions not entered yet, or threshold not met |
Confirm dimensions are entered and meet the configured threshold |
|
Carrier suppressed when it shouldn't be |
Simple entry used where a dimension condition was intended |
Convert to the 4-field dimension format |
|
Not sure whether to use gte or gt |
Ambiguous carrier policy wording |
gte for "X feet or more," gt for "over X feet." Default to gte if unclear |
|
New entry isn't suppressing anything |
Wrong field count (2 or 3 fields) |
Each carrier entry needs exactly 1 or exactly 4 fields — check for missing/extra ~ |
|
Second carrier on same product not working |
Used ~ instead of , between carriers |
Only the first ~ separates product ID from carriers; use commas between carrier entries |
|
VLTL rates still being suppressed |
This setting doesn't touch VLTL |
Check CARRIER_SUPPRESSION and EXCLUDE_CUBIC_CAPACITY_RATES instead |
Related settings / tickets
- CARRIER_SUPPRESSION
- EXCLUDE_CUBIC_CAPACITY_RATES
- TMS-7420, TMS-4967, TMS-5211, ITSM-187654
Source: Confluence — How to Configure PRODUCT_LIST_CARRIERS_EXCLUDE_LIST