Hi folks,
We used to rely on the shipping_zones.json endpoint to quickly grab a list of all shipping method names enabled in the store. Now, we’re switching to GraphQL, and the recommended replacement is querying deliveryProfiles. The problem is, this resource is super complicated - tons of nested layers. You have to page through multiple delivery profiles, then dig into profile location groups, location group zones, and finally method definitions. It’s a lot!
Is there a simpler, faster way to get all the shipping rate names available in the store? We need something that performs well, and using deliveryProfiles in GraphQL feels like it’s going to slow things down big time. Any ideas?
1 Like
Hey Patrick,
Have connected with the team who owns this area to see what their recommendation is. In the meantime if you could give a general description on what your usecase is - if there is no currently supported alternative, it could require our product teams to invest in building out a new solution - so if they can understand the value of this, it will help them evaluate the investment.
In our app, we have a selector that allows merchants to choose shipping methods for which they’d like to activate specific features. These selections are matched based on their names. Thank you so much!
So right now, it doesn’t look like there’s any other way to get a list of all shipping names via the API, other than using deliveryProfiles
. I’ve flagged that this is not a performant method to the product team though.
One possible option to make things a little easier would be to avoid running this query multiple times by storing the the names as app owned metafields, and subscribing to profiles related webhooks so when names are updated, you can update the metafield values.
Thank you! I think I’ll stick to REST till the end of its life, later we will see. It’s the simplest solution. Perhaps till then, there will be easier way to fetch them with GraphQL.
HI Patrick, I work with a bunch of shops that use shipping rates that are conditional based on shipping destination, products, carrier, transit time, and other custom logic so unless you know how to create all the possible cart conditions you’d never get all the available rate names. How are you handling that now?
Hi Jesse, for my use case, I only need flat rate names that are defined in Shipping settings 
1 Like