Hi,
In the order data, we can get the shipping options from shippingLines
, the data is looks like
"id": "gid://shopify/ShippingLine/5277431234799",
"code": "Standard
International",
"phone": null,
"title": "Standard
International",
However, there is nothing that I can map to the shipping method from delivery profiles. Only the title but title is possible to change, is there any reliable way to do so?
ps, I use deliveryProfiles
to query all the available shipping methods from my store, the data is look like
{
“id”: “gid://shopify/DeliveryMethodDefinition/710018302191”,
“name”: “Standard International”,
“description”: null,
“active”: true,
//…
I assume Shopify graphql should somehow provide a way to able to connect the delivery method from the order shipping line or something else, but I have done a lot of research and even ask AI . unfortunately seems no way to do so?
Hey @Allen_Fang!
Can you share more context on how this is going to be used? The reason I ask is the Shipping Line is going to be more representative of what the customer has paid for shipping, but it may be a combination of rates.
hi @KyleG-Shopify thanks for the reply!
The context is I’m trying to do is a sort of mapping to map the store’s shipping option to another 3pl fulfillment option in our system. User can do one-off setup in our UI, when order coming, we can map to right 3pl fulfillment option.
So far the store’s shipping option is query from deliveryProfiles . However, when every order coming, I can’t see any reference to deliveryProfiles in order data The closest one is seems the “title” in shippingline. The title in shippingline is same to the name in deliveryProfiles, that indicate what deliver profile(shipping option) that user choose when placed order. Likely I can leverage it but the title in shippingline could possibly changed by user. So wondering any reliable way to do it for example id.
Thanks for sharing that. Most of that information would be within the fulfillment orders.
Do you have access to functions on your shop? If so, take a look at the Apps in order routing documentation as this may be a more simpler way to manage that.
If not, our documentation on Apps in order management goes through some common scenarios.
thanks @KyleG-Shopify I don’t have access for function so I just look into Apps in order management
Seem close but I try to get the id
from deliveryMethod
in FulfillmentOrder
, which is not exactly equal to the id from deliveryProfiles
,
For example, this is what I retrieve from deliveryprofile
{
“id”: “gid://shopify/DeliveryMethodDefinition/710018302191”,
“name”: “
Standard TW”,
“description”: null,
“active”: true,
//…
but following is what I get from fulfillment order:
```
“deliveryMethod”: {
“id”: “gid://shopify/DeliveryMethod/1629079699695”,
“serviceCode”: “Standard TW”,
“presentedName”: “Standard TW”,
“methodType”: “SHIPPING”,
“sourceReference”: null
},
```
the id is not match
Thanks for sharing that. Would it work to match DeliveryMethodDefinition.name
from delivery profiles with either DeliveryMethod.presentedName
or DeliveryMethod.serviceCode
from fulfillment orders? In your example, both have “Standard TW” as the name/presentedName, which gives you a consistent mapping key.
hi @KyleG-Shopify yes, it’s work if we use name to match. However, the name could be changed, as a store admin, I remember user can change the name in store setting page (/store/{store_name}/settings/shipping/profiles/{id}
). So if there is an id that we could use, that will be more reliable.

Considering the context I shared previously, if name changed, then our system user has to do the mapping again. Which is something we want to avoid.
Thanks for that. I’ll pass that on as feedback to our product teams; to consider a consistent ID.
There are some improvements coming to the profiles/updated webhook in the next API release that could help you keep on top of that