Access shipping method in Order Status UI extension

Hi,

We’re building a Shopify UI extension using API version 2026-04 for these targets:

target = "purchase.thank-you.block.render"
target = "customer-account.order-status.block.render"

On the Thank You page, we can access the selected shipping method directly through the extension API:

import {useDeliveryGroups} from '@shopify/ui-extensions/checkout/preact';

const deliveryGroups = useDeliveryGroups();

const selectedOptions = deliveryGroups.map((deliveryGroup) => {
  const selectedHandle = deliveryGroup.selectedDeliveryOption?.handle;

  return deliveryGroup.deliveryOptions.find(
    (option) => option.handle === selectedHandle,
  );
});

This provides information such as:

  • title
  • description
  • handle
  • code
  • carrier
  • delivery group details

However, useDeliveryGroups() is not available for the customer-account.order-status.block.render target. The built-in useOrder() hook only appears to expose basic order information and not the order’s shipping line.

We managed to retrieve the selected shipping method on the Order Status page by adding the customer_read_orders scope and querying the Customer Account API directly from the extension:

import {useOrder} from '@shopify/ui-extensions/customer-account/preact';

const order = useOrder();

const response = await fetch(
  'shopify://customer-account/api/2026-04/graphql.json',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      query: `
        query OrderShippingMethod($id: ID!) {
          order(id: $id) {
            shippingLine {
              title
              handle
              originalPrice {
                amount
                currencyCode
              }
            }
          }
        }
      `,
      variables: {
        id: order.id,
      },
    }),
  },
);

This works correctly after adding:

[access_scopes]
scopes = "customer_read_orders"

Our question is: is there a built-in Order Status extension API or hook that exposes the selected shipping method without requiring customer_read_orders and a separate Customer Account API GraphQL query?

The shipping method is already part of the order currently being displayed, so ideally we would like to access it from the extension target’s runtime data, similarly to useDeliveryGroups() on the Thank You page.

If this is currently not supported, is exposing the shipping line through useOrder() or another Order Status API planned?

Thank you for your response!

Ákos
PeakShip

Hey @Akos_Paska - thanks for the detailed write-up.

The Order Status Order API only exposes summary-level order information and doesn’t currently include the selected shipping line or delivery groups. Your existing Customer Account API query is the supported approach, and accessing Order.shippingLine requires the customer_read_orders scope. I also can’t confirm any roadmap or timeline for exposing this directly through useOrder().

Right now I can’t confirm any info on our roadmaps, but I’m happy to pass along a feature request for you for sure. Could you just share the following?

  • What experience does the extension need to change based on the selected shipping method?
  • Which fields are essential, and is the main concern the additional scope or the separate API request?

Just wanted to grab some more info from you so I can advocate better on my end here - hope to hear from you soon!

Hi @Alan_G, thanks!

Our feature depends on knowing the selected shipping method on the Order Status page.

The Customer Account API query works as a workaround, but ideally we’d avoid an additional request and expanding the scope list with customer_read_orders just for this one value.

A simple built-in field on useOrder() containing the selected shipping method would be the cleanest solution for us.

Thanks for passing this feature request along!

Hey @Akos_Paska - no worries at all, and thanks for confirming those details!

I’ve passed this along as a feature request. Let me know if I can help out further. :slight_smile: