Shopify Community AMA with Shopify Developers: The New GraphQL Product APIs

Topic summary

Shopify hosted a live AMA on August 20th, 2024, addressing questions about new GraphQL Product APIs that support up to 2,000 variants per product (released in 2024-04 stable API). The APIs come with deprecations of REST product APIs and several GraphQL fields.

Major Developer Concerns:

  • Scope re-authorization issues: Multiple developers expressed worry about requiring existing users to re-authorize with write_publications scope, fearing low adoption rates (potentially only 10%). They requested automatic backfilling similar to the 2018 multi-location rollout. Shopify later confirmed a backfill option is available via form submission.

  • API efficiency complaints: Developers noted GraphQL requires multiple mutations for tasks REST handled in one call (product creation + publishing + inventory now needs 3+ separate calls). Concerns raised about atomic operations and increased complexity.

  • productSet limitations: The mutation doesn’t support inventory or publishing fields, forcing developers to use additional mutations. Shopify acknowledged they’re working to extend capabilities.

  • Bulk operation issues: Reports of errors when products have 40+ variants, missing variants in responses, and inconsistent file size limits (sometimes 20MB, sometimes less).

  • Missing features: No variantsCount for entire shop, productsCount limited to 10,000, no easy way to bulk activate inventory items across locations.

Shopify Responses:

The team acknowledged most concerns as “something we are considering” and confirmed they’re actively working on performance improvements, extending mutation capabilities, and addressing bugs as they move toward full 2,000-variant support.

Summarized with AI on November 3. AI used: claude-sonnet-4-5-20250929.

Hello and thanks for your question. I’ve added a similar response in this forum.

“One thing to note is that you’ll now need to pass country code as the context input argument, rather than currency code. The reason is that you can have multiple countries that share the same currency (for example France and Spain), but that have different final prices. You’ll be able to see the currency code off of the price.”

To fetch the available countries, you can use the following queries:

In Admin API

query Markets {
  markets(first: 10) {
    nodes {
      regions(first: 10) {
        nodes {
          ... on MarketRegionCountry {
            code
          }
        }
      }
    }
  }
}

In Storefront API

query AvailableCountries {
  localization {
    availableCountries {
      currency { isoCode }
      isoCode
    }
  }
}
1 Like