Issue: Using fulfillmentService.location.id for variants inventoryQuantities, "sold out" on frontend

Topic summary

A developer is building a Shopify app using the 2024-10 GraphQL API and encountering an inventory display discrepancy.

Setup:

  • Created a fulfillmentService using fulfillmentServiceCreate mutation
  • Used Bulk Product Variant Creation API to create variants
  • Set inventoryQuantities.locationId to the fulfillmentService.location.id
  • Assigned inventory quantity of 9999

Problem:

  • Backend correctly shows inventory as “9999”
  • Frontend product detail page displays “Sold Out” instead

Current Status:
The issue remains unresolved. The developer has provided code snippets and screenshots demonstrating the backend inventory configuration and the frontend “Sold Out” display. They are seeking an explanation for why inventory appears correctly in the admin but not on the storefront, and looking for a solution to sync the display properly.

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

I am creating a complex Shopify application.

Using the 2024-10 version of the GraphQL API, I created a fulfillmentService using the following mutation:

mutation fulfillmentServiceCreate($name: String!, $callbackUrl: URL!, $inventoryManagement:Boolean!, $permitsSkuSharing:Boolean!) {
            fulfillmentServiceCreate(name: $name, callbackUrl: $callbackUrl, inventoryManagement:$inventoryManagement, permitsSkuSharing:$permitsSkuSharing) {
              fulfillmentService {
                id
                serviceName
                callbackUrl
                fulfillmentOrdersOptIn
                permitsSkuSharing
                handle
                inventoryManagement
                location {
                    id
                    legacyResourceId
                }
              }
              userErrors {
                field
                message
              }
            }
          }

then, i get a
Click to expand…

Next, I used the Bulk Product Variant Creation API:

mutation productVariantsBulkCreate($productId: ID!, $variants: [ProductVariantsBulkInput!]!, $strategy: ProductVariantsBulkCreateStrategy, $media: [CreateMediaInput!]) {
            productVariantsBulkCreate(productId: $productId, media: $media, variants: $variants, strategy: $strategy) {
              userErrors {
                field
                message
              }
              
              product {
                id
                options {
                  id
                  name
                  values
                  position
                  optionValues {
                    id
                    name
                    hasVariants
                  }
                }
              }
              productVariants {
                id
                title
                selectedOptions {
                  name
                  value
                }
              }
            }
          }

For the $variants parameter, I set the locationId of inventoryQuantities to the fulfillmentService.localtion.id of the :

After completing these steps:

  1. In the backend, the inventory shows “9999” correctly.
  2. However, on the product detail page, it still displays “Sold Out.”

Screenshots of the issue:

halweg_1-1736307907104.jpeg

Question:
Why is the inventory showing correctly in the backend but displaying “Sold Out” on the product page? Is there a solution to this issue?