Product

For AI agents: visit https://developer.finaleinventory.com/llms.txt for an index of all pages formatted in Markdown and endpoints in OpenAPI.

Product Skip link to Product

Overview Skip link to Overview

Products represent the items that your company sells, purchases, builds, or tracks. They are the fundamental "things" in your inventory system that everything else references. Whether you're fulfilling orders, receiving shipments, or tracking stock levels, products are at the center of every operation.

Products in Finale can serve different roles based on your business needs. Regular products are standard inventory items tracked individually. Kit products have a Bill of Materials (BOM) that defines their component parts - useful when you sell assembled items or bundles. Virtual kits allow you to sell a bundle while shipping the individual components, with the system automatically handling the kit-to-component conversion during fulfillment.

The product record captures essential identifiers like SKU, UPC, and manufacturer information that help you track and organize your catalog. Products can be categorized, assigned to manufacturers, and marked as active or inactive. Pricing information includes both item price (per unit) and case price (for wholesale), accommodating different sales scenarios.

Physical attributes like dimensions and weight support shipping calculations and warehouse space planning. The system tracks case packing configurations - for example, "12/1" means 12 units per case - which affects how quantities are displayed and how products are picked and packed in your warehouse.

Products connect to nearly every other part of Finale. They appear on order line items, shipment records, invoice lines, and stock records. The GraphQL API enhances products with calculated fields showing current stock levels (on hand, available, reserved), average costs, and sales performance metrics, giving you real-time visibility into inventory and financial status without needing separate queries.


GraphQL API Skip link to GraphQL API

The product collection provides access to product data via the GraphQL API. All queries use the Relay connection specification with cursor-based pagination.

Query Name:productViewConnection

Available Features:

Query Examples Skip link to Query Examples

Basic Query Skip link to Basic Query

The product collection is accessed via the productViewConnection query, which returns a Relay-style connection with pagination support.

GraphQL

query {
  productViewConnection(first: 10) {
    edges {
      node {
        accountOverride
        amazonStandardIdentificationNumber
        averageCost
        averageGrossSalesPerUnit
        averageGrossSalesPerUnitChange
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}

Pagination Skip link to Pagination

Use cursor-based pagination to retrieve large datasets:

GraphQL

# First page
query {
  productViewConnection(first: 50) {
    edges {
      node { amazonStandardIdentificationNumber }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}

# Subsequent pages
query {
  productViewConnection(first: 50, after: "cursor-from-previous-page") {
    edges {
      node { amazonStandardIdentificationNumber }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}

Filtering Skip link to Filtering

Apply filters to narrow results (see Filters section for all available options):

GraphQL

query {
  productViewConnection(
    first: 10
    accountOverride: ["##productAcctOverride"]
  ) {
    edges {
      node { amazonStandardIdentificationNumber }
    }
  }
}

Sorting Skip link to Sorting

Sort results by one or more fields:

GraphQL

query {
  productViewConnection(
    first: 10
    sort: [{ field: "averageCost", mode: "desc" }]
  ) {
    edges {
      node {
        amazonStandardIdentificationNumber
        averageCost
      }
    }
  }
}

Relations Skip link to Relations

Query related data (see Relations section for all available relations):

GraphQL

query {
  productViewConnection(first: 10) {
    edges {
      node {
        amazonStandardIdentificationNumber
        connectionRelation {
          syncStatuses
          errorDetails
        }
      }
    }
  }
}

Summary and Aggregation Skip link to Summary and Aggregation

This collection supports data aggregation and dimensional analysis through the summary field. You can calculate metrics (like totals, averages, counts) and group them by dimensions (like category, date, status).

For a comprehensive guide to using aggregations, see the Aggregation Concept Guide.

Query Structure Skip link to Query Structure

GraphQL

productViewConnection(filters...) {
  summary {
    errorCode
    errorMessage
    groupBy {
      # Group by dimensions (see table below)
    }
    metrics {
      # Calculated metrics (see table below)
    }
  }
}

Available Metrics Skip link to Available Metrics

This collection provides 24 metrics that can be aggregated:

Metric Parameters Description
neqPerUnit transform, operator neqPerUnit for product
lastPurchaseLandedCostPerUnit transform, operator lastPurchaseLandedCostPerUnit for product
lastPurchasePrice transform, operator lastPurchasePrice for product
averageGrossSalesPerUnit transform, operator, dateRange, facilityUrlList Average gross sales per unit
averageUnitsPerSale transform, operator, dateRange, facilityUrlList averageUnitsPerSale for product
cogsSales transform, operator, dateRange, facilityUrlList cogsSales for product
countSales transform, operator, dateRange, facilityUrlList countSales for product
grossSales transform, operator, dateRange, facilityUrlList Gross sales amount
marginSales transform, operator, dateRange, facilityUrlList marginSales for product
unitSales transform, operator, dateRange, facilityUrlList Number of units sold
unitSalesForSalesVelocity transform, operator, dateRange, facilityUrlList unitSalesForSalesVelocity for product
reorderQuantityToOrder transform, operator, facilityUrlList, facilityUrl, reservedSublocationFacilityUrlList Quantity to reorder to reach reorder point
reorderQuantityToOrderEditable transform, operator, facilityUrlList, facilityUrl, reservedSublocationFacilityUrlList reorderQuantityToOrderEditable for product
replenishmentQuantityToOrder transform, operator, facilityUrlList, facilityUrl, reservedSublocationFacilityUrlList replenishmentQuantityToOrder for product
replenishmentQuantityToOrderEditable transform, operator, facilityUrlList, facilityUrl, reservedSublocationFacilityUrlList replenishmentQuantityToOrderEditable for product
stock transform, operator, aggregate, count, facilityUrlList, includeBom, includeSupplier, lotIdSearch, stockType Stock quantity across facilities
stockOnHand transform, operator, aggregate, count, facilityUrlList, includeBom, includeSupplier, lotIdSearch, reservedSublocationFacilityUrlList Available stock on hand
stockReserved transform, operator, aggregate, count, facilityUrlList, includeBom, lotIdSearch, reservationType stockReserved for product
stockOnOrder transform, operator, aggregate, count, facilityUrlList, includeBom, lotIdSearch stockOnOrder for product
stockAvailable transform, operator, aggregate, count, facilityUrlList, includeBom, includeSupplier, lotIdSearch, reservedSublocationFacilityUrlList stockAvailable for product
stockRemaining transform, operator, aggregate, count, facilityUrlList, includeBom, includeSupplier, lotIdSearch stockRemaining for product
averageCost transform, operator averageCost for product
valuation transform, operator, facilityUrlList, lotIdSearch valuation for product
count None Count of items in the result set

Common Parameters:

GroupBy Dimensions Skip link to GroupBy Dimensions

Group metrics by these dimensions:

Dimension Description
category Product category
supplier1 Primary supplier
supplier2 supplier2 for product
supplier3 supplier3 for product

All dimensions accept a formatter parameter: "html", "none", "abbreviated", "blank-zero".

Examples Skip link to Examples

Example 1: Inventory Analysis by Category Skip link to Example 1: Inventory Analysis by Category

Calculate total stock and count by product category:

GraphQL

query {
  productViewConnection(first: 1) {
    summary {
      errorCode
      errorMessage
      groupBy {
        category
      }
      metrics {
        itemCount: count
        totalStock: stock(operator: sum)
        totalOnHand: stockOnHand(operator: sum)
      }
    }
  }
}

Expected result structure:

JSON

{
  "data": {
    "productViewConnection": {
      "summary": {
        "errorCode": null,
        "errorMessage": null,
        "groupBy": {
          "category": ["Electronics", "Apparel", "Home Goods"]
        },
        "metrics": {
          "itemCount": [45, 120, 78],
          "totalStock": [1500, 3200, 890],
          "totalOnHand": [1200, 2800, 750]
        }
      }
    }
  }
}

Example 2: Sales Performance by Supplier Skip link to Example 2: Sales Performance by Supplier

Analyze sales metrics grouped by primary supplier:

GraphQL

query {
  productViewConnection(first: 1) {
    summary {
      errorCode
      errorMessage
      groupBy {
        supplier1
      }
      metrics {
        productCount: count
        avgGrossSales: grossSales(operator: mean)
      }
    }
  }
}

Fields Skip link to Fields

This collection has 192 fields:

Note on Field Formatting: All scalar fields support the formatter argument to control output format. Available options: "html", "none", "abbreviated", "blank-zero". Some fields have a default formatter (shown below). See the Formatting guide for details.

Note on Sorting: Field sortability may vary depending on the UI context and query parameters used. Some parameter options explicitly disable sorting (marked with ⚠️ not sortable).

Simple Fields Skip link to Simple Fields

These fields return values directly without additional options.

amazonStandardIdentificationNumber Skip link to [object Object]

The Amazon Standard Identification Number (ASIN) assigned to the product for selling on Amazon. This unique identifier is used to track and manage products within Amazon's marketplace, particularly for Fulfillment by Amazon (FBA) operations. The field can be populated through scan lookup services when importing or merging product information from Amazon.

Label: Amazon

ASIN

Sortable: No


averageCost Skip link to [object Object]

The calculated average cost per unit of the product, based on purchase transactions. This value changes over time as new inventory is purchased at different unit prices. When products are received through purchase orders and shipments, the average cost is recalculated by blending the cost of existing inventory with newly received items. For example, if 25 units are purchased at $11.22 and then 20 more units are received at $12.33, the average cost would be recalculated to reflect the weighted average of these transactions. This field is used for inventory valuation and cost of goods calculations.

Label: Average cost

Sortable: Yes


bomEstimatedAverageCost Skip link to [object Object]

The calculated average cost of all components in a product's bill of materials. This field aggregates the average cost of each component product listed in the BOM, factoring in the quantities specified for each component. The value is only populated when all BOM items have an average cost; if any component lacks an average cost, this field remains null. This calculation is useful for understanding the total material cost that goes into manufacturing or assembling a product based on the average costs of its constituent parts.

Label: BOM estimated

average cost

Sortable: No


bomSublocationSummary Skip link to [object Object]

A text summary showing the Bill of Materials components for a product along with their inventory availability across different sublocations. For each BOM component, displays the product ID, quantity needed, and current stock levels by sublocation. Items with no inventory show "No items on hand" while items with stock display the sublocation name and quantity available. This provides a quick overview of component availability when planning production or assembly of bundled products.

Label: BOM sublocation summary

Sortable: No


caseDepth Skip link to [object Object]

The depth measurement of the product's case or packaging. This dimension works together with case height and case width to define the complete dimensions of a product case, with the unit of measurement specified in the case dimensions unit field. These measurements are important for warehouse space planning, shipping calculations, and inventory storage optimization.

Label: Case depth

Sortable: No

Status: ❌ Disabled


caseHeight Skip link to [object Object]

The height measurement of the product's case or outer packaging. This dimension is used alongside case width and case depth to specify the full dimensions of a case, with the unit of measurement defined by the case dimensions unit field. These case dimensions are typically used for warehouse planning, shipping calculations, and storage space management.

Label: Case height

Sortable: No

Status: ❌ Disabled


casePrice Skip link to [object Object]

The list price for selling the product by the case rather than by individual item. This represents the standard selling price when the product is sold in case quantities, as opposed to itemPrice which applies to single unit sales. The case price is stored in USD and appears in product lists and reports where pricing by case is relevant, particularly for products with defined case packaging.

Label: Case price

GraphQL Type:Price

Sortable: Yes


caseWidth Skip link to [object Object]

The width dimension of the product's case or outer packaging. This field is part of the case dimensions (along with case depth and case height) that describe the physical size of the product when packaged for shipping or storage. The width is typically measured in the unit specified by the case dimensions unit field and is used for warehouse space planning, shipping calculations, and logistics management.

Label: Case width

Sortable: No

Status: ❌ Disabled


category Skip link to [object Object]

A free-text field for categorizing products using custom category names. This is the modern alternative to the legacy user-defined category codes stored in userCategory. The system can operate in either legacy mode (using predefined category codes from productUserCategoryList) or modern mode (using free-text category values). When filtering or displaying products, the category helps organize items by type such as "Shells", "Cakes", "Giraffes", or any other custom classification relevant to the business. Users can search, filter, and group products by category, making it easier to manage and analyze inventory across different product types.

Label: Category

GraphQL Type:OptionList

Sortable: Yes


cbmPerUnit Skip link to [object Object]

The volume measurement in cubic meters per unit for a product. This field stores the physical volume that a single unit of the product occupies, expressed as a decimal number. Users can enter or update this value to track space requirements for inventory planning and shipping calculations.

Label: CBM per unit

Sortable: No

Status: ❌ Disabled


ceNumber Skip link to [object Object]

A product compliance identifier used for tracking CE (Conformité Européenne or European Conformity) marking numbers or similar regulatory certification numbers. This field is optional and can be enabled or disabled through user preferences, appearing alongside other regulatory identifiers like hazardous materials codes. It accepts up to 255 characters and is typically used by businesses selling products in markets that require CE marking or similar compliance certifications.

Label: CE number

Sortable: Yes


chainNumberOfDevices Skip link to [object Object]

The number of devices in a chain for the product. This field accepts numeric values, including zero, and can be left blank if not applicable. It is displayed and editable in product-related reporting and pivot table views where users can track and modify the device count for chain configurations.

Label: Chain number of devices

Sortable: No


code128 Skip link to [object Object]

A barcode identifier field that stores Code 128 barcode values for the product. This field accepts alphanumeric text that can be used for barcode scanning and product identification. The field supports barcode scanning functionality through scan lookups and can be enabled or disabled through the useCode128 account configuration setting. When invalid characters are entered (such as characters not supported by Code 128 format), the value is rejected and set to null.

Label: Code 128

Sortable: No

Status: ❌ Disabled


customPartField Skip link to [object Object]

A user-definable text field for storing custom product information, limited to 255 characters. This field allows businesses to track additional product attributes that are specific to their operations and not covered by standard product fields. The field can be displayed in product reports and pivot tables, and is editable through the product interface.

Label: Custom part field

Sortable: No

Status: ❌ Disabled


description Skip link to [object Object]

The short text name or description that identifies the product. This is the primary display name used throughout the system to describe what the product is, such as "Red Fake Peony" or "Hat". Users can view and edit this field when creating or updating product records. The field has a maximum length and cannot contain special unicode characters or control characters.

Label: Description

Sortable: Yes


dmxFixtureDefinition Skip link to [object Object]

A text field that stores the DMX fixture definition for a product. DMX (Digital Multiplex) is a standard protocol used in the entertainment and lighting industry to control stage lighting and effects equipment. This field allows businesses to specify the technical DMX configuration or fixture profile associated with a product, which is essential for entertainment equipment retailers and rental companies who need to track lighting fixture specifications for inventory and setup purposes. The field has a maximum length of 255 characters.

Label: DMX fixture definition

Sortable: No

Status: ❌ Disabled


dmxPatch Skip link to [object Object]

The DMX patch assignment for the product. DMX is a standard communication protocol used in the entertainment and events industry to control lighting, special effects, and other stage equipment. The patch value identifies where this product is assigned within the DMX control system, allowing it to be controlled and addressed by lighting consoles and controllers. This field is particularly relevant for products that are lighting fixtures or controllable stage equipment.

Label: DMX patch

Sortable: No

Status: ❌ Disabled


duration Skip link to [object Object]

A numeric value representing the duration of a product. This field is typically used for products that have a time-based characteristic, such as effects or performances. The value is stored as a number and can be zero or any positive value. When not specified, the field is treated as null.

Label: Duration

Sortable: No


effectColor Skip link to [object Object]

The color description for the visual effect produced by the product. This text field is used for products that create visual effects, such as pyrotechnic or lighting items, and describes the color characteristics of the effect when the product is used. The field can be updated and is often used alongside other effect properties like effect height, width, and subtype to fully describe the visual display characteristics of the product.

Label: Effect color

Sortable: No

Status: ❌ Disabled


effectHeight Skip link to [object Object]

The vertical dimension of the light or visual effect produced by the product, typically measured in the product's distance unit. This field is commonly used for lighting equipment, special effects devices, and similar products where the height of the projected or emitted effect is an important specification. The value is stored as a numeric measurement and can be null if not applicable to the product type.

Label: Effect height

Sortable: No


effectSubType Skip link to [object Object]

A text field that categorizes the specific subtype of effect for products that produce lighting or visual effects. This field provides additional classification detail beyond the main effect category, allowing users to distinguish between different variations of effects. The field can store up to 255 characters and is typically used for products with effect-related properties such as stage lighting, special effects equipment, or similar effect-producing items.

Label: Effect sub type

Sortable: No

Status: ❌ Disabled


effectWidth Skip link to [object Object]

The width dimension of a product's visual effect, typically measured in numeric units. This field is used alongside effect height and effect sub-type to define the spatial characteristics of products that produce visual effects. The value can be a decimal number, zero, or null if not applicable to the product.

Label: Effect width

Sortable: No


eMatches Skip link to [object Object]

A text field used to store eMatches information for fireworks products. eMatches are electronic ignition devices used in pyrotechnic displays. This field allows users to record details about the electronic match specifications or requirements for the product, which is particularly relevant for products used in professional fireworks displays and special effects.

Label: E-matches

Sortable: No

Status: ❌ Disabled


exNumber Skip link to [object Object]

An explosives certification identifier assigned to pyrotechnic products. This field can contain multiple EX numbers separated by spaces, commas, semicolons, or colons. EX numbers are regulatory certifications used in the fireworks and explosives industry to indicate that a product has been tested and approved for safety compliance. Users can enter and search by these certification numbers to identify products that meet specific regulatory requirements.

Label: EX number

Sortable: Yes


fuseDelay Skip link to [object Object]

The delay time for a fuse in a fireworks product, measured in seconds. This field is used in the pyrotechnics industry to specify how long the fuse will burn before the firework ignites. The field displays as "Fuse delay" in product tables and can be left blank for non-pyrotechnic products. When set to zero, it indicates an instant ignition with no delay.

Label: Fuse delay

Sortable: No

Status: ❌ Disabled


hazardDefault Skip link to [object Object]

A text field that stores default hazard information or warnings associated with the product. This field can contain descriptive text about hazards related to the product and can be updated as needed. The field is displayed as "Hazard default" in reporting interfaces and is typically hidden by default in product views.

Label: Hazard default

Sortable: No

Status: ❌ Disabled


hazardousMaterial Skip link to [object Object]

An identifier that classifies the product as a hazardous material, typically using standardized codes such as UN numbers (e.g., UN0433). This field is used to track and categorize products that require special handling, storage, or shipping procedures due to their hazardous nature. The identifier corresponds to entries in a hazardous materials reference collection that contains detailed descriptions of each classification. When present, this field appears in product summaries and can be used to filter or group products by their hazardous material classification.

Label: Hazardous

material

Sortable: Yes


hazardousMaterialDescription Skip link to [object Object]

The descriptive text that explains the specific hazardous material classification assigned to the product. This field provides a human-readable description of the hazardous material type, such as the description for a UN hazard code (e.g., "Description for UN0433"). It appears alongside the hazardous material identifier to help users understand the nature of the hazardous material classification without needing to look up the code separately.

Label: Hazardous

material

description

Sortable: No


imageTooltip Skip link to [object Object]

An image attachment associated with the product, typically displayed visually in product lists and views. This field returns a Content object containing metadata about the product image including the filename, file type, file size, and storage location. Products may have an image attached, have partial image information, or have no image at all. Use the Content object's fileUrl field to access the actual image file.

Label: Image

Type:##contentUrlAttachment

Sortable: No


internationalArticleNumber Skip link to [object Object]

The product's International Article Number (EAN), which is a standardized barcode format primarily used in Europe for retail product identification. This field is used when integrating with e-commerce platforms like Shopify to sync barcode information, and is checked along with UPC and ISBN codes when performing scan lookups to identify products.

Label: EAN

Sortable: No

Status: ❌ Disabled


itemCost Skip link to [object Object]

The cost value assigned to a product item, representing the per-unit expense of the product in inventory. This field is used in accounting calculations and can be sorted in product queries. The itemCost contributes to determining total costs for orders and transactions when combined with other expenses like shipping costs.

Label: Std accounting cost

GraphQL Type:Price

Sortable: Yes


itemPrice Skip link to [object Object]

The list price for a single unit of the product. This is the standard retail or catalog price displayed to customers, extracted from the product's price list where the price type is LIST_PRICE. The field can be used for sorting and filtering products.

Label: Item price

GraphQL Type:Price

Sortable: Yes


lastPurchaseLandedCostPerUnit Skip link to [object Object]

The per-unit landed cost from the most recent purchase of this product. Landed cost includes the purchase price plus any additional costs such as shipping, duties, and freight charges allocated to each unit. This differs from the last purchase price, which reflects only the supplier's quoted price. Users can view this field to understand the true total cost per unit of acquiring the product from their last purchase order, helping with accurate pricing decisions and profitability analysis.

Label: Last purchase landed cost per unit

Sortable: Yes


lastPurchasePrice Skip link to [object Object]

The price paid per unit on the most recent purchase order for this product. This field captures the unit price from the last time the product was purchased, providing a historical reference point for comparing current vendor pricing and tracking cost trends over time. It differs from lastPurchaseLandedCostPerUnit, which includes additional costs beyond the base purchase price.

Label: Last purchase price

Sortable: Yes


leadTime Skip link to [object Object]

The number of days required to obtain this product when it is not currently in stock. This field can be set at the product level as a default value, and can also be specified for individual suppliers in the product's supplier list. When determining how long it will take to fulfill an order for a product that needs to be restocked, the system uses the lead time to calculate expected availability dates. Lead time values are typically between 0 and several weeks, with null indicating no default lead time has been specified.

Label: Std lead days

Sortable: No


manufacturer Skip link to [object Object]

The name of the manufacturer or brand associated with the product. This field is used to identify and group products by their maker, allowing users to filter and organize product listings by manufacturer. It appears in product views and reports as "Mfg" and can be used to filter product searches. The manufacturer name helps users quickly identify products from specific brands or suppliers when viewing inventory, creating orders, or generating reports.

Label: Manufacturer

GraphQL Type:OptionList

Sortable: Yes


manufacturerMarkText Skip link to [object Object]

A text field that stores manufacturer marking information for the product. This field can be configured through the product GUI options using the useManufacturerMark setting and is available for import and export operations. The field allows businesses to record specific text markings or identifiers that the manufacturer uses for the product, which may differ from standard identifiers like the manufacturer product ID.

Label: Manufacturer mark text

Sortable: No


mfgProductId Skip link to [object Object]

The manufacturer's unique identifier or part number for the product. This is the identifier assigned by the product's manufacturer to distinguish it in their catalog, often referred to as the MPN (Manufacturer Part Number). This field is used alongside other product identifiers like UPC and EAN for product identification and lookup purposes.

Label: Mfg

product ID

Sortable: Yes


neqPerUnit Skip link to [object Object]

The net explosive mass per unit of the product, expressed as a numeric quantity. This field is used for products containing hazardous or explosive materials and represents the NEQ (Net Explosive Quantity) value for a single unit. The measurement system for this value is specified in the companion field neqPerUnitSystemOfMeasure, with values typically expressed in weight units such as ounces, pounds, or grams.

Label: NEQ

per unit

Sortable: No


neqPerUnitSystemOfMeasure Skip link to [object Object]

The net explosive quantity per unit converted to a standard system of measurement for consistent comparison and sorting across products. When products have their net explosive quantity measured in different weight units (such as ounces, pounds, or grains), this field normalizes those values to a common baseline, enabling accurate sorting and comparison regardless of the original unit of measurement used for each product.

Label: NEQ

per unit

system of measure

Sortable: Yes


notes Skip link to [object Object]

Additional descriptive text or detailed notes about a product that supplement the product description. This field is stored as longDescription in the database and provides space for extended information, specifications, or other details that help identify or explain the product. Users can enter multiple lines of text including tabs and newlines, but the field cannot contain emojis, control characters, or unicode characters in the supplementary plane.

Label: Notes

GraphQL Type:Text

Sortable: No


physicalSpecifications Skip link to [object Object]

A text field that stores physical specifications and characteristics of the product. This field can be used to capture descriptive information about the product's physical attributes, dimensions, materials, or other tangible properties that define the product's physical nature. The field has a 255-character limit and is not visible by default in product views.

Label: Physical Specifications

Sortable: No

Status: ❌ Disabled


potentialBuildQuantity Skip link to [object Object]

The potential build quantity indicates how many units of this product can be built after accounting for existing reservations. This calculated value shows the available capacity to assemble or manufacture the product based on current inventory and component availability, minus any quantities already reserved for other purposes.

Label: Potential build quantity (after reservations)

Sortable: No


prefireTime Skip link to [object Object]

The duration of time before a firework or pyrotechnic effect begins after ignition, typically measured in seconds. This is a characteristic used to describe choreography and timing of firework effects, allowing users to plan and coordinate displays by knowing when the visual effect will start after the device is lit.

Label: Prefire time

Sortable: No


priceAdditionalUnits Skip link to [object Object]

The price charged for each unit purchased beyond the first unit. This field works in conjunction with the price first unit field to enable tiered pricing, where the first unit of a product may be priced differently than subsequent units in the same order or transaction.

Label: Price additional units

GraphQL Type:Price

Sortable: Yes


priceFirstUnit Skip link to [object Object]

The price charged for the first unit of this product when using tiered pricing. This field works in conjunction with priceAdditionalUnits to support pricing structures where the first unit has a different price than subsequent units. For example, a product might be priced at $1.25 for the first unit and $0.55 for each additional unit. This pricing model is commonly used for setup fees, minimum charges, or volume discounting scenarios.

Label: Price first unit

GraphQL Type:Price

Sortable: Yes


productBomList Skip link to [object Object]

A list of the component products that make up this assembled product. In manufacturing and inventory systems, a Bill of Materials (BOM) defines what parts or materials are needed to build or assemble a finished product. This field displays the components required to create the product, allowing businesses to track inventory requirements for assembled items and understand the relationship between parent products and their constituent parts.

Label: Product BOM list

Sortable: No


productDetailUrl Skip link to [object Object]

A web link that directs users to the full product detail page within the Finale Inventory application. This URL is automatically generated by the server for direct access to view complete product information in the system interface.

IMPORTANT: Treat URL values as opaque strings supplied by the server. Do not attempt to parse, interpret, or construct URL values manually:

Label: Product detail URL

Sortable: No


productId Skip link to [object Object]

The unique identifier for a product in the system. This ID is used to identify and reference products across sales orders, purchase orders, invoices, shipments, stock items, and other transactions. It is the primary user-facing identifier that appears on documents and reports, and is required when importing or creating new products. Users search for and identify products by this ID throughout the system.

Label: Product ID

Sortable: Yes

Default Formatter:html

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    productId    # Uses default formatter: html
    productIdRaw: productId(formatter: "none")  # Get raw value
  }
}

productUrl Skip link to [object Object]

The unique API identifier for a product record. This is the primary key used throughout the system to reference and look up products in API calls, relationships with other entities like orders, shipments, and inventory items, and data queries. This field is automatically generated by the server and is used to link products across different parts of the system including bill of materials, supplier lists, product associations, inventory tracking, and sales orders.

IMPORTANT: Treat URL values as opaque strings supplied by the server. Do not attempt to parse, interpret, or construct URL values manually:

Label: Product Url

Sortable: No


rackTubes Skip link to [object Object]

The number of tubes that can fit in a rack for this product. This field is used for inventory organization and storage management, allowing users to track how many tube units of a product can be stored in a single rack configuration. The field is numeric and may be null if the product is not stored in tube racks or if rack capacity has not been specified.

Label: Rack tubes

Sortable: No

Status: ❌ Disabled


rackTypeDefault Skip link to [object Object]

The default rack type assigned to this product. This text field specifies the type of rack or storage configuration that should be used for the product when no specific rack type is otherwise specified. Users can view and update this value to set the preferred rack type for organizing or storing the product in inventory.

Label: Rack type default

Sortable: No

Status: ❌ Disabled


recordCreated Skip link to [object Object]

The timestamp when the product record was first created in the system. This field is automatically set when a new product is added and cannot be modified afterward. It appears as a filter and column option in product list views, allowing users to search for or sort products by their creation date.

Label: Record created

Sortable: Yes


recordLastUpdated Skip link to [object Object]

The timestamp when the product record was most recently modified or updated in the system. This field is displayed as a formatted date and time (such as "Oct 27 2021 6:21:39 am") and respects the user's configured timezone settings from application preferences. It can be used for filtering products by date range to identify recently changed items, and is commonly shown alongside recordLastUpdatedUser to provide a complete audit trail of who made the last change and when.

Label: Record last updated

Sortable: Yes


safetyDistance Skip link to [object Object]

The minimum recommended distance that spectators or personnel should maintain from the product when it is in use, typically measured in meters or feet. This field is primarily used for pyrotechnic and fireworks products to ensure safe operation and is displayed alongside other physical specifications like effect height and effect width. The field can be enabled or disabled using the useSafetyDistance setting and accepts numeric values including zero.

Label: Safety distance

Sortable: No


salesLast14Days Skip link to [object Object]

The total quantity of units sold for this product in the last 14 days. This field is commonly used to analyze recent sales trends and identify inventory movement patterns, such as determining slow-moving items by comparing recent sales against longer time periods. It can be combined with other sales history fields in formulas to support reordering decisions and inventory management.

Label: Sales last 14 days

Sortable: No


salesLast180Days Skip link to [object Object]

The total quantity of this product sold during the last 180 days. This metric is part of a series of rolling sales period calculations that help businesses analyze product performance and demand patterns over different time horizons, useful for inventory planning and identifying sales trends.

Label: Sales last 180 days

Sortable: No


salesLast30Days Skip link to [object Object]

The total sales quantity for this product over the most recent 30-day period. This metric provides a snapshot of recent product performance and is commonly used alongside other time-based sales metrics (7, 14, 60, 90, 180, and 365 days) to analyze sales trends and velocity. The field helps users assess current demand patterns and make informed decisions about inventory levels, reordering, and product management.

Label: Sales last 30 days

Sortable: No


salesLast365Days Skip link to [object Object]

The total quantity of this product sold in the last 365 days. This field provides a full year view of product sales activity, useful for annual inventory planning, identifying consistently performing products, and calculating long-term demand trends. It belongs to a family of sales tracking fields that measure product movement over different time periods.

Label: Sales last 365 days

Sortable: No


salesLast60Days Skip link to [object Object]

The total sales quantity for this product over the last 60 days. This field is part of a series of sales metrics that track product performance across different time periods, helping businesses analyze sales trends and make inventory decisions. The value represents the cumulative number of units sold during the 60-day period ending today.

Label: Sales last 60 days

Sortable: No


salesLast7Days Skip link to [object Object]

The total quantity of this product sold through completed sales orders in the last 7 days. Only sales orders with a completed status are included in this calculation; orders in other statuses such as created or locked are excluded. The 7-day time window is calculated based on the order date and is timezone-dependent, using either the application's default timezone or a specified timezone parameter. If the product has no sales within the last 7 days, this field returns 0.00.

Label: Sales last 7 days

Sortable: No


salesLast90Days Skip link to [object Object]

The total quantity of this product sold during the last 90 days. This metric helps businesses track recent sales performance and make informed decisions about inventory replenishment, purchasing, and demand forecasting. It provides a rolling 90-day window of sales activity for each product.

Label: Sales last 90 days

Sortable: No


salesLastMonth Skip link to [object Object]

The total sales quantity for this product during the previous calendar month. This field is part of a suite of time-based sales metrics that help track product performance over various time periods. It provides visibility into month-over-month sales trends and is typically used for inventory planning, reorder decisions, and sales velocity analysis.

Label: Sales last month

Sortable: No


salesLastWeekMonToSun Skip link to [object Object]

The total sales quantity for this product during the previous week, calculated from Monday through Sunday. This field provides a weekly sales metric using the Monday-to-Sunday week definition, which differs from the salesLastWeekSunToSat field that tracks sales using a Sunday-to-Saturday week. This allows businesses to analyze product performance based on their preferred weekly calendar convention.

Label: Sales last week Mon to Sun

Sortable: No


salesLastWeekSunToSat Skip link to [object Object]

The total sales quantity for this product during the last complete week, calculated from Sunday through Saturday. This field provides weekly sales performance data using a Sunday-to-Saturday week definition, which differs from the Monday-to-Sunday week calculation available in the salesLastWeekMonToSun field. This allows businesses to track product sales performance based on their preferred weekly calendar convention.

Label: Sales last week Sun to Sat

Sortable: No


salesThisMonth Skip link to [object Object]

The total sales quantity for this product during the current calendar month. This field helps users track current month performance and compare it against other time periods like last month, this week, or various historical periods. The value represents the sum of product sales from the beginning of the current month through today.

Label: Sales this month

Sortable: No


salesThisWeekMonToSun Skip link to [object Object]

The total sales quantity for a product during the current week, calculated from Monday through Sunday. This field provides a weekly sales metric that aligns with the Monday-to-Sunday week definition, as opposed to the alternative Sunday-to-Saturday week view also available in the system.

Label: Sales this week Mon to Sun

Sortable: No


salesThisWeekSunToSat Skip link to [object Object]

The total sales quantity for this product during the current week, where the week is defined as running from Sunday through Saturday. This field provides a weekly sales metric using the Sunday-to-Saturday week definition, as opposed to the Monday-to-Sunday alternative. It helps track current week performance and is typically displayed in product sales reports and analytics.

Label: Sales this week Sun to Sat

Sortable: No


shortCode Skip link to [object Object]

A compact scannable code identifier assigned to a specific product, packing configuration, and lot combination for inventory scanning and data collection. The short code is retrieved from the scan lookup table based on the product URL, normalized packing string, and lot ID, making it easier to identify and track inventory items during physical counts, transfers, and other warehouse operations. This field is particularly useful in mobile data collection scenarios where users can scan or enter a short code instead of typing longer product identifiers.

Label: Short code

Sortable: No


shortCodeInStdPacking Skip link to [object Object]

The product's short code identifier specifically for its standard packing configuration. This field generates a scannable lookup code based on the product URL and the standard packing specification, allowing the product to be identified by scan key when in its standard case or packing format. This is distinct from the general product short code, as it's tied to the specific packing configuration defined for the product.

Label: Short code in std packing

Sortable: Yes


skuList Skip link to [object Object]

A comma-separated list of product SKUs associated with this product. This field is stored as a JSON array internally and displays the SKU identifiers joined together for easy readability. For example, a product might show "Apple, Canteloupe" or "Banana" to represent multiple or single associated product variants.

Label: Product lookup list

Sortable: No


stdBinId Skip link to [object Object]

The default warehouse bin or location where this product is stored. This field is used when syncing orders to ShipStation to specify the warehouse location from which items should be picked, helping warehouse staff locate products for order fulfillment.

Label: Std bin ID

GraphQL Type:Text

Sortable: Yes


stdBuyPrice Skip link to [object Object]

The standard buying price for the product. This represents a baseline or expected purchase cost that the business uses for planning and cost calculations, as opposed to the actual last purchase price which may vary from order to order. The standard buy price serves as a reference point for pricing and costing operations.

Label: Std buy price

GraphQL Type:Price

Sortable: No


stdPacking Skip link to [object Object]

The standard packing configuration for a product, indicating how items are packaged in cases. This field uses a normalized format to describe the case packing structure, such as "6 cs 6/1" (meaning 6 cases with 6 units of 1 each) or "72/1" (72 units per 1 case). The field helps users understand the default packaging for inventory management, particularly when working with scanned stock changes and converting between cases and individual units (eaches). This information is used to calculate units per case and is displayed throughout the system when viewing or managing product inventory.

Label: Std packing

Sortable: Yes


stdPackingUnitsPerCase Skip link to [object Object]

The standard number of individual units contained within each case for this product. For example, a product with standard packing of "3/1" would have 3 units per case, while a product with "5/1" would have 5 units per case. This value defaults to 1 if no standard packing configuration is defined for the product. This field is commonly used to convert between case quantities and individual unit quantities across inventory, sales, and purchasing operations.

Label: Std packing units per case

Sortable: Yes


stdReorderLevel Skip link to [object Object]

The manually entered minimum stock level that triggers a reorder when inventory falls below this threshold. This field is used when the reorder calculation method is set to manual entry rather than automated calculations based on sales velocity. When populated, this value represents the minimum quantity of product that should be maintained in inventory before initiating a replenishment order. This field can be set at the facility level through reorder guidelines, allowing different reorder levels for the same product across multiple locations.

Label: Std

reorder point

GraphQL Type:Number

Sortable: No


stdReorderLevelMax Skip link to [object Object]

The maximum reorder level manually set by users for inventory replenishment. This field allows users to define an upper threshold for when to reorder a product, working in conjunction with the standard reorder level (stdReorderLevel). While the system can calculate reorder points automatically (reorderPointMaxCalc), this field provides a way for users to override or supplement those calculations with manually specified maximum reorder thresholds. When left empty, the system relies on calculated values instead.

Label: Std

reorder point max

GraphQL Type:Number

Sortable: No


stdReorderMaxDays Skip link to [object Object]

The maximum number of days of inventory to maintain for this product when calculating reorder points. This value represents the reorderMaxDays setting from the product's reorder guidelines and is used in conjunction with processing lead time to determine how much inventory should be kept on hand. When set, it ensures that reorder calculations don't exceed this maximum threshold, helping to prevent over-ordering and excess inventory. If no reorderMaxDays is specified in the product's reorder guidelines, this field will be empty and the system may use a default value from preferences.

Label: Std

reorder days of inventory

GraphQL Type:Number

Sortable: No


stdReorderProcessingLeadTime Skip link to [object Object]

The standard number of days required for internal processing when reordering this product. This represents the time needed to handle the reorder internally (such as order processing, receiving, inspection, and put-away) before the product is available for use. This value is used in calculating the total lead time for inventory replenishment, which combines the supplier lead time, processing time, and safety stock days to determine when reorder points should trigger.

Label: Std

processing days

GraphQL Type:Number

Sortable: No


stdReorderQuantity Skip link to [object Object]

The standard quantity increment to use when reordering this product. This field specifies the quantity of units to order at a time, helping to ensure orders are placed in appropriate batch sizes. It works in conjunction with other reorder settings like reorder level and reorder point to determine when and how much inventory to replenish. This field is only applicable when the reorder functionality is enabled for the product.

Label: Std

reorder in qty of

GraphQL Type:Number

Sortable: No


stdReorderSafetyStock Skip link to [object Object]

The standard number of safety stock days configured for this product, which serves as a buffer to protect against stockouts due to demand variability or supply delays. This field is used in reorder point calculations to ensure adequate inventory levels are maintained. Safety stock days represent the number of additional days of inventory to keep on hand beyond the expected lead time, providing a cushion for unexpected demand spikes or supplier delays.

Label: Std

safety stock days

GraphQL Type:Number

Sortable: No


stdReorderUsageGrowth Skip link to [object Object]

The expected annual percentage growth rate in product usage, used when calculating reorder points and quantities. This value is expressed as a percentage per year and helps adjust inventory levels to account for anticipated increases in demand over time. For example, a value of 10 represents 10% expected growth per year. When set, the system uses this growth rate to project future demand and ensure adequate stock levels are maintained as product usage trends upward. This field is part of the standard reorder calculation settings and is typically used alongside other reorder parameters like safety stock, processing lead time, and reorder quantity.

Label: Std

usage growth %/yr

GraphQL Type:Number

Sortable: No


supplier Skip link to [object Object]

Label: Supplier

Sortable: No


supplier1Comments Skip link to [object Object]

Label: Supplier 1

comments

GraphQL Type:Text

Sortable: No


supplier1LeadTime Skip link to [object Object]

Label: Supplier 1

lead days

GraphQL Type:Number

Sortable: No


supplier1Price Skip link to [object Object]

Label: Supplier 1

price

GraphQL Type:Price

Sortable: No


supplier1ProductId Skip link to [object Object]

Label: Supplier 1

product ID

Sortable: No


supplier1QuantityAvailable Skip link to [object Object]

Label: Supplier 1

quantity available

Sortable: No


supplier2Comments Skip link to [object Object]

Label: Supplier 2

comments

GraphQL Type:Text

Sortable: No


supplier2LeadTime Skip link to [object Object]

Label: Supplier 2

lead days

GraphQL Type:Number

Sortable: No


supplier2Price Skip link to [object Object]

Label: Supplier 2

price

GraphQL Type:Price

Sortable: No


supplier2ProductId Skip link to [object Object]

Label: Supplier 2

product ID

Sortable: No


supplier2QuantityAvailable Skip link to [object Object]

Label: Supplier 2

quantity available

Sortable: No


supplier3Comments Skip link to [object Object]

Label: Supplier 3

comments

GraphQL Type:Text

Sortable: No


supplier3LeadTime Skip link to [object Object]

Label: Supplier 3

lead days

GraphQL Type:Number

Sortable: No


supplier3Price Skip link to [object Object]

Label: Supplier 3

price

GraphQL Type:Price

Sortable: No


supplier3ProductId Skip link to [object Object]

Label: Supplier 3

product ID

Sortable: No


supplier3QuantityAvailable Skip link to [object Object]

Label: Supplier 3

quantity available

Sortable: No


title Skip link to [object Object]

Label: Title

Sortable: No


unitOfMeasure Skip link to [object Object]

Label: Unit of measure

GraphQL Type:OptionList

Sortable: No


universalProductCode Skip link to [object Object]

Label: UPC

Sortable: No

Status: ❌ Disabled


vdlDescription Skip link to [object Object]

Label: VDL description

Sortable: No

Status: ❌ Disabled


weightPerUnit Skip link to [object Object]

Label: Weight

per unit

Sortable: No


weightPerUnitSystemOfMeasure Skip link to [object Object]

Label: Weight

per unit

system of measure

Sortable: Yes


Enum Fields Skip link to Enum Fields

These fields return one of a predefined set of values.

accountOverride Skip link to [object Object]

Indicates whether the product has custom account assignments that override the default accounting configuration. Products can either use default accounts or have specific account overrides configured, such as custom COGS accounts. This field allows filtering and grouping products based on their accounting setup, distinguishing between products with customized accounting versus those using standard defaults.

Label: Has account override

Sortable: No

Possible Values:


caliber Skip link to [object Object]

The measurement of the internal diameter or bore size of ammunition or firearm-related products, typically expressed in inches (e.g., 6", 7") or millimeters (e.g., 123mm, 2000mm). This field is used to categorize and filter ammunition products, and can be sorted to organize products by their bore size from smallest to largest. The caliber value is stored internally as a numeric measurement but displayed to users with the appropriate unit designation.

Label: Caliber

Sortable: Yes

Possible Values:


caseDimensionsUnit Skip link to [object Object]

The unit of measurement used for the product's case dimensions (case depth, case height, and case width). Common values include feet, meters, and inches. This field allows users to specify which measurement system applies to the physical dimensions of the product's case or packaging.

Label: Case dimensions unit

Sortable: No

Status: ❌ Disabled

Possible Values:


choreographyTab Skip link to [object Object]

The category classification for a product, used to organize and filter products by type. Products can be categorized into groups such as Shells, Cakes, and other category types. This field enables users to filter product listings and reports by category, making it easier to view and analyze products within specific classifications. The field is displayed as "Choreography tab" in the user interface and stores enumerated category values that determine which product category a given item belongs to.

Label: Choreography tab

Sortable: No

Status: ❌ Disabled

Possible Values:


distanceUnit Skip link to [object Object]

The unit of measurement used for distance-related product attributes such as safety distance, effect width, and effect height. This field accepts length measurement units like feet or meters and determines how dimensional values for the product are measured and displayed. When set, it applies to all distance measurements associated with the product.

Label: Distance unit

Sortable: No

Possible Values:


expandBillOfMaterials Skip link to [object Object]

Controls whether the product's bill of materials should be expanded when syncing to integrations. When set to "Always expand bill of materials," the system will break down the product into its component parts during integration operations. When set to "Never expand bill of materials," the product is treated as a single item. This setting can be configured per product to override the default behavior set at the integration level, which is useful for managing how assembled or kit products are represented in different sales channels or external systems.

Label: Expand bill of materials

GraphQL Type:OptionList

Sortable: No

Possible Values:


hasBom Skip link to [object Object]

Indicates whether the product has a Bill of Materials (BOM) defined. A Bill of Materials is a list of components and materials required to manufacture or assemble the product. This field helps users identify which products are assembled items with defined component structures versus simple products that are purchased or sold as single units.

Label: Has BOM

Sortable: No

Possible Values:


mfgCountry Skip link to [object Object]

The country where the product is manufactured. This field stores a country code (such as USA, CHN, BEL, or AUS) that identifies the geographic location of the product's manufacturing origin. It appears in import screens with the label "Mfg country" and is optional for import. This field is commonly used alongside manufacturer information to track product sourcing and country of origin requirements.

Label: Mfg

country

Sortable: No

Possible Values: See Country Codes (ISO 3166-1 alpha-3)


reservationPolicy Skip link to [object Object]

The policy that controls how inventory is reserved for products with a bill of materials. When set to a specific value like "Finished product only" (RSRV_PRODUCT_ONLY), it determines whether reservations apply only to the finished product or include its component parts. When left empty or null, the system uses the default reservation policy configured in the global settings. This field is particularly relevant for products that have bill of materials, controlling how inventory allocation and reservations cascade through the product structure.

Label: Reservation policy

GraphQL Type:OptionList

Sortable: No

Possible Values:


status Skip link to [object Object]

Indicates whether a product is currently active or inactive in the system. Active products (PRODUCT_ACTIVE) are available for use in orders, inventory tracking, and appear in product listings and reports. Inactive products (PRODUCT_INACTIVE) are excluded from most product lists and operations, effectively removing them from active use without deleting the record. This allows businesses to discontinue products while preserving their historical data and transaction records.

Label: Status

GraphQL Type:OptionList

Sortable: Yes

Possible Values:


stdReorderCalculationMethodId Skip link to [object Object]

The method used to calculate reorder points for this product. Options include "Do not reorder" (product is not restocked), "Default from settings" (uses system-wide default method), "Manual reorder point entry" (user manually specifies reorder levels), "Sales velocity" (calculates based on historical sales patterns), and "Demand velocity" (calculates based on demand patterns including orders and usage). This setting determines how the system automatically calculates when to restock inventory for the product.

Label: Reorder calculation method

GraphQL Type:OptionList

Sortable: No

Possible Values:


weightUnit Skip link to [object Object]

Label: Weight

unit

Sortable: No

Possible Values:


Parameterized Fields Skip link to Parameterized Fields

These fields accept parameters to customize the returned data. Parameters allow filtering by location, date ranges, aggregation methods, and more.

averageGrossSalesPerUnit Skip link to [object Object]

The average revenue generated per unit of this product sold. This metric is calculated by dividing total gross sales by the total number of units sold, providing insight into the typical selling price per unit. This field can be filtered by date range and facility location to analyze pricing trends across different time periods and locations. A related field, averageGrossSalesPerUnitChange, shows the percentage change in this metric between two time periods.

Label: Average gross sales per unit

Sortable: No

Parameters:

Dates

Location(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    averageGrossSalesPerUnit(
      dateRange: { begin: "2024-01-01", end: "2024-12-31" }
      facilityUrlList: ["example-value"]
    )
  }
}

averageGrossSalesPerUnitChange Skip link to [object Object]

The percentage change in average gross sales per unit between two time periods. This metric compares the average revenue earned per unit sold in a later period against an earlier period, showing whether the product is generating more or less revenue per unit over time. For example, a value of 22.3% indicates the average gross sales per unit increased by 22.3%, while -95.8% shows a significant decrease. This field accepts parameters to specify the before and after time periods for comparison, as well as optional facility filtering to analyze performance at specific locations.

Label: Average gross sales per unit change

Sortable: No

Parameters:

Baseline dates

Comparison dates

Location(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    averageGrossSalesPerUnitChange(
      before: { begin: "2024-01-01", end: "2024-12-31" }
      after: { begin: "2024-01-01", end: "2024-12-31" }
      facilityUrlList: ["example-value"]
    )
  }
}

averageUnitsPerSale Skip link to [object Object]

The average number of product units included in each sale transaction. For example, if a product was sold in three separate transactions with quantities of 2, 3, and 1 units respectively, the average units per sale would be 2. This metric can be filtered by date range and facility to analyze sales patterns over specific time periods or locations.

Label: Average units per sale

Sortable: No

Parameters:

Dates

Location(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    averageUnitsPerSale(
      dateRange: { begin: "2024-01-01", end: "2024-12-31" }
      facilityUrlList: ["example-value"]
    )
  }
}

averageUnitsPerSaleChange Skip link to [object Object]

The percentage change in the average number of units sold per sale transaction between two time periods. This metric helps identify whether customers are buying more or fewer units in each transaction over time. For example, a value of "1650%" indicates customers are purchasing significantly more units per sale compared to the earlier period, while "0.0%" shows no change in the average quantity per sale. The field accepts time period parameters to specify which periods to compare (such as comparing yesterday to the day before).

Label: Average units per sale change

Sortable: No

Parameters:

Baseline dates

Comparison dates

Location(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    averageUnitsPerSaleChange(
      before: { begin: "2024-01-01", end: "2024-12-31" }
      after: { begin: "2024-01-01", end: "2024-12-31" }
      facilityUrlList: ["example-value"]
    )
  }
}

cogsSales Skip link to [object Object]

The total cost of goods sold for this product over a specified date range and facility. This represents the inventory cost associated with all sales transactions for the product during the period, and is used to calculate profit margins when compared against gross sales. The field accepts optional date range and facility parameters to filter the calculation to specific time periods and locations.

Label: COGS Sales

Sortable: No

Parameters:

Dates

Location(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    cogsSales(
      dateRange: { begin: "2024-01-01", end: "2024-12-31" }
      facilityUrlList: ["example-value"]
    )
  }
}

cogsSalesChange Skip link to [object Object]

The percentage change in cost of goods sold for a product between two time periods. This field accepts before and after time period parameters to compare COGS across different date ranges, showing whether product costs increased or decreased. For example, a value of 100.0% indicates COGS doubled from the before period to the after period, while 50.0% indicates COGS increased by half. This metric helps track cost trends and identify products with significant cost fluctuations over time.

Label: COGS Sales change

Sortable: No

Parameters:

Baseline dates

Comparison dates

Location(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    cogsSalesChange(
      before: { begin: "2024-01-01", end: "2024-12-31" }
      after: { begin: "2024-01-01", end: "2024-12-31" }
      facilityUrlList: ["example-value"]
    )
  }
}

consumptionQuantity Skip link to [object Object]

The estimated quantity of this product consumed over the standard reorder calculation time period for a specific facility. This value is calculated by multiplying the consumption velocity (how much is used per day) by the reorder calculation time period. For example, if a product is consumed at a rate of 0.25 units per day and the standard reorder time period is 4 days, the consumption quantity would be 1 unit. This field is used in inventory management to help determine reorder points and quantities needed to maintain adequate stock levels during the replenishment cycle.

Label: Consumption quantity

Sortable: No

Parameters:

Location

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    consumptionQuantity(
      facilityUrl: "example-value"
    )
  }
}

consumptionVelocity Skip link to [object Object]

The average daily rate at which a product is consumed or used, calculated by dividing the total quantity consumed by the number of days in the calculation period. This metric is primarily used in reorder point calculations to determine how much inventory is needed. For products that are components in assembled items, consumption velocity includes both direct sales and indirect usage as components in other products. The calculation period can be customized based on reorder guidelines or defaults to a standard time period.

Label: Consumption

velocity

Sortable: No

Parameters:

Location(s)

Location

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    consumptionVelocity(
      facilityUrlList: ["example-value"]
      facilityUrl: "example-value"
    )
  }
}

countSales Skip link to [object Object]

The total number of sales transactions for the product within a specified date range. This field counts individual sales orders or invoices that include the product, regardless of the quantity sold in each transaction. For example, if a product was sold in three separate orders during a time period, countSales would be 3, even if different quantities were purchased in each order. This metric is useful for understanding sales frequency and customer purchase patterns, and can be filtered by facility location to track sales activity across different warehouses or stores.

Label: Count sales

Sortable: No

Parameters:

Dates

Location(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    countSales(
      dateRange: { begin: "2024-01-01", end: "2024-12-31" }
      facilityUrlList: ["example-value"]
    )
  }
}

countSalesChange Skip link to [object Object]

The percentage change in the number of sales transactions for a product between two time periods. This metric tracks how the count of individual sales has increased or decreased, regardless of the quantity or dollar amount sold in each transaction. For example, a value of 100.0% indicates the number of sales doubled between the compared periods, while 0.0% indicates no change in the transaction count. This field accepts before and after time period parameters to specify which periods to compare, and can optionally be filtered by facility location.

Label: Count sales change

Sortable: No

Parameters:

Baseline dates

Comparison dates

Location(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    countSalesChange(
      before: { begin: "2024-01-01", end: "2024-12-31" }
      after: { begin: "2024-01-01", end: "2024-12-31" }
      facilityUrlList: ["example-value"]
    )
  }
}

daysUntilReorder Skip link to [object Object]

The calculated number of days until a product needs to be reordered at a specific facility. This field is facility-specific and can be queried with or without a facility parameter. A positive value indicates how many days remain before reordering is needed, while a negative value indicates the product is already past its reorder point. This helps businesses plan inventory purchases and avoid stockouts by showing the urgency of reordering each product at each location.

Label: Days until reorder

Sortable: No

Parameters:

Location

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    daysUntilReorder(
      facilityUrl: "example-value"
    )
  }
}

demandPerDay Skip link to [object Object]

The average daily demand for a product, calculated over a specified date range and optionally filtered by facility. This metric measures how much of the product is needed per day based on actual consumption and sales activity during the time period. It can be calculated across all facilities or limited to specific warehouses or fulfillment centers. The field supports date range parameters to analyze demand over custom time windows, such as the last 5 days or other periods relevant to reorder point calculations and inventory planning.

Label: Demand per day

Sortable: No

Status: ❌ Disabled

Parameters:

Location(s)

Dates

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    demandPerDay(
      facilityUrlList: ["example-value"]
      dateRange: { begin: "2024-01-01", end: "2024-12-31" }
    )
  }
}

filter Skip link to [object Object]

Label: Filter

Sortable: No

Status: ❌ Disabled

Parameters:

Filter

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    filter(
      filter: "example-value"
    )
  }
}

grossSales Skip link to [object Object]

The total revenue generated from sales of this product for a specified date range and optional facility location. This field represents the gross sales amount before deducting costs, and can be filtered by time period and specific facilities to analyze product performance across different locations and timeframes.

Label: Gross sales

Sortable: No

Parameters:

Dates

Location(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    grossSales(
      dateRange: { begin: "2024-01-01", end: "2024-12-31" }
      facilityUrlList: ["example-value"]
    )
  }
}

grossSalesChange Skip link to [object Object]

The percentage change in gross sales revenue for a product between two time periods. This metric compares the total sales revenue (before any deductions) from a "before" period to an "after" period, allowing users to track sales performance trends over time. The field accepts time period parameters to define the comparison windows (such as specific days or date ranges) and can be filtered by facility to analyze location-specific sales trends. Values are expressed as percentages, where positive values indicate sales growth and negative values indicate sales decline.

Label: Gross sales change

Sortable: No

Parameters:

Baseline dates

Comparison dates

Location(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    grossSalesChange(
      before: { begin: "2024-01-01", end: "2024-12-31" }
      after: { begin: "2024-01-01", end: "2024-12-31" }
      facilityUrlList: ["example-value"]
    )
  }
}

inventoryVarianceValuation Skip link to [object Object]

The total dollar value of inventory variances for this product within a specified date range. This field calculates the monetary impact of physical inventory count discrepancies by multiplying the quantity variance (difference between physical count and system quantity) by the product's unit cost. For example, if physical inventory counts reveal a shortage of 5 units at $10 each, the inventory variance valuation would be $50. This helps businesses quantify the financial impact of inventory shrinkage, counting errors, or other discrepancies discovered during physical inventory audits.

Label: Inventory variance valuation

Sortable: No

Status: ❌ Disabled

Parameters:

Dates

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    inventoryVarianceValuation(
      dateRange: { begin: "2024-01-01", end: "2024-12-31" }
    )
  }
}

marginSales Skip link to [object Object]

The profit margin percentage for sales of this product over a specified date range. This metric represents the profitability of the product by comparing the difference between gross sales revenue and cost of goods sold, expressed as a percentage. The value can be negative when the cost of goods sold exceeds the gross sales revenue, indicating the product was sold at a loss during that period.

Label: Margin sales

Sortable: No

Parameters:

Dates

Location(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    marginSales(
      dateRange: { begin: "2024-01-01", end: "2024-12-31" }
      facilityUrlList: ["example-value"]
    )
  }
}

marginSalesChange Skip link to [object Object]

The percentage change in margin sales for a product between two specified time periods. This field compares the profit margin from sales in a "before" period against an "after" period, showing whether the product's profitability has increased or decreased over time. The field accepts time period parameters to define the comparison windows and can be filtered by specific facilities. Values are returned as percentages, such as "5.2%" for a slight increase or "-2.0%" for a decrease in margin sales.

Label: Margin sales change

Sortable: No

Parameters:

Baseline dates

Comparison dates

Location(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    marginSalesChange(
      before: { begin: "2024-01-01", end: "2024-12-31" }
      after: { begin: "2024-01-01", end: "2024-12-31" }
      facilityUrlList: ["example-value"]
    )
  }
}

processingDays Skip link to [object Object]

The number of days required for internal processing when reordering this product. This represents the time needed to handle, inspect, receive, or otherwise prepare the product after it arrives from the supplier but before it becomes available for use or sale. This processing time is combined with supplier lead time to calculate the total lead time for inventory planning and reorder point calculations. The field can be specified at the facility level to account for different processing times at different locations.

Label: Processing days

Sortable: No

Parameters:

Location

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    processingDays(
      facilityUrl: "example-value"
    )
  }
}

reorderDaysOfInventory Skip link to [object Object]

The maximum number of days of inventory to maintain when calculating reorder points for a product. This value determines how much buffer stock to keep on hand beyond the lead time requirements. The field can be queried globally for the product or specified per facility, allowing different inventory day targets for the same product across multiple locations. When not explicitly set, the system uses a default value to ensure adequate stock coverage.

Label: Reorder days of inventory

Sortable: No

Parameters:

Location

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    reorderDaysOfInventory(
      facilityUrl: "example-value"
    )
  }
}

reorderDemandPerDay Skip link to [object Object]

The average daily demand for this product calculated over a configured time period, used for reorder point calculations. This metric includes both direct sales demand from customer orders and indirect demand from orders of finished goods that include this product as a component in their bill of materials. The calculation can be filtered to specific facilities and uses the default reorder calculation time period set in preferences. For example, if a component is sold directly at 10 units per day and is also used in a finished product that sells 5 units per day with 2 components needed per finished product, the total demand per day would be 20 units (10 direct + 10 indirect).

Label: Reorder demand per day

Sortable: No

Status: ❌ Disabled

Parameters:

Location(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    reorderDemandPerDay(
      facilityUrlList: ["example-value"]
    )
  }
}

reorderPoint Skip link to [object Object]

The inventory level at which a product should be reordered to avoid stockouts. When stock falls to or below this point, it triggers the need to create a purchase order or replenishment action. This value can be manually set or automatically calculated based on sales velocity, lead time, and safety stock requirements. The reorder point ensures that new inventory arrives before current stock is depleted, accounting for the time needed to receive goods from suppliers. Different reorder points can be maintained for different warehouse locations.

Label: Reorder point

Sortable: No

Parameters:

Location

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    reorderPoint(
      facilityUrl: "example-value"
    )
  }
}

reorderPointCalculated Skip link to [object Object]

The system-calculated reorder point for a product at one or more facilities, determined by analyzing consumption velocity and lead time. This calculation helps determine when to reorder inventory to avoid stockouts. The field can be queried for specific facilities or across all facilities, and the calculation considers historical demand patterns excluding future sales and sales from the current day. The calculated value represents the inventory level at which a reorder should be triggered, based on how quickly the product is consumed and how long it takes to replenish.

Label: Reorder point calculated

Sortable: No

Parameters:

Location(s)

Location

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    reorderPointCalculated(
      facilityUrlList: ["example-value"]
      facilityUrl: "example-value"
    )
  }
}

reorderPointMax Skip link to [object Object]

The maximum reorder point threshold manually set for a product at a specific facility or across facilities. This represents the upper limit of inventory level at which a reorder should be triggered, allowing businesses to override the system-calculated maximum reorder point with their own preferred threshold. When left unset, the system uses the calculated maximum reorder point instead. This field is typically used in conjunction with the standard reorder point to define a range for inventory replenishment decisions, helping to manage stock levels based on business-specific needs, seasonal demand patterns, or other factors not captured by automated calculations.

Label: Reorder point max

Sortable: No

Parameters:

Location

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    reorderPointMax(
      facilityUrl: "example-value"
    )
  }
}

reorderPointMaxCalc Skip link to [object Object]

The calculated maximum reorder point for a product at a facility. This represents the upper threshold for inventory levels that triggers reordering, calculated based on factors such as sales velocity, consumption velocity, and lead time. Unlike the standard reorder point which indicates when to reorder, the maximum reorder point helps determine the target quantity to reorder up to, ensuring sufficient stock during peak demand or longer lead times. This field can be queried for specific facilities or across all facilities.

Label: Reorder point max calc

Sortable: Yes

Parameters:

Location(s)

Location

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    reorderPointMaxCalc(
      facilityUrlList: ["example-value"]
      facilityUrl: "example-value"
    )
  }
}

reorderQuantity Skip link to [object Object]

The standard order quantity used when replenishing this product. This defines the lot size or batch quantity in which the product should be purchased or manufactured when inventory needs to be restocked. For example, if a product has a reorder quantity of 100, the system will suggest ordering in multiples of 100 units. This value can be set at the product level as a default or overridden for specific facility locations. The reorder quantity helps ensure orders align with supplier minimums, case pack sizes, or other purchasing constraints, and is used in conjunction with reorder point calculations to determine the quantity to order when inventory falls below the reorder level.

Label: Reorder in qty of

Sortable: No

Parameters:

Location(s)

Location

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    reorderQuantity(
      facilityUrlList: ["example-value"]
      facilityUrl: "example-value"
    )
  }
}

reorderQuantityToOrder Skip link to [object Object]

The suggested quantity to order when the product reaches its reorder point at a specific facility or across multiple facilities. This calculated value helps determine how much inventory should be purchased to replenish stock when it falls below the reorder threshold. The field can be filtered by facility location and may return null for products with no sales velocity or reorder point configured. When aggregated across multiple products, it represents the total quantity recommended for ordering.

Label: Reorder quantity to order

Sortable: Yes

Parameters:

Location(s)

Location

Excluded sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    reorderQuantityToOrder(
      facilityUrlList: ["example-value"]
      facilityUrl: "example-value"
      reservedSublocationFacilityUrlList: ["example-value"]
    )
  }
}

reorderQuantityToOrderEditable Skip link to [object Object]

An editable version of the suggested reorder quantity that allows users to modify the calculated quantity to order when inventory reaches the reorder point. While the system calculates a recommended quantity to order based on reorder rules, this field permits manual adjustments to that recommendation before creating purchase orders or replenishment requests.

Label: Reorder quantity to order

GraphQL Type:quantity

Sortable: No

Parameters:

Location(s)

Location

Excluded sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    reorderQuantityToOrderEditable(
      facilityUrlList: ["example-value"]
      facilityUrl: "example-value"
      reservedSublocationFacilityUrlList: ["example-value"]
    )
  }
}

reorderVariance Skip link to [object Object]

The difference between a product's available inventory and its reorder point for a specific facility or set of facilities. A negative value indicates the product's inventory has fallen below the reorder point and needs replenishment, while a positive value shows inventory is above the reorder point. This field helps identify products that require purchasing or production to maintain adequate stock levels.

Label: Reorder variance

Sortable: Yes

Parameters:

Location(s)

Location

Excluded sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    reorderVariance(
      facilityUrlList: ["example-value"]
      facilityUrl: "example-value"
      reservedSublocationFacilityUrlList: ["example-value"]
    )
  }
}

replenishmentPointCalculated Skip link to [object Object]

The calculated inventory level at which replenishment should be triggered for a product at specified facilities. This is distinct from the reorder point, as replenishment typically refers to internal stock transfers or production to refill inventory between locations, while reorder points trigger external purchase orders. The field accepts facility filtering parameters to calculate the replenishment point for specific warehouse or location combinations, and works in conjunction with replenishmentPointMaxCalc to establish minimum and maximum inventory thresholds for replenishment decisions.

Label: Replenishment point calculated

Sortable: Yes

Parameters:

Location(s)

Location

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    replenishmentPointCalculated(
      facilityUrlList: ["example-value"]
      facilityUrl: "example-value"
    )
  }
}

replenishmentPointMaxCalc Skip link to [object Object]

The calculated maximum replenishment point for a product at specified facilities, representing the upper threshold inventory level that triggers replenishment ordering. This is the calculated counterpart to the manually-set replenishment point max. When stock falls to or below the replenishment point, an order should be placed to bring inventory back up to this maximum level. The field can be filtered by facility using facilityUrl or facilityUrlList parameters to calculate the replenishment point max for specific locations or groups of locations, and is used in conjunction with replenishment variance and replenishment quantity to order to manage inventory replenishment decisions.

Label: Replenishment point max calc

Sortable: Yes

Parameters:

Location(s)

Location

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    replenishmentPointMaxCalc(
      facilityUrlList: ["example-value"]
      facilityUrl: "example-value"
    )
  }
}

replenishmentQuantityToOrder Skip link to [object Object]

The calculated quantity of a product that should be ordered to replenish inventory from the current available stock level up to the maximum replenishment point. This field is facility-specific and can be filtered by one or more facilities. The quantity represents how many units need to be ordered to bring stock back to optimal replenishment levels, based on factors like sales velocity, replenishment points, and current available inventory. When the replenishment variance is zero or positive (indicating adequate stock), this field returns null, as no order is needed.

Label: Replenishment quantity to order

Sortable: Yes

Parameters:

Location(s)

Location

Excluded sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    replenishmentQuantityToOrder(
      facilityUrlList: ["example-value"]
      facilityUrl: "example-value"
      reservedSublocationFacilityUrlList: ["example-value"]
    )
  }
}

replenishmentQuantityToOrderEditable Skip link to [object Object]

An editable version of the replenishment quantity to order field that allows users to manually adjust the calculated quantity needed to bring inventory up to the maximum replenishment point. This field appears alongside the read-only replenishment quantity to order field and is displayed with the label "Replenishment quantity to order" in product views. The editable capability is controlled by the uiReplenish configuration parameter and is available when users need to override system-calculated replenishment recommendations for specific facilities or locations.

Label: Replenishment quantity to order

GraphQL Type:quantity

Sortable: No

Parameters:

Location(s)

Location

Excluded sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    replenishmentQuantityToOrderEditable(
      facilityUrlList: ["example-value"]
      facilityUrl: "example-value"
      reservedSublocationFacilityUrlList: ["example-value"]
    )
  }
}

replenishmentVariance Skip link to [object Object]

The difference between the current available inventory and the replenishment point for a product at a facility or set of facilities. A negative value indicates that inventory has fallen below the replenishment point, signaling that the product needs to be restocked. Users can filter products by replenishment variance to identify items that require replenishment, such as finding all products with variance less than zero to prioritize restocking efforts.

Label: Replenishment variance

Sortable: Yes

Parameters:

Location(s)

Location

Excluded sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    replenishmentVariance(
      facilityUrlList: ["example-value"]
      facilityUrl: "example-value"
      reservedSublocationFacilityUrlList: ["example-value"]
    )
  }
}

safetyStockDays Skip link to [object Object]

The number of days of buffer inventory to maintain beyond lead time requirements to protect against stockouts due to variability in supply or demand. This safety stock period is added to the total lead time when calculating reorder points and replenishment quantities. For example, if a product has a 7-day total lead time and 4 safety stock days, the system will plan to maintain enough inventory to cover 11 days of expected consumption. This field can be specified at the facility level to allow different safety stock policies across locations.

Label: Safety stock days

Sortable: No

Parameters:

Location

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    safetyStockDays(
      facilityUrl: "example-value"
    )
  }
}

salesVelocity Skip link to [object Object]

The average number of units sold per day for a product, calculated over a specified time period and optionally filtered by specific facility locations. This metric is used to determine inventory reorder points and stockout predictions. Users can specify a date range to calculate sales velocity, such as the last 14, 30, or 60 days. When used with the sales velocity reorder calculation method, this field helps automatically calculate when to reorder products based on actual sales patterns. The field returns numeric values like 0.67 indicating units sold per day, with 0.00 indicating no sales during the period.

Label: Sales

velocity

Sortable: Yes

Parameters:

Location(s)

Dates

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    salesVelocity(
      facilityUrlList: ["example-value"]
      dateRange: { begin: "2024-01-01", end: "2024-12-31" }
    )
  }
}

stdReorderCalculationMethodTimePeriod Skip link to [object Object]

The number of days used as the time period when calculating reorder points using demand or sales velocity methods. This field works in conjunction with the reorder calculation method to determine how far back in time the system looks when analyzing consumption patterns. For example, a value of 10 means the reorder point calculation will analyze velocity over the past 10 days, while a value of 40 would use a 40-day lookback period. This allows businesses to adjust the sensitivity of their reorder calculations based on whether they want to respond to recent trends or prefer longer-term averages. The field can be set at the product level or fall back to a system-wide default value configured in preferences.

Label: Calculation method time period (days)

GraphQL Type:Number

Sortable: No

Parameters:

Default value

Options:

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    stdReorderCalculationMethodTimePeriod(
      defaultValue: exclude
    )
  }
}

stock Skip link to [object Object]

Label: Stock

Sortable: ⚠️ Yes (with limitations - see parameter options below)

Parameters:

Combine quantities using

Options:

Count quantity by

Options:

Location(s) or sublocation(s)

Bill of materials (BoM)

Options:

Supplier

Options:

Lot ID

Type

Options:

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    stock(
      aggregate: sum
      count: totalUnits
      facilityUrlList: ["example-value"]
      includeBom: exclude
      includeSupplier: exclude
      lotIdSearch: ["example-value"]
      stockType: available
    )
  }
}

stockAvailable Skip link to [object Object]

The quantity of product units available to promise to customers. This represents inventory that can be committed to new orders, calculated as on-hand stock minus existing reservations. The field supports filtering by specific facilities or warehouses, and can optionally include additional available quantities from bill of materials components or supplier stock when calculating what can be promised to fulfill orders.

Label: Available to promise

Sortable: ⚠️ Yes (with limitations - see parameter options below)

Parameters:

Combine quantities using

Count quantity by

Options:

Location(s)

Bill of materials (BoM)

Options:

Supplier

Lot ID

Excluded sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    stockAvailable(
      aggregate: sum
      count: totalUnits
      facilityUrlList: ["example-value"]
      includeBom: exclude
      includeSupplier: exclude
      lotIdSearch: ["example-value"]
      reservedSublocationFacilityUrlList: ["example-value"]
    )
  }
}

stockBomQuantity Skip link to [object Object]

The quantity of stock that is available through component products in a Bill of Materials (BOM). This field calculates how many units of the product can be assembled from the on-hand inventory of its component parts. For example, if a finished product requires 2 units of a component and there are 10 components in stock, the stockBomQuantity would show how many finished products could be made. The field can be filtered by facility location and can count in different units such as total units or case equivalents.

Label: BOM quantity

Sortable: No

Parameters:

Count quantity by

Options:

Location(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    stockBomQuantity(
      count: totalUnits
      facilityUrlList: ["example-value"]
    )
  }
}

stockDistinctSublocations Skip link to [object Object]

A list of the unique sublocations within a facility where this product currently has stock. This field can be filtered by facility location and lot ID to show only sublocations relevant to specific inventory parameters. Users can view this field to identify all the distinct physical storage locations within a warehouse or facility where units of the product are stored.

Label: Distinct sublocations

Sortable: No

Parameters:

Location(s)

Lot ID

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    stockDistinctSublocations(
      facilityUrlList: ["example-value"]
      lotIdSearch: ["example-value"]
    )
  }
}

stockOnHand Skip link to [object Object]

The current inventory quantity physically present at one or more facilities for a product. This field represents the actual stock that exists in warehouse locations, excluding items that are on order but not yet received. Users can view stock on hand across different count types (open quantity, case quantity, or total units) and filter by specific facilities, lot numbers, or include bill of materials components. The value can be positive (indicating available inventory), zero, or negative (indicating oversold or allocated inventory). This is a fundamental inventory metric used to understand what physical product is currently in stock and can be compared against reserved quantities to determine what is truly available for sale or fulfillment.

Label: Quantity on hand

Sortable: ⚠️ Yes (with limitations - see parameter options below)

Parameters:

Combine quantities using

Count quantity by

Location(s) or sublocation(s)

Bill of materials (BoM)

Options:

Supplier

Lot ID

Excluded sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    stockOnHand(
      aggregate: sum
      count: totalUnits
      facilityUrlList: ["example-value"]
      includeBom: exclude
      includeSupplier: exclude
      lotIdSearch: ["example-value"]
      reservedSublocationFacilityUrlList: ["example-value"]
    )
  }
}

stockOnOrder Skip link to [object Object]

The quantity of product currently on order from suppliers through pending purchase orders. This field displays how much inventory has been ordered but not yet received, helping businesses track incoming stock and plan for future availability. The field accepts parameters to specify different counting methods such as open quantity, case quantity, case units, or total units, allowing users to view on-order stock in different unit measurements depending on their needs.

Label: On order

Sortable: ⚠️ Yes (with limitations - see parameter options below)

Parameters:

Combine quantities using

Count quantity by

Location(s)

Bill of materials (BoM)

Options:

Lot ID

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    stockOnOrder(
      aggregate: sum
      count: totalUnits
      facilityUrlList: ["example-value"]
      includeBom: exclude
      lotIdSearch: ["example-value"]
    )
  }
}

stockoutDays Skip link to [object Object]

Label: Stockout

Sortable: No

Parameters:

Location(s)

Location

Bill of materials (BoM)

Options:

Stock type

Options:

Excluded sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    stockoutDays(
      facilityUrlList: ["example-value"]
      facilityUrl: "example-value"
      includeBom: exclude
      stockType: remaining
      reservedSublocationFacilityUrlList: ["example-value"]
    )
  }
}

stockRemaining Skip link to [object Object]

The quantity of stock remaining for a product, calculated as the difference between stock on order and what is currently reserved or allocated. This value can be negative when reservations exceed available inventory, indicating backordered items. The field supports different count types including open quantity, case quantity, case units, and total units, allowing businesses to track remaining stock across various measurement units.

Label: Remaining after reservations

Sortable: ⚠️ Yes (with limitations - see parameter options below)

Parameters:

Combine quantities using

Count quantity by

Location(s)

Bill of materials (BoM)

Options:

Supplier

Lot ID

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    stockRemaining(
      aggregate: sum
      count: totalUnits
      facilityUrlList: ["example-value"]
      includeBom: exclude
      includeSupplier: exclude
      lotIdSearch: ["example-value"]
    )
  }
}

stockReserved Skip link to [object Object]

Label: Reservations

Sortable: ⚠️ Yes (with limitations - see parameter options below)

Parameters:

Combine quantities using

Count quantity by

Location(s)

Bill of materials (BoM)

Options:

Lot ID

Reservation type

Options:

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    stockReserved(
      aggregate: sum
      count: totalUnits
      facilityUrlList: ["example-value"]
      includeBom: exclude
      lotIdSearch: ["example-value"]
      reservationType: backOrdered
    )
  }
}

stockSublocations Skip link to [object Object]

Label: Sublocations

Sortable: No

Parameters:

Location(s)

Lot ID

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    stockSublocations(
      facilityUrlList: ["example-value"]
      lotIdSearch: ["example-value"]
    )
  }
}

stockSublocationSummary Skip link to [object Object]

Label: Sublocation summary

Sortable: No

Parameters:

Location(s)

Lot ID

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    stockSublocationSummary(
      facilityUrlList: ["example-value"]
      lotIdSearch: ["example-value"]
    )
  }
}

storeBaseQuantityForStore Skip link to [object Object]

Label: Base quantity for store

Sortable: No

Possible Values:

Parameters:

Store

If value for store is unset

Options:

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    storeBaseQuantityForStore(
      productStoreUrl: "example-value"
      productStoreShowDefault: empty
    )
  }
}

storeIncludeSupplierQuantityForStore Skip link to [object Object]

Label: Include supplier quantity for store

Sortable: No

Possible Values:

Parameters:

Store

If value for store is unset

Options:

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    storeIncludeSupplierQuantityForStore(
      productStoreUrl: "example-value"
      productStoreShowDefault: empty
    )
  }
}

storeLeadDaysForStore Skip link to [object Object]

Label: Lead days for store

Sortable: No

Parameters:

Store

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    storeLeadDaysForStore(
      productStoreUrl: "example-value"
    )
  }
}

storeMaximumQuantityForStore Skip link to [object Object]

Label: Maximum quantity for store

Sortable: No

Parameters:

Store

If value for store is unset

Options:

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    storeMaximumQuantityForStore(
      productStoreUrl: "example-value"
      productStoreShowDefault: empty
    )
  }
}

storeMinimumQuantityForStore Skip link to [object Object]

Label: Minimum quantity for store

Sortable: No

Parameters:

Store

If value for store is unset

Options:

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    storeMinimumQuantityForStore(
      productStoreUrl: "example-value"
      productStoreShowDefault: empty
    )
  }
}

storeQuantityForStore Skip link to [object Object]

Label: Quantity for store

Sortable: No

Parameters:

Store

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    storeQuantityForStore(
      productStoreUrl: "example-value"
    )
  }
}

storeQuantityPercentageForStore Skip link to [object Object]

Label: Quantity percentage for store

Sortable: No

Parameters:

Store

If value for store is unset

Options:

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    storeQuantityPercentageForStore(
      productStoreUrl: "example-value"
      productStoreShowDefault: empty
    )
  }
}

storeSourceForStore Skip link to [object Object]

Label: Source for store

Sortable: No

Parameters:

Store

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    storeSourceForStore(
      productStoreUrl: "example-value"
    )
  }
}

storeStockSourceForStore Skip link to [object Object]

Label: Stock source for store

Sortable: No

Possible Values:

Parameters:

Store

If value for store is unset

Options:

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    storeStockSourceForStore(
      productStoreUrl: "example-value"
      productStoreShowDefault: empty
    )
  }
}

totalLeadTime Skip link to [object Object]

Label: Total lead time

Sortable: No

Parameters:

Location

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    totalLeadTime(
      facilityUrl: "example-value"
    )
  }
}

totalReplenishmentLeadTime Skip link to [object Object]

Label: Total replenishment lead time

Sortable: No

Parameters:

Location

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    totalReplenishmentLeadTime(
      facilityUrl: "example-value"
    )
  }
}

unitSales Skip link to [object Object]

Label: Unit sales

Sortable: No

Parameters:

Dates

Location(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    unitSales(
      dateRange: { begin: "2024-01-01", end: "2024-12-31" }
      facilityUrlList: ["example-value"]
    )
  }
}

unitSalesChange Skip link to [object Object]

Label: Unit sales change

Sortable: No

Parameters:

Baseline dates

Comparison dates

Location(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    unitSalesChange(
      before: { begin: "2024-01-01", end: "2024-12-31" }
      after: { begin: "2024-01-01", end: "2024-12-31" }
      facilityUrlList: ["example-value"]
    )
  }
}

unitSalesForSalesVelocity Skip link to [object Object]

Label: Total sales

Sortable: No

Parameters:

Dates

Location(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    unitSalesForSalesVelocity(
      dateRange: { begin: "2024-01-01", end: "2024-12-31" }
      facilityUrlList: ["example-value"]
    )
  }
}

unitsInStock Skip link to [object Object]

Label: Units in stock

Sortable: No

Parameters:

Location(s) or sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    unitsInStock(
      facilityUrlList: ["example-value"]
    )
  }
}

unitsInTransit Skip link to [object Object]

Label: Units in transit

Sortable: No

Parameters:

Location(s) or sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    unitsInTransit(
      facilityUrlList: ["example-value"]
    )
  }
}

unitsPacked Skip link to [object Object]

Label: Units packed

Sortable: No

Parameters:

Location(s) or sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    unitsPacked(
      facilityUrlList: ["example-value"]
    )
  }
}

unitsTotal Skip link to [object Object]

Label: Units total

Sortable: No

Parameters:

Location(s) or sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    unitsTotal(
      facilityUrlList: ["example-value"]
    )
  }
}

unitsWorkInProgress Skip link to [object Object]

Label: Units WIP (consuming)

Sortable: No

Parameters:

Location(s) or sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    unitsWorkInProgress(
      facilityUrlList: ["example-value"]
    )
  }
}

unitsWorkInProgressProducing Skip link to [object Object]

Label: Units WIP (producing)

Sortable: Yes

Parameters:

Location(s) or sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    unitsWorkInProgressProducing(
      facilityUrlList: ["example-value"]
    )
  }
}

usageGrowthyr Skip link to [object Object]

Label: Usage growth %/yr

Sortable: No

Parameters:

Location

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    usageGrowthyr(
      facilityUrl: "example-value"
    )
  }
}

valuation Skip link to [object Object]

Label: Valuation

Sortable: Yes

Parameters:

Location(s) or sublocation(s)

Lot ID

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    valuation(
      facilityUrlList: ["example-value"]
      lotIdSearch: ["example-value"]
    )
  }
}

valueInStock Skip link to [object Object]

Label: Value in stock

Sortable: No

Parameters:

Location(s) or sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    valueInStock(
      facilityUrlList: ["example-value"]
    )
  }
}

valueInTransit Skip link to [object Object]

Label: Value in transit

Sortable: No

Parameters:

Location(s) or sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    valueInTransit(
      facilityUrlList: ["example-value"]
    )
  }
}

valuePacked Skip link to [object Object]

Label: Value packed

Sortable: No

Parameters:

Location(s) or sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    valuePacked(
      facilityUrlList: ["example-value"]
    )
  }
}

valueTotal Skip link to [object Object]

Label: Value total

Sortable: No

Parameters:

Location(s) or sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    valueTotal(
      facilityUrlList: ["example-value"]
    )
  }
}

valueWorkInProgress Skip link to [object Object]

Label: Value WIP (consuming)

Sortable: No

Parameters:

Location(s) or sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    valueWorkInProgress(
      facilityUrlList: ["example-value"]
    )
  }
}

valueWorkInProgressProducing Skip link to [object Object]

Label: Value WIP (producing)

Sortable: No

Parameters:

Location(s) or sublocation(s)

Example Query:

GraphQL

{
  product(productUrl: "example-url") {
    valueWorkInProgressProducing(
      facilityUrlList: ["example-value"]
    )
  }
}

Relations Skip link to Relations

connectionRelation Skip link to connectionRelation

Example Query:

GraphQL

query {
  productViewConnection(first: 10) {
    edges {
      node {
        connectionRelation {
          syncStatuses
          errorDetails
        }
      }
    }
  }
}

lastPurchaseShipment Skip link to lastPurchaseShipment

Example Query:

GraphQL

query {
  productViewConnection(first: 10) {
    edges {
      node {
        lastPurchaseShipment {
          shipmentId
          shipmentUrl
        }
      }
    }
  }
}

recordCreatedUser Skip link to recordCreatedUser

Example Query:

GraphQL

query {
  productViewConnection(first: 10) {
    edges {
      node {
        recordCreatedUser {
          name
          userLoginUrl
        }
      }
    }
  }
}

recordLastUpdatedUser Skip link to recordLastUpdatedUser

Example Query:

GraphQL

query {
  productViewConnection(first: 10) {
    edges {
      node {
        recordLastUpdatedUser {
          name
          userLoginUrl
        }
      }
    }
  }
}

supplier1 Skip link to supplier1

Example Query:

GraphQL

query {
  productViewConnection(first: 10) {
    edges {
      node {
        supplier1 {
          name
          partyUrl
        }
      }
    }
  }
}

supplier2 Skip link to supplier2

Example Query:

GraphQL

query {
  productViewConnection(first: 10) {
    edges {
      node {
        supplier2 {
          name
          partyUrl
        }
      }
    }
  }
}

supplier3 Skip link to supplier3

Example Query:

GraphQL

query {
  productViewConnection(first: 10) {
    edges {
      node {
        supplier3 {
          name
          partyUrl
        }
      }
    }
  }
}

Filters Skip link to Filters

accountOverride Skip link to accountOverride

Filter Type: Predefined options

Get Current Options:

These options may vary by account configuration. To get the current list:

GraphQL

query {
  dataSetMeta(purpose: "uiProduct") {
    dataSets(name: "product") {
      filters {
        name
        optionList {
          value
          label
        }
      }
    }
  }
}

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    accountOverride: ["##productAcctOverride", "##productAcctDefault"]
  ) {
    edges {
      node {
        title
        accountOverride
      }
    }
  }
}

caliber Skip link to caliber

Filter Type: Predefined options

Get Current Options:

These options may vary by account configuration. To get the current list:

GraphQL

query {
  dataSetMeta(purpose: "uiProduct") {
    dataSets(name: "product") {
      filters {
        name
        optionList {
          value
          label
        }
      }
    }
  }
}

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    caliber: ["##calSmall", "##cal2in"]
  ) {
    edges {
      node {
        title
        caliber
      }
    }
  }
}

category Skip link to category

Filter Type: Text value

This filter accepts freeform text values.

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    category: "Electronics"
  ) {
    edges {
      node {
        title
        category
      }
    }
  }
}

choreographyTab Skip link to choreographyTab

Filter Type: Predefined options

Get Current Options:

These options may vary by account configuration. To get the current list:

GraphQL

query {
  dataSetMeta(purpose: "uiProduct") {
    dataSets(name: "product") {
      filters {
        name
        optionList {
          value
          label
        }
      }
    }
  }
}

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    choreographyTab: ["##shells", "##comets"]
  ) {
    edges {
      node {
        title
        choreographyTab
      }
    }
  }
}

connectionRelationErrorDates Skip link to connectionRelationErrorDates

Filter Type: Date range

Input Structure:

TypeScript

{
  begin: string  // ISO date format: "2024-01-01"
  end: string    // ISO date format: "2024-12-31"
}

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    connectionRelationErrorDates: {
      begin: "2024-01-01"
      end: "2024-12-31"
    }
  ) {
    edges {
      node {
        title
        connectionRelationErrorDates
      }
    }
  }
}

connectionRelationSyncStatuses Skip link to connectionRelationSyncStatuses

Filter Type: Predefined options

Get Current Options:

These options may vary by account configuration. To get the current list:

GraphQL

query {
  dataSetMeta(purpose: "uiProduct") {
    dataSets(name: "product") {
      filters {
        name
        optionList {
          value
          label
        }
      }
    }
  }
}

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    connectionRelationSyncStatuses: ["##crStatusNotPushed", "##crStatusPushed"]
  ) {
    edges {
      node {
        title
        connectionRelationSyncStatuses
      }
    }
  }
}

hasBom Skip link to hasBom

Filter Type: Predefined options

Get Current Options:

These options may vary by account configuration. To get the current list:

GraphQL

query {
  dataSetMeta(purpose: "uiProduct") {
    dataSets(name: "product") {
      filters {
        name
        optionList {
          value
          label
        }
      }
    }
  }
}

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    hasBom: ["##productHasBom", "##productDoesNotHaveBom"]
  ) {
    edges {
      node {
        title
        hasBom
      }
    }
  }
}

lastPurchaseDate Skip link to lastPurchaseDate

Filter Type: Date range

Input Structure:

TypeScript

{
  begin: string  // ISO date format: "2024-01-01"
  end: string    // ISO date format: "2024-12-31"
}

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    lastPurchaseDate: {
      begin: "2024-01-01"
      end: "2024-12-31"
    }
  ) {
    edges {
      node {
        title
        lastPurchaseDate
      }
    }
  }
}

manufacturer Skip link to manufacturer

Filter Type: Text value

This filter accepts freeform text values.

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    manufacturer: "Acme Corp"
  ) {
    edges {
      node {
        title
        manufacturer
      }
    }
  }
}

productId Skip link to productId

Filter Type: Text value

This filter accepts freeform text values.

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    productId: "12345"
  ) {
    edges {
      node {
        title
        productId
      }
    }
  }
}

productStoreUrlList Skip link to productStoreUrlList

Filter Type: Reference to productStore collection

This filter accepts values from the productStoreViewConnection query. To get available values:

GraphQL

query {
  productStoreViewConnection(
    first: 100
    status: "PROD_STORE_ACTIVE"
  ) {
    edges {
      node {
        productStoreUrl    # Use this value in the filter
        name
      }
    }
  }
}

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    productStoreUrlList: ["PRODUCTSTORE_URL_VALUE"]
  ) {
    edges {
      node {
        title
        productStore {
          name
        }
      }
    }
  }
}

productUrl Skip link to productUrl

Filter Type: Reference to product collection

This filter accepts values from the productViewConnection query. To get available values:

GraphQL

query {
  productViewConnection(
    first: 100
  ) {
    edges {
      node {
        productUrl    # Use this value in the filter
        title
      }
    }
  }
}

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    productUrl: ["PRODUCT_URL_VALUE"]
  ) {
    edges {
      node {
        title
        product {
          title
        }
      }
    }
  }
}

reorderQuantityToOrder Skip link to reorderQuantityToOrder

Filter Type: Number range

Input Structure:

TypeScript

{
  minInclusive: number
  maxInclusive: number
}

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    reorderQuantityToOrder: {
      minInclusive: 0
      maxInclusive: 100
    }
  ) {
    edges {
      node {
        title
        reorderQuantityToOrder
      }
    }
  }
}

reorderVariance Skip link to reorderVariance

Filter Type: Number range

Input Structure:

TypeScript

{
  minInclusive: number
  maxInclusive: number
}

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    reorderVariance: {
      minInclusive: 0
      maxInclusive: 100
    }
  ) {
    edges {
      node {
        title
        reorderVariance
      }
    }
  }
}

replenishmentQuantityToOrder Skip link to replenishmentQuantityToOrder

Filter Type: Number range

Input Structure:

TypeScript

{
  minInclusive: number
  maxInclusive: number
}

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    replenishmentQuantityToOrder: {
      minInclusive: 0
      maxInclusive: 100
    }
  ) {
    edges {
      node {
        title
        replenishmentQuantityToOrder
      }
    }
  }
}

replenishmentVariance Skip link to replenishmentVariance

Filter Type: Number range

Input Structure:

TypeScript

{
  minInclusive: number
  maxInclusive: number
}

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    replenishmentVariance: {
      minInclusive: 0
      maxInclusive: 100
    }
  ) {
    edges {
      node {
        title
        replenishmentVariance
      }
    }
  }
}

search Skip link to search

Filter Type: Search text

This filter performs a text search across multiple fields.

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    search: "search term"
  ) {
    edges {
      node {
        title
      }
    }
  }
}

searchCustom Skip link to searchCustom

Filter Type: Advanced search with result expansion

See the Advanced Search guide for complete documentation on how this filter works.

Collection-Specific Examples:

Example 1: Basic search:

GraphQL

query {
  productViewConnection(
    first: 10
    searchCustom: {
      terms: "red widget"
    }
  ) {
    edges {
      node {
        title
      }
    }
  }
}

Example 2: Include additional fields in search:

GraphQL

# Searches defaults PLUS manufacturer, brand, and category fields
query {
  productViewConnection(
    first: 10
    searchCustom: {
      terms: "acme"
      include: ["productManufacturer", "productBrand", "productCategory"]
    }
  ) {
    edges {
      node {
        title
      }
    }
  }
}

Example 3: Expand results to include related records:

GraphQL

# For each matching product, also return the supplier party record
query {
  productViewConnection(
    first: 10
    searchCustom: {
      terms: "urgent"
      extend: ["supplierPartyUrl"]
    }
  ) {
    edges {
      node {
        title
      }
    }
  }
}

Example 4: Combine include and extend:

GraphQL

# Search in defaults + additional fields, then expand to related records
query {
  productViewConnection(
    first: 10
    searchCustom: {
      terms: "acme corp"
      include: ["productManufacturer"]
      extend: ["supplierPartyUrl"]
    }
  ) {
    edges {
      node {
        title
      }
    }
  }
}

status Skip link to status

Filter Type: Predefined options

Get Current Options:

These options may vary by account configuration. To get the current list:

GraphQL

query {
  dataSetMeta(purpose: "uiProduct") {
    dataSets(name: "product") {
      filters {
        name
        optionList {
          value
          label
        }
      }
    }
  }
}

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    status: ["PRODUCT_ACTIVE", "PRODUCT_INACTIVE"]
  ) {
    edges {
      node {
        title
        status
      }
    }
  }
}

stock Skip link to stock

Filter Type: Number range

Input Structure:

TypeScript

{
  minInclusive: number
  maxInclusive: number
}

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    stock: {
      minInclusive: 0
      maxInclusive: 100
    }
  ) {
    edges {
      node {
        title
        stock
      }
    }
  }
}

supplier Skip link to supplier

Filter Type: Reference to party collection

Note: Filters to suppliers only

This filter accepts values from the partyViewConnection query. To get available values:

GraphQL

query {
  partyViewConnection(
    first: 100
    role: ["SUPPLIER"]
    status: "PARTY_ENABLED"
  ) {
    edges {
      node {
        partyUrl    # Use this value in the filter
        name
      }
    }
  }
}

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    supplier: ["PARTY_URL_VALUE"]
  ) {
    edges {
      node {
        title
        party {
          name
        }
      }
    }
  }
}

unitSales Skip link to unitSales

Filter Type: Number range

Input Structure:

TypeScript

{
  minInclusive: number
  maxInclusive: number
}

Usage Example:

GraphQL

query {
  productViewConnection(
    first: 10
    unitSales: {
      minInclusive: 0
      maxInclusive: 100
    }
  ) {
    edges {
      node {
        title
        unitSales
      }
    }
  }
}

Updated9 months ago


Did this page help you?

Yes

No

Updated9 months ago


Did this page help you?

Yes

No