Summary: A profile rule keyed on the ShipTo state works in the app but not on integration (Scale/SDK) orders, because the address is set after rating. At rate time the state is empty, so the rule cannot fire and the rate shop runs instead.

Problem

A pre-rate rule that checks the ShipTo state (for example, "if the service is Ground rate shop and the state is NY, NJ, or PA, use UPS Ground") works when you rate or process in the app. But integration orders (from Scale through the SDK) ignore it, and the rate shop still picks a different carrier and service.

Cause

On integration orders the destination address is set after the rate call. When the rule runs, the ShipTo state is not filled in yet, so the state does not match and the rate shop is used instead. In the app the address is there before rating, so the rule fires.

How to check: rate an order to one of the target states in the app. If the rule fires there but not on integration orders, this is the cause.

Fix

  1. In the app, rate an order to one of the target states and confirm the rule fires. This shows the problem is only on the integration path.
  2. Check whether your integration sets the address after rating. If it does, the state rule cannot run at rate time.
  3. Email support@shipstore.com and include an example integration order, the target states, and the carrier and service the rule should apply, so the state rule can be added to the integration path.
  4. Send a test integration order to each target state and confirm the right carrier and service is applied.

What you should see

An order rated in the app applies the rule's carrier and service. A test integration order to the same state now applies the same service instead of the rate shop result.

Related articles

  • Integration orders land on the wrong profile (UDF switch)
  • Premium service is rate shopped down to Ground