How to make `orderCreate` `shippingLines` respect Shopify admin panel Fulfillment location delivery methods?

How do I set orderinorderCreateto respect delivery methods set in admin panel?

When I set shippingLines, it just creates the custom delivery method. Even more of a problem when I have split shippings. It splits the orders correctly for the fulfilments but the shipping line is set from the what I set in my code and it shows the same delivery method. So I can not know when the shipping will be split and even dont want to bother about settign the correct delivery method.
I want shopify to set it automatically according to the settings in admin panel (General Profile → Fulfillment location).

I tried to remove shippingLinescompletely from the orderbut then it just shows Shipping in the delivery method in admin panel not respecting the delivery methods that I set in General Profile → Fulfillment locations. And in total it does not show the delivery price. I guess the delivery is not set at all.

This is very confusing. How do I make my graphql query respect the delivery methods created in Shopify admin panel?

Docs:

P.S. - I think I had this problem before and it was never addressed.

Hi @madfcat

I believe this is a limitation of using orderCreate and not an issue with your query. When you use orderCreate, you are bypassing the Shopify checkout flow entirely. That means:

  • No rate calculation runs against your Shipping and delivery settings (General Profile, custom profiles, zones, rates, etc.).
  • The shippingLines you pass in are treated as final, custom lines. This is consistent with OrderCreateShippingLineInput, which asks you to provide:
    • title (name of the method),
    • priceSet (a full MoneyBagInput with amount and currency),
    • optionally code and source.

So:

  • If you set shippingLines yourself, Shopify just uses those exact values and shows them as custom shipping.
  • If you don’t set shippingLines at all, Shopify creates an order with effectively no shipping rate chosen. That’s why you see “Shipping” and no delivery price in the admin — the platform has nothing to display.

There is no hook in orderCreate that says: “Given this cart and this shipping address, please look at the merchant’s shipping profiles and pick the right method(s).” That behavior only exists in the checkout/cart flows, not in back-office order creation.

Split shipping is handled separately through fulfillment routing and FulfillmentOrder objects, not through multiple shipping lines. Your shipping line lives at the order level and stays whatever you set, even if Shopify creates multiple fulfillment orders in the background. The per-fulfillment delivery info (like delivery type, branded promise, etc.) is exposed on FulfillmentOrder.deliveryMethod, but that is populated by flows that go through checkout, not by orderCreate.

If you want Shopify to automatically pick delivery methods and prices based on the store’s settings, you need to use the cart/checkout flows (Storefront API Carts + Checkout) or Draft Orders and let the customer complete a normal checkout. Those flows use your delivery profiles to compute rates, then the resulting order will have proper shippingLines and fulfillment delivery methods. If you must stick with orderCreate, there is no way to tell it “use the admin delivery methods”; you have to decide the shipping title and price yourself and send them explicitly.

@Liam-Shopify thank you for the quick and detailed answer. It would be great to have the ability to manage everything as I described. I must stick with orderCreate :woman_shrugging: