Unable to get custom shipping profile details in /orders/create webhook when user checkout

Topic summary

Issue: In Shopify, an /orders/create webhook only returns a single entry in the order.shipping_lines array when a checkout contains products from multiple shipping profiles (general weight-based + custom carrier via uShip). The merchant needs separate shipping_lines (one per profile) and the third‑party rate “code” to create an external uShip shipment for custom‑profile items.

Setup:

  • Two shipping profiles: General (weight-based) and Custom (uShip Rate Provider).
  • Same-profile checkout works: shipping_lines shows correct source/title and, for uShip, includes the required “code”.

Observed behavior:

  • Mixed-profile checkout: checkout UI shows only the third-party rate, but the webhook’s shipping_lines contains a single generic line: {source: “Shopify”, title: “Shipping”, code: “Shipping”} with no uShip code, and no second line.

Impact:

  • Cannot distinguish rates/profiles post-order, nor create a uShip listing for only custom-profile items.

Ask:

  • How to receive two shipping_lines (one per profile) in /orders/create, or otherwise obtain profile-specific shipping details; is this supported by Shopify?

Status:

  • No resolution provided; key question remains unanswered. Screenshots are included but not essential to reproduce the issue.
Summarized with AI on January 3. AI used: gpt-5.

We have created 2 shipping profiles in our app. One is the general profile, where we have weight-based shipping rates. Another is using a custom carrier with a third-party service to calculate an accurate shipping rate.

Now, whenever users checkout with products in the same category, they get the proper shipping price. You can check out the image below.

  • Custom profile with third-party rate provider

  • General profile with a weight-based rate provider:

  • But when users try to checkout with products from multiple shipping profiles, it only shows the shipping price provided by a third party.

The user is able to complete the transaction. We have also created one webhook for /orders/create to get “eventData” and create an “uShip listing” afterwards.

We are facing problems when users checkout products from multiple shipping profiles. We only get one element in the “shipping_lines” array property with the general shipping option. Below, I have mentioned the response type:

  • shipping_lines property:
    1. When users checkout with multiple products from multiple shipping profiles:
{ 
 …other_properties,
"source": "Shopify",
"title": "Shipping",
"code": "Shipping", 
}

​
  • When users checkout products from only custom shipping profiles:
{ 
  …other_properties, 
  "source": "uShip Rate Provider", 
  "title": "uShip In-Home Delivery",
  "code": "cac1d609-f428-440e-99f1-8d6ced44a36a", 
}​

(code is required to create a “uShip shipment” listing.)

How can I get 2 elements with different shipping rates and profiles in my “shipping_lines” array (in /orders/create web-hook) so that I can handle them separately and create a third-party listing for custom profile products only? Is it possible with Shopify or not?