Skip to content

An alcoholic beverage product available at LCBO stores

graphql
type Product {
  externalId: String!
  sku: String!
  name: String!
  primaryCategory: String
  producerName: String
  origin: String
  countryOfManufacture: String
  regionName: String
  priceInCents: Int!
  shortDescription: String
  thumbnailUrl: URL
  upcNumber: String
  alcoholPercent: Float
  unitVolumeMl: Int
  sellingPackage: String
  bottlesPerPack: Int
  bottlesPerCase: Int
  isBuyable: Boolean
  isSeasonal: Boolean
  isVqa: Boolean
  isKosher: Boolean
  sellRankMonthly: Int
  sellRankYearly: Int
  viewRankYearly: Int
  updatedAt: DateTime!
  pricePerAlcoholMl: Float
  inventories(
    filters: InventoryFilterInput
    pagination: PaginationInput
    sortBy: InventorySortField
    sortDirection: SortDirection
  ): InventoryConnection!
  categories: [Category!]!
  history(
    filters: HistoryFilterInput!
  ): [ProductHistory!]!
}

Fields

Product.externalId ● String! non-null scalar

LCBO internal reference ID (e.g., "123456")

Product.sku ● String! non-null scalar

Stock Keeping Unit - Main identifier for products (e.g., "12345")

Product.name ● String! non-null scalar

Official product name

Product.primaryCategory ● String scalar

Product.producerName ● String scalar

Product.origin ● String scalar

Product.countryOfManufacture ● String scalar

Product.regionName ● String scalar

Product.priceInCents ● Int! non-null scalar

Product.shortDescription ● String scalar

Product.thumbnailUrl ● URL scalar

Product.upcNumber ● String scalar

Product.alcoholPercent ● Float scalar

Product.unitVolumeMl ● Int scalar

Product.sellingPackage ● String scalar

Product.bottlesPerPack ● Int scalar

Product.bottlesPerCase ● Int scalar

Product.isBuyable ● Boolean scalar

Product.isSeasonal ● Boolean scalar

Product.isVqa ● Boolean scalar

Product.isKosher ● Boolean scalar

Product.sellRankMonthly ● Int scalar

Product.sellRankYearly ● Int scalar

Product.viewRankYearly ● Int scalar

Product.updatedAt ● DateTime! non-null scalar

Product.pricePerAlcoholMl ● Float scalar

Price per milliliter of pure alcohol in cents (computed field). Calculated as: priceInCents / (unitVolumeMl * alcoholPercent / 100) Lower values indicate better value for alcohol content. Null if alcoholPercent or unitVolumeMl is not available.

Product.inventories ● InventoryConnection! non-null object

Get inventories for this product with optional filtering, pagination, and sorting. Supports geospatial filtering, minimum quantity filtering, and sorting by quantity, distance, price, or updated_at.

Product.inventories.filters ● InventoryFilterInput input
Product.inventories.pagination ● PaginationInput input
Product.inventories.sortBy ● InventorySortField enum
Product.inventories.sortDirection ● SortDirection enum

Product.categories ● [Category!]! non-null object

Categories this product belongs to

Product.history ● [ProductHistory!]! non-null object

Get historical changes for this product

⚠️ EXPERIMENTAL: History API is in beta. Schema and behavior may change without notice.

Product.history.filters ● HistoryFilterInput! non-null input

Returned By

product query

Member Of

Inventory object ● ProductEdge object