Skip to content
SIBISIBI Developers
Esc
navigateopen⌘Jpreview
On this page

OrderingQuery.products()

Retrieve products for a manufacturer by SKU, with availability for an address.

type OrderingQuery {
  products(address: OrderingAddressInput, manufacturer: String!, skus: [String!]!): [OrderingProduct]!
}

Input

address

OrderingAddressInput - The address associated with the order. Optional. If provided, the address must be a valid address — if it is not valid, the query will fail with an error. If the address is valid but we don’t already have a property for it, then a property will be created and assigned to the organization the calling credentials belong to. If omitted, availability will return a status of UNKNOWN and a quantity of 0.

manufacturer

string - The manufacturer of the products to search for. (example: ‘ge’, ‘msi’)

skus

string[] - List of SKUs to search for. If a product cannot be found for a given sku, the response will contain a null in the corresponding index.

Response

OrderingProduct

OrderingProduct[] - List of products matching the input skus criteria. If a product cannot be found for a given sku, the response will contain a null in the corresponding index.

OrderingProduct

type OrderingProduct {
  id: ID!
  sku: String!
  manufacturer: String!
  title: String!
  subtitle: String
  description: String
  category: String!
  subcategories: [String!]!
  color: String @deprecated(reason: "Use attributes instead.")
  attributes: [OrderingProductAttribute!]!
  viewUrl: String!
  availability: OrderingAvailability!
  imageUrl: String!
  imageUrls: [String!]!
  priceCents: Int!
  msrpPriceCents: Int
  addons: [OrderingProductAddon!]!
  dimensions: OrderingProductDimensions!
  baseUnitOfMeasure: String!
  unitsOfMeasure: [OrderingProductUnitOfMeasure!]!
  recommendedParts: [OrderingProductPart!]!
  availableFulfillmentMethods: [OrderingProductFulfillmentMethod!]!
  warranties: [OrderingProductWarranty!]!
  options: [OrderingProductOption!]!
}

id

string - SIBI identifier for the product. Unique across all products returned by the API.

sku

string - The SKU of the product. Is defined by the manufacturer or distributor.


manufacturer

string - The manufacturer of the product. This value is valid for use in the manufacturer field of all input types that accept a manufacturer.


title

string - The human readable name of the product.


subtitle

string | null - A short description of the product.


description

string | null - A brief description of the product. Will be null when not available.


category

string - The broad category this product falls into.


subcategories

string[] - Array of strings of all the specific subcategories this product falls into. May be empty and may also be 1 with category


color (deprecated)

string | null - Deprecated. Read the color entry of attributes instead. The color of the product. Is not available for all products.


attributes

OrderingProductAttribute[] - The catalog attributes of this product that are relevant to ordering it, as { name, value } pairs — e.g. sheen or color. Which attributes a product carries varies by product; empty when it has none.


viewUrl

string - A URL to view the product in the Sibi Web UI.


availability

OrderingAvailability - The availability of the product. Returns a status of ‘UNKNOWN’ and a quantity of 0 if the address is missing.


imageUrl

string - The URL of the product’s image.


imageUrls

string[] - The URLs of all of the product’s images, with the primary image (the same image returned by imageUrl) always first.


priceCents

number - The price of the product in cents.


msrpPriceCents

number | null - The Manufacturer’s Suggested Retail Price of the product in cents. Is not available for all products. Will be null when not available.


addons

OrderingProductAddon[] - An array of addons (services and/or accessories) that can be ordered with the product.


dimensions

OrderingProductDimensions - The physical dimensions of the product.


baseUnitOfMeasure

string - The unit this product’s priceCents is denominated in (e.g. “Each”, “Sq Ft”). When unitsOfMeasure is non-empty, the product cannot be purchased in fractional amounts of this base unit directly — pass one of unitsOfMeasure’s unitOfMeasure values as unitOfMeasure when calling reviewOrder or createOrder. When unitsOfMeasure is empty, pass this value instead (or omit unitOfMeasure to default to it).


unitsOfMeasure

OrderingProductUnitOfMeasure[] - Alternate purchasable units for this product — e.g. a flooring product priced by the Sq Ft that can only be ordered by the Box or Pallet, each covering a fixed quantity of baseUnitOfMeasure (see quantityPerBaseUnit). Empty when the product has no alternate units and can be ordered directly in baseUnitOfMeasure.


recommendedParts

OrderingProductPart[] - An array of products that can be purchased with the parent. Will include things like power cables for electric ranges or ice makers for refrigerators. Some of these parts are included with addons. For example, an electric range’s “Install” addon will generally include the power cable part.


availableFulfillmentMethods

OrderingProductFulfillmentMethod[] - The fulfillment methods available for this product, each showing the earliest date it can be fulfilled and the distribution center that provides that date. Each method also carries the full set of distribution centers that can fulfill this product by that method, each with its own estimated fulfillment date, in distributionCenters — sorted earliest first, so the top-level estimatedFulfillmentDate and distributionCenter correspond to its first entry. Use that list when you need to offer a choice of distribution center rather than defaulting to the earliest. Returns an empty array when no address is provided or when fulfillment information is unavailable.


warranties

OrderingProductWarranty[] - The extended-warranty products that can be purchased alongside this product. Returns an empty array when no address is provided or when no warranty coverage is available for the product.


options

OrderingProductOption[] - The selectable option values for this product — e.g. the standard color palette of a PPG tintable paint, one entry per color. Entries sharing a key are alternative values for the same option. Empty for products with no selectable options. Some products have an option that must be selected at order time (e.g. PPG tintable paints) — one of its { key, value } pairs must be included in products[].options, and omitting it is rejected with an INVALID_PRODUCT_OPTIONS error — when calling reviewOrder or createOrder. This list holds each option’s standard values; other valid values may exist beyond it (e.g. the full PPG color catalog), and any valid value identifier is accepted at order time.

query {
  ordering {
    products(manufacturer: "ppg", skus: ["ppg-interior-paint-1gal"]) {
      sku
      title
      options {
        key
        value
        name
        hex
      }
    }
  }
}

OrderingAvailability

type OrderingAvailability {
  status: OrderingAvailabilityStatus!
  quantity: Int!
  distributionCenters: [OrderingDistributionCenterAvailability!]!
}

status

OrderingAvailabilityStatus - The availability status of the product. One of IN_STOCK, OUT_OF_STOCK, UNAVAILABLE, or UNKNOWN. The value of status reflects local availability for the address provided, or UNKNOWN if no address was given.

quantity

number - The quantity of the product that is available at the closest distribution center to the property that has the product available.

distributionCenters

OrderingDistributionCenterAvailability[] - Per-distribution-center availability breakdown. Each entry represents a distribution center that carries this product. Only populated when an address is provided. Returns an empty array when distribution center information is unavailable.


OrderingDistributionCenterAvailability

type OrderingDistributionCenterAvailability {
  status: OrderingAvailabilityStatus!
  quantity: Int!
  distributionCenter: OrderingDistributionCenter!
  distributionCenterId: ID! @deprecated(reason: "Use distributionCenter { id } instead.")
  distributionCenterLatitude: Float @deprecated(reason: "Use distributionCenter { latitude } instead.")
  distributionCenterLongitude: Float @deprecated(reason: "Use distributionCenter { longitude } instead.")
  distributionCenterAddress: OrderingAddress! @deprecated(reason: "Use distributionCenter { address } instead.")
}

status

OrderingAvailabilityStatus - The availability status of the product at this distribution center. One of IN_STOCK, OUT_OF_STOCK, UNAVAILABLE, or UNKNOWN.

quantity

number - The quantity of the product available at this distribution center.

distributionCenter

OrderingDistributionCenter - The distribution center where this product is available. Use distributionCenter { id } when calling reviewOrder or createOrder to specify a distribution center.

distributionCenterId (deprecated)

string - Deprecated. Use distributionCenter { id } instead.

distributionCenterLatitude (deprecated)

number | null - Deprecated. Use distributionCenter { latitude } instead.

distributionCenterLongitude (deprecated)

number | null - Deprecated. Use distributionCenter { longitude } instead.

distributionCenterAddress (deprecated)

OrderingAddress - Deprecated. Use distributionCenter { address } instead.


OrderingDistributionCenter

type OrderingDistributionCenter {
  id: ID!
  name: String!
  latitude: Float
  longitude: Float
  address: OrderingAddress!
  imageUrl: String
  storeNumber: String!
}

id

string - The distribution center’s unique identifier. Use this when placing orders at a specific DC.

name

string - The name of the distribution center.

latitude

number | null - The latitude of the distribution center’s location.

longitude

number | null - The longitude of the distribution center’s location.

address

OrderingAddress - The address of the distribution center.

imageUrl

string | null - The URL of the distribution center’s logo.

storeNumber

string - The store number of the distribution center. May not actually be numeric.


OrderingProductDimensions

type OrderingProductDimensions {
  length: Float
  lengthUnit: String
  width: Float
  widthUnit: String
  height: Float
  heightUnit: String
  depth: Float
  depthUnit: String
}

A product reports its front-to-back extent under either depth or length depending on its manufacturer’s convention — most appliances report depth, most HVAC equipment reports length — not both.

length

number | null - The numerical length value. Will be null if not available.

lengthUnit

string | null - The unit of measurement for length (e.g., “inch”). Will be null if not available.

width

number | null - The numerical width value. Will be null if not available.

widthUnit

string | null - The unit of measurement for width (e.g., “inch”). Will be null if not available.

height

number | null - The numerical height value. Will be null if not available.

heightUnit

string | null - The unit of measurement for height (e.g., “inch”). Will be null if not available.

depth

number | null - The numerical depth value. Will be null if not available.

depthUnit

string | null - The unit of measurement for depth (e.g., “inch”). Will be null if not available.


OrderingProductUnitOfMeasure

type OrderingProductUnitOfMeasure {
  unitOfMeasure: String!
  quantityPerBaseUnit: Float!
}

An alternate purchasable unit for a product, and how it converts to the product’s baseUnitOfMeasure. See OrderingProduct.unitsOfMeasure.

unitOfMeasure

string - The unit to pass as unitOfMeasure when calling reviewOrder or createOrder to purchase this product in this unit (e.g. “Box”, “Pallet”).

quantityPerBaseUnit

number - The number of baseUnitOfMeasure contained in each of this unit (e.g. 23.77 sq ft per box). Multiply by the requested quantity of this unit to get the total in the base unit.

OrderingProductOption

type OrderingProductOption {
  key: String!
  value: String!
  name: String!
  title: String! @deprecated(reason: "Use name instead.")
  hex: String
}

A value a product’s selectable option can be set to — e.g. one paint color. To select it, pass its { key, value } in products[].options when calling reviewOrder or createOrder. Entries sharing a key are alternative values for the same option. The same type is echoed on reviewOrder responses as the selection on each product line — see OrderingOrderProduct.options.

key

string - The option identifier (e.g. "ppg-paint-color"). Pass this as options[].key when calling reviewOrder or createOrder.

value

string - The value identifier (e.g. the PPG color code "PPG1105-3"). Pass this as options[].value when calling reviewOrder or createOrder.

name

string - The human readable name of the value (e.g. the paint color name “Delicate White”).

title (deprecated)

string - Deprecated. Use name instead.

hex

string | null - The CSS hex color (#RRGGBB) of this value, for values that represent a color (e.g. a paint color). Will be null when the value has no color representation.


OrderingProductPart

type OrderingProductPart {
  sku: String!
  title: String!
  category: String!
  priceCents: Int!
}

sku

string - The SKU of the part. It is defined by the manufacturer or distributor.

title

string - The human readable name of the part.

category

string - The broad category this part falls into.

priceCents

number - The price of the part in cents.

Was this page helpful?