Market-driven shipping migration - no province/subdivision data available when a market covers a whole country

We’re migrating off deliveryProfiles for market-driven shipping, following the upgrade guide. We used deliveryProfiles to build a countries + provinces reference, and have hit a gap moving that over to Markets. Wanted to check if we’re missing something.

What we used previously

We built our countries/provinces list from deliveryProfiles, walking profileLocationGroups → locationGroupZones → zone.countries:

{
  deliveryProfiles(first: 100) {
    edges {
      node {
        profileLocationGroups {
          locationGroupZones(first: 250) {
            edges {
              node {
                zone {
                  countries {
                    code { countryCode }
                    name
                    translatedName
                    provinces { code name translatedName }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

zone.countries[].provinces always returned each country’s complete province list. Not filtered or conditional on anything else.

What we get from Markets

Switched to Market.conditions.regionsCondition.regions, filtered to delivery.shipping.isEnabled: true markets:

{
  markets(first: 100, type: REGION) {
    nodes {
      id
      name
      delivery { shipping { isEnabled } }
      conditions {
        regionsCondition {
          regions(first: 250) {
            nodes {
              __typename
              name
              ... on MarketRegionCountry { code }
              ... on MarketRegionSubdivision { code country { code name } }
            }
          }
        }
      }
    }
  }
}

When a market is scoped to specific subdivisions, this works well - a market limited to “California” comes back as a clean MarketRegionSubdivision node with its own name and code.

What we don’t get

When a market covers a whole country with no subdivision restriction (a plain MarketRegionCountry node), there’s no province-level data at all. Expected, since that’s not what the type represents, but it means nothing populates a province list for exactly this case, which is the more common one in practice.

What we’re asking

Is there a supported way to get a full province/subdivision list for a country under a whole-country market, without the merchant having restricted it to specific subdivisions? Or is maintaining a static reference (Shopify’s own documented list of 32 countries with provinces the expected path here.

Appreciate any help from someone from Shopify team or others who have solved this! :blush:

2 Likes