Graphql Commerce API not returning variant data

Using Discovery Search/Category through Graphql commerce API does not return variant data:

Sample query:

query ItemsByCategory($categoryId: String!, $offset: Int, $limit: Int, $queryHint: QueryHintInput, $sortFields: String) {
  findItemsByCategory(
    categoryId: $categoryId
    offset: $offset
    limit: $limit
    queryHint: $queryHint
    sortFields: $sortFields
  ) {
    offset
    limit
    count
    total
    items {
      ...ItemFragment
      __typename
    }
    facetResult {
      ...FacetResultFragment
      __typename
    }
    queryHint {
      cursor
      autoCorrectQuery
      autoCorrectQuerySet
      redirectHint {
        url
        query
        newQuery
        __typename
      }
      statsFields {
        listPrice {
          max
          min
          __typename
        }
        purchasePrice {
          max
          min
          __typename
        }
        __typename
      }
      __typename
    }
    __typename
  }
}

fragment ItemFragment on Item {
  ...ItemLikeFragment
  varAttrTypes {
    name
    __typename
  }
  salePriceRange
  priceRange
  customAttrs {
    name
    values
    __typename
  }
  variants {
    ...ItemVariantFragment
    __typename
  }
  slug
  categories {
    id
    displayName
    parentId
    path
    slug
    __typename
  }
  __typename
}

fragment ItemLikeFragment on ItemLike {
  itemId {
    id
    code
    __typename
  }
  displayName
  description
  imageSet {
    original {
      link {
        href
        __typename
      }
      __typename
    }
    thumbnail {
      link {
        href
        __typename
      }
      __typename
    }
    variants {
      name
      image {
        dimension {
          w
          h
          __typename
        }
        link {
          href
          __typename
        }
        __typename
      }
      __typename
    }
    __typename
  }
  listPrice {
    moneyAmounts {
      ...MoneyAmountFragment
      __typename
    }
    __typename
  }
  purchasePrice {
    moneyAmounts {
      ...MoneyAmountFragment
      __typename
    }
    __typename
  }
  __typename
}

fragment MoneyAmountFragment on MoneyAmount {
  amount
  currency
  displayValue
  channelId
  __typename
}

fragment ItemVariantFragment on ItemVariant {
  ...ItemLikeFragment
  master
  varAttrs {
    name
    values
    __typename
  }
  customAttrs {
    name
    values
    __typename
  }
  mainItem {
    itemId {
      id
      code
      __typename
    }
    displayName
    slug
    __typename
  }
  availability {
    inStock
    availableQuantity
    restockableInDays
    channels {
      channelId
      inStock
      availableQuantity
      restockableInDays
      __typename
    }
    __typename
  }
  __typename
}

fragment FacetResultFragment on FacetResult {
  fields {
    id
    name
    values {
      id
      parentId
      name
      count
      __typename
    }
    __typename
  }
  ranges {
    name
    id
    values {
      start
      end
      count
      __typename
    }
    __typename
  }
  __typename
}

Hi,
please make sure that you feed defines the variant as described here [1], like

[
    {
        "op": "add",
        "path": "/products/435898",
        "value": {
            "attributes": {
                "title": "awesome brakes",
            },
            "variants": {
                "43589801": {
                    "attributes": {
                        "availability": true
                    }
                },
                "43589802": {
                    "attributes": {
                        "availability": true
                    }
                }
            },
...

Regards,

[1] Format your Data (Product)

1 Like