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](https://developer.finaleinventory.com/reference/graphql-product\#product)

## Overview   [Skip link to Overview](https://developer.finaleinventory.com/reference/graphql-product\#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](https://developer.finaleinventory.com/reference/graphql-product\#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:**

- Cursor-based pagination (first/last/after/before)
- 22 filter options
- 42 sortable fields
- 7 relations to other collections

## Query Examples   [Skip link to Query Examples](https://developer.finaleinventory.com/reference/graphql-product\#query-examples)

### Basic Query   [Skip link to Basic Query](https://developer.finaleinventory.com/reference/graphql-product\#basic-query)

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

GraphQL

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

### Pagination   [Skip link to Pagination](https://developer.finaleinventory.com/reference/graphql-product\#pagination)

Use cursor-based pagination to retrieve large datasets:

GraphQL

```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](https://developer.finaleinventory.com/reference/graphql-product\#filtering)

Apply filters to narrow results (see [Filters](https://developer.finaleinventory.com/reference/graphql-product#filters) section for all available options):

GraphQL

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

### Sorting   [Skip link to Sorting](https://developer.finaleinventory.com/reference/graphql-product\#sorting)

Sort results by one or more fields:

GraphQL

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

### Relations   [Skip link to Relations](https://developer.finaleinventory.com/reference/graphql-product\#relations)

Query related data (see [Relations](https://developer.finaleinventory.com/reference/graphql-product#relations-1) section for all available relations):

GraphQL

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

## Summary and Aggregation   [Skip link to Summary and Aggregation](https://developer.finaleinventory.com/reference/graphql-product\#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](https://developer.finaleinventory.com/reference/graphql-aggregation).

### Query Structure   [Skip link to Query Structure](https://developer.finaleinventory.com/reference/graphql-product\#query-structure)

GraphQL

```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](https://developer.finaleinventory.com/reference/graphql-product\#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:**

- `operator` \- Aggregation function: `sum`, `mean`, `min`, `max`
- `transform` \- Mathematical transformation: `abs`
- `dateRange` \- Filter to specific date range
- `facilityUrlList` \- Filter to specific facilities

### GroupBy Dimensions   [Skip link to GroupBy Dimensions](https://developer.finaleinventory.com/reference/graphql-product\#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](https://developer.finaleinventory.com/reference/graphql-product\#examples)

#### Example 1: Inventory Analysis by Category   [Skip link to Example 1: Inventory Analysis by Category](https://developer.finaleinventory.com/reference/graphql-product\#example-1-inventory-analysis-by-category)

Calculate total stock and count by product category:

GraphQL

```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

```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](https://developer.finaleinventory.com/reference/graphql-product\#example-2-sales-performance-by-supplier)

Analyze sales metrics grouped by primary supplier:

GraphQL

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

## Fields   [Skip link to Fields](https://developer.finaleinventory.com/reference/graphql-product\#fields)

This collection has 192 fields:

- 104 simple fields
- 12 enum fields (with predefined values)
- 76 parameterized fields (accept query options)

> **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](https://developer.finaleinventory.com/reference/graphql-formatting) 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](https://developer.finaleinventory.com/reference/graphql-product\#simple-fields)

These fields return values directly without additional options.

#### `amazonStandardIdentificationNumber`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#amazonstandardidentificationnumber)

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]](https://developer.finaleinventory.com/reference/graphql-product\#averagecost)

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]](https://developer.finaleinventory.com/reference/graphql-product\#bomestimatedaveragecost)

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]](https://developer.finaleinventory.com/reference/graphql-product\#bomsublocationsummary)

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]](https://developer.finaleinventory.com/reference/graphql-product\#casedepth)

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]](https://developer.finaleinventory.com/reference/graphql-product\#caseheight)

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]](https://developer.finaleinventory.com/reference/graphql-product\#caseprice)

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]](https://developer.finaleinventory.com/reference/graphql-product\#casewidth)

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]](https://developer.finaleinventory.com/reference/graphql-product\#category)

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]](https://developer.finaleinventory.com/reference/graphql-product\#cbmperunit)

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]](https://developer.finaleinventory.com/reference/graphql-product\#cenumber)

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]](https://developer.finaleinventory.com/reference/graphql-product\#chainnumberofdevices)

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]](https://developer.finaleinventory.com/reference/graphql-product\#code128)

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]](https://developer.finaleinventory.com/reference/graphql-product\#custompartfield)

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]](https://developer.finaleinventory.com/reference/graphql-product\#description)

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]](https://developer.finaleinventory.com/reference/graphql-product\#dmxfixturedefinition)

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]](https://developer.finaleinventory.com/reference/graphql-product\#dmxpatch)

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]](https://developer.finaleinventory.com/reference/graphql-product\#duration)

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]](https://developer.finaleinventory.com/reference/graphql-product\#effectcolor)

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]](https://developer.finaleinventory.com/reference/graphql-product\#effectheight)

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]](https://developer.finaleinventory.com/reference/graphql-product\#effectsubtype)

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]](https://developer.finaleinventory.com/reference/graphql-product\#effectwidth)

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]](https://developer.finaleinventory.com/reference/graphql-product\#ematches)

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]](https://developer.finaleinventory.com/reference/graphql-product\#exnumber)

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]](https://developer.finaleinventory.com/reference/graphql-product\#fusedelay)

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]](https://developer.finaleinventory.com/reference/graphql-product\#hazarddefault)

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]](https://developer.finaleinventory.com/reference/graphql-product\#hazardousmaterial)

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]](https://developer.finaleinventory.com/reference/graphql-product\#hazardousmaterialdescription)

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]](https://developer.finaleinventory.com/reference/graphql-product\#imagetooltip)

An image attachment associated with the product, typically displayed visually in product lists and views. This field returns a [Content](https://developer.finaleinventory.com/reference/graphql-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]](https://developer.finaleinventory.com/reference/graphql-product\#internationalarticlenumber)

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]](https://developer.finaleinventory.com/reference/graphql-product\#itemcost)

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]](https://developer.finaleinventory.com/reference/graphql-product\#itemprice)

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]](https://developer.finaleinventory.com/reference/graphql-product\#lastpurchaselandedcostperunit)

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]](https://developer.finaleinventory.com/reference/graphql-product\#lastpurchaseprice)

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]](https://developer.finaleinventory.com/reference/graphql-product\#leadtime)

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]](https://developer.finaleinventory.com/reference/graphql-product\#manufacturer)

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]](https://developer.finaleinventory.com/reference/graphql-product\#manufacturermarktext)

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]](https://developer.finaleinventory.com/reference/graphql-product\#mfgproductid)

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]](https://developer.finaleinventory.com/reference/graphql-product\#neqperunit)

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]](https://developer.finaleinventory.com/reference/graphql-product\#neqperunitsystemofmeasure)

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]](https://developer.finaleinventory.com/reference/graphql-product\#notes)

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]](https://developer.finaleinventory.com/reference/graphql-product\#physicalspecifications)

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]](https://developer.finaleinventory.com/reference/graphql-product\#potentialbuildquantity)

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]](https://developer.finaleinventory.com/reference/graphql-product\#prefiretime)

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]](https://developer.finaleinventory.com/reference/graphql-product\#priceadditionalunits)

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]](https://developer.finaleinventory.com/reference/graphql-product\#pricefirstunit)

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]](https://developer.finaleinventory.com/reference/graphql-product\#productbomlist)

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]](https://developer.finaleinventory.com/reference/graphql-product\#productdetailurl)

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:

- The URL structure is an internal implementation detail subject to change
- Manually constructing URLs can lead to bugs and system errors
- Always use URL values exactly as provided by the API

**Label:** Product detail URL

**Sortable:** No

* * *

#### `productId`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#productid)

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

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

* * *

#### `productUrl`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#producturl)

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:

- ID values embedded in URLs may differ from entity ID values
- The URL structure is an internal implementation detail subject to change
- Manually constructing URLs can lead to bugs and system errors
- Always use URL values exactly as provided by the API

**Label:** Product Url

**Sortable:** No

* * *

#### `rackTubes`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#racktubes)

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]](https://developer.finaleinventory.com/reference/graphql-product\#racktypedefault)

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]](https://developer.finaleinventory.com/reference/graphql-product\#recordcreated)

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]](https://developer.finaleinventory.com/reference/graphql-product\#recordlastupdated)

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]](https://developer.finaleinventory.com/reference/graphql-product\#safetydistance)

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]](https://developer.finaleinventory.com/reference/graphql-product\#saleslast14days)

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]](https://developer.finaleinventory.com/reference/graphql-product\#saleslast180days)

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]](https://developer.finaleinventory.com/reference/graphql-product\#saleslast30days)

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]](https://developer.finaleinventory.com/reference/graphql-product\#saleslast365days)

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]](https://developer.finaleinventory.com/reference/graphql-product\#saleslast60days)

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]](https://developer.finaleinventory.com/reference/graphql-product\#saleslast7days)

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]](https://developer.finaleinventory.com/reference/graphql-product\#saleslast90days)

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]](https://developer.finaleinventory.com/reference/graphql-product\#saleslastmonth)

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]](https://developer.finaleinventory.com/reference/graphql-product\#saleslastweekmontosun)

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]](https://developer.finaleinventory.com/reference/graphql-product\#saleslastweeksuntosat)

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]](https://developer.finaleinventory.com/reference/graphql-product\#salesthismonth)

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]](https://developer.finaleinventory.com/reference/graphql-product\#salesthisweekmontosun)

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]](https://developer.finaleinventory.com/reference/graphql-product\#salesthisweeksuntosat)

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]](https://developer.finaleinventory.com/reference/graphql-product\#shortcode)

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]](https://developer.finaleinventory.com/reference/graphql-product\#shortcodeinstdpacking)

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]](https://developer.finaleinventory.com/reference/graphql-product\#skulist)

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]](https://developer.finaleinventory.com/reference/graphql-product\#stdbinid)

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]](https://developer.finaleinventory.com/reference/graphql-product\#stdbuyprice)

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]](https://developer.finaleinventory.com/reference/graphql-product\#stdpacking)

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]](https://developer.finaleinventory.com/reference/graphql-product\#stdpackingunitspercase)

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]](https://developer.finaleinventory.com/reference/graphql-product\#stdreorderlevel)

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]](https://developer.finaleinventory.com/reference/graphql-product\#stdreorderlevelmax)

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]](https://developer.finaleinventory.com/reference/graphql-product\#stdreordermaxdays)

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]](https://developer.finaleinventory.com/reference/graphql-product\#stdreorderprocessingleadtime)

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]](https://developer.finaleinventory.com/reference/graphql-product\#stdreorderquantity)

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]](https://developer.finaleinventory.com/reference/graphql-product\#stdreordersafetystock)

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]](https://developer.finaleinventory.com/reference/graphql-product\#stdreorderusagegrowth)

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]](https://developer.finaleinventory.com/reference/graphql-product\#supplier)

**Label:** Supplier

**Sortable:** No

* * *

#### `supplier1Comments`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#supplier1comments)

**Label:** Supplier 1

comments

**GraphQL Type:**`Text`

**Sortable:** No

* * *

#### `supplier1LeadTime`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#supplier1leadtime)

**Label:** Supplier 1

lead days

**GraphQL Type:**`Number`

**Sortable:** No

* * *

#### `supplier1Price`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#supplier1price)

**Label:** Supplier 1

price

**GraphQL Type:**`Price`

**Sortable:** No

* * *

#### `supplier1ProductId`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#supplier1productid)

**Label:** Supplier 1

product ID

**Sortable:** No

* * *

#### `supplier1QuantityAvailable`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#supplier1quantityavailable)

**Label:** Supplier 1

quantity available

**Sortable:** No

* * *

#### `supplier2Comments`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#supplier2comments)

**Label:** Supplier 2

comments

**GraphQL Type:**`Text`

**Sortable:** No

* * *

#### `supplier2LeadTime`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#supplier2leadtime)

**Label:** Supplier 2

lead days

**GraphQL Type:**`Number`

**Sortable:** No

* * *

#### `supplier2Price`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#supplier2price)

**Label:** Supplier 2

price

**GraphQL Type:**`Price`

**Sortable:** No

* * *

#### `supplier2ProductId`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#supplier2productid)

**Label:** Supplier 2

product ID

**Sortable:** No

* * *

#### `supplier2QuantityAvailable`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#supplier2quantityavailable)

**Label:** Supplier 2

quantity available

**Sortable:** No

* * *

#### `supplier3Comments`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#supplier3comments)

**Label:** Supplier 3

comments

**GraphQL Type:**`Text`

**Sortable:** No

* * *

#### `supplier3LeadTime`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#supplier3leadtime)

**Label:** Supplier 3

lead days

**GraphQL Type:**`Number`

**Sortable:** No

* * *

#### `supplier3Price`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#supplier3price)

**Label:** Supplier 3

price

**GraphQL Type:**`Price`

**Sortable:** No

* * *

#### `supplier3ProductId`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#supplier3productid)

**Label:** Supplier 3

product ID

**Sortable:** No

* * *

#### `supplier3QuantityAvailable`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#supplier3quantityavailable)

**Label:** Supplier 3

quantity available

**Sortable:** No

* * *

#### `title`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#title)

**Label:** Title

**Sortable:** No

* * *

#### `unitOfMeasure`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#unitofmeasure)

**Label:** Unit of measure

**GraphQL Type:**`OptionList`

**Sortable:** No

* * *

#### `universalProductCode`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#universalproductcode)

**Label:** UPC

**Sortable:** No

**Status:** ❌ Disabled

* * *

#### `vdlDescription`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#vdldescription)

**Label:** VDL description

**Sortable:** No

**Status:** ❌ Disabled

* * *

#### `weightPerUnit`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#weightperunit)

**Label:** Weight

per unit

**Sortable:** No

* * *

#### `weightPerUnitSystemOfMeasure`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#weightperunitsystemofmeasure)

**Label:** Weight

per unit

system of measure

**Sortable:** Yes

* * *

### Enum Fields   [Skip link to Enum Fields](https://developer.finaleinventory.com/reference/graphql-product\#enum-fields)

These fields return one of a predefined set of values.

#### `accountOverride`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#accountoverride)

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:**

- `##productAcctOverride` \- Has account override(s)
- `##productAcctDefault` \- Default accounts

* * *

#### `caliber`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#caliber)

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:**

- `##calSmall` \- Small
- `##cal2in` \- 2" / 51mm
- `##cal25in` \- 2.5" / 64mm
- `##cal3in` \- 3" / 76mm
- `##cal4in` \- 4" / 102mm
- `##cal5in` \- 5" / 127mm
- `##cal6in` \- 6" / 152mm
- `##cal7in` \- 7" / 178mm
- `##cal8in` \- 8" / 203mm
- `##calLarge` \- Large

* * *

#### `caseDimensionsUnit`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#casedimensionsunit)

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:**

- `LEN_m` \- Meter
- `LEN_cm` \- Centimeter
- `LEN_mm` \- Millimeter
- `LEN_ft` \- Feet
- `LEN_in` \- Inch
- `LEN_yd` \- Yard

* * *

#### `choreographyTab`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#choreographytab)

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:**

- `##shells` \- Shells
- `##comets` \- Comets
- `##mines` \- Mines
- `##multishot` \- Candles
- `##cakes` \- Cakes
- `##singleShot` \- Single shot
- `##ground` \- Ground
- `##rocket` \- Rocket
- `##flame` \- Flame
- `##sfx` \- Sfx
- `##macro` \- Macro
- `##light` \- Light
- `##fountains` \- Other
- `##nonChoreographed` \- Non-choreographed
- `##not_an_effect` \- Not an effect
- `##rack` \- Rack
- `##fixture` \- Fixture

* * *

#### `distanceUnit`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#distanceunit)

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:**

- `LEN_m` \- Meter
- `LEN_cm` \- Centimeter
- `LEN_mm` \- Millimeter
- `LEN_ft` \- Feet
- `LEN_in` \- Inch
- `LEN_yd` \- Yard

* * *

#### `expandBillOfMaterials`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#expandbillofmaterials)

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:**

- `##expand` \- Always expand bill of materials
- `##noexpand` \- Never expand bill of materials

* * *

#### `hasBom`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#hasbom)

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:**

- `##productHasBom` \- Has BOM
- `##productDoesNotHaveBom` \- Does not have BOM

* * *

#### `mfgCountry`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#mfgcountry)

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](https://developer.finaleinventory.com/reference/graphql-country-codes) (ISO 3166-1 alpha-3)

* * *

#### `reservationPolicy`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#reservationpolicy)

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:**

- `RSRV_PRODUCT_ONLY` \- Finished product only
- `RSRV_INCLUDE_BOM` \- Include BOM components

* * *

#### `status`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#status)

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:**

- `PRODUCT_ACTIVE` \- Active
- `PRODUCT_INACTIVE` \- Inactive

* * *

#### `stdReorderCalculationMethodId`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#stdreordercalculationmethodid)

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:**

- `##manual` \- Manual reorder point entry
- `##salesVelocity` \- Sales velocity
- `##doNotReorder` \- Do not reorder

* * *

#### `weightUnit`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#weightunit)

**Label:** Weight

unit

**Sortable:** No

**Possible Values:**

- `WT_kg` \- Kilogram
- `WT_g` \- Gram
- `WT_mg` \- Milligram
- `WT_lb` \- Pound
- `WT_oz` \- Ounce
- `WT_gr` \- Grain

* * *

### Parameterized Fields   [Skip link to Parameterized Fields](https://developer.finaleinventory.com/reference/graphql-product\#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]](https://developer.finaleinventory.com/reference/graphql-product\#averagegrosssalesperunit)

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:**

- **dateRange** (`DateRange`)

Dates

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

**Example Query:**

GraphQL

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

* * *

#### `averageGrossSalesPerUnitChange`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#averagegrosssalesperunitchange)

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:**

- **before** (`DateRange`)

Baseline dates

- **after** (`DateRange`)

Comparison dates

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

**Example Query:**

GraphQL

```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]](https://developer.finaleinventory.com/reference/graphql-product\#averageunitspersale)

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:**

- **dateRange** (`DateRange`)

Dates

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

**Example Query:**

GraphQL

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

* * *

#### `averageUnitsPerSaleChange`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#averageunitspersalechange)

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:**

- **before** (`DateRange`)

Baseline dates

- **after** (`DateRange`)

Comparison dates

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

**Example Query:**

GraphQL

```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]](https://developer.finaleinventory.com/reference/graphql-product\#cogssales)

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:**

- **dateRange** (`DateRange`)

Dates

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

**Example Query:**

GraphQL

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

* * *

#### `cogsSalesChange`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#cogssaleschange)

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:**

- **before** (`DateRange`)

Baseline dates

- **after** (`DateRange`)

Comparison dates

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

**Example Query:**

GraphQL

```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]](https://developer.finaleinventory.com/reference/graphql-product\#consumptionquantity)

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:**

- **facilityUrl** (`FacilityUrlLocation`)

Location

**Example Query:**

GraphQL

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

* * *

#### `consumptionVelocity`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#consumptionvelocity)

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:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **facilityUrl** (`FacilityUrlLocation`, ❌ disabled)

Location

**Example Query:**

GraphQL

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

* * *

#### `countSales`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#countsales)

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:**

- **dateRange** (`DateRange`)

Dates

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

**Example Query:**

GraphQL

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

* * *

#### `countSalesChange`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#countsaleschange)

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:**

- **before** (`DateRange`)

Baseline dates

- **after** (`DateRange`)

Comparison dates

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

**Example Query:**

GraphQL

```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]](https://developer.finaleinventory.com/reference/graphql-product\#daysuntilreorder)

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:**

- **facilityUrl** (`FacilityUrlLocation`)

Location

**Example Query:**

GraphQL

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

* * *

#### `demandPerDay`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#demandperday)

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:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **dateRange** (`DateRange`)

Dates

**Example Query:**

GraphQL

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

* * *

#### `filter`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#filter)

**Label:** Filter

**Sortable:** No

**Status:** ❌ Disabled

**Parameters:**

- **filter** (`ProductFilter`)

Filter

**Example Query:**

GraphQL

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

* * *

#### `grossSales`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#grosssales)

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:**

- **dateRange** (`DateRange`)

Dates

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

**Example Query:**

GraphQL

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

* * *

#### `grossSalesChange`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#grosssaleschange)

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:**

- **before** (`DateRange`)

Baseline dates

- **after** (`DateRange`)

Comparison dates

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

**Example Query:**

GraphQL

```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]](https://developer.finaleinventory.com/reference/graphql-product\#inventoryvariancevaluation)

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:**

- **dateRange** (`DateRange`)

Dates

**Example Query:**

GraphQL

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

* * *

#### `marginSales`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#marginsales)

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:**

- **dateRange** (`DateRange`)

Dates

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

**Example Query:**

GraphQL

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

* * *

#### `marginSalesChange`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#marginsaleschange)

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:**

- **before** (`DateRange`)

Baseline dates

- **after** (`DateRange`)

Comparison dates

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

**Example Query:**

GraphQL

```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]](https://developer.finaleinventory.com/reference/graphql-product\#processingdays)

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:**

- **facilityUrl** (`FacilityUrlLocation`)

Location

**Example Query:**

GraphQL

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

* * *

#### `reorderDaysOfInventory`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#reorderdaysofinventory)

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:**

- **facilityUrl** (`FacilityUrlLocation`)

Location

**Example Query:**

GraphQL

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

* * *

#### `reorderDemandPerDay`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#reorderdemandperday)

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:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

**Example Query:**

GraphQL

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

* * *

#### `reorderPoint`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#reorderpoint)

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:**

- **facilityUrl** (`FacilityUrlLocation`)

Location

**Example Query:**

GraphQL

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

* * *

#### `reorderPointCalculated`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#reorderpointcalculated)

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:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **facilityUrl** (`FacilityUrlLocation`, ❌ disabled)

Location

**Example Query:**

GraphQL

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

* * *

#### `reorderPointMax`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#reorderpointmax)

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:**

- **facilityUrl** (`FacilityUrlLocation`)

Location

**Example Query:**

GraphQL

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

* * *

#### `reorderPointMaxCalc`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#reorderpointmaxcalc)

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:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **facilityUrl** (`FacilityUrlLocation`, ❌ disabled)

Location

**Example Query:**

GraphQL

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

* * *

#### `reorderQuantity`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#reorderquantity)

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:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **facilityUrl** (`FacilityUrlLocation`, ❌ disabled)

Location

**Example Query:**

GraphQL

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

* * *

#### `reorderQuantityToOrder`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#reorderquantitytoorder)

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:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **facilityUrl** (`FacilityUrlLocation`, ❌ disabled)

Location

- **reservedSublocationFacilityUrlList** (`List|FacilityUrlSublocation`)

Excluded sublocation(s)

**Example Query:**

GraphQL

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

* * *

#### `reorderQuantityToOrderEditable`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#reorderquantitytoordereditable)

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:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **facilityUrl** (`FacilityUrlLocation`, ❌ disabled)

Location

- **reservedSublocationFacilityUrlList** (`List|FacilityUrlSublocation`)

Excluded sublocation(s)

**Example Query:**

GraphQL

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

* * *

#### `reorderVariance`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#reordervariance)

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:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **facilityUrl** (`FacilityUrlLocation`, ❌ disabled)

Location

- **reservedSublocationFacilityUrlList** (`List|FacilityUrlSublocation`)

Excluded sublocation(s)

**Example Query:**

GraphQL

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

* * *

#### `replenishmentPointCalculated`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#replenishmentpointcalculated)

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:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **facilityUrl** (`FacilityUrlLocation`, ❌ disabled)

Location

**Example Query:**

GraphQL

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

* * *

#### `replenishmentPointMaxCalc`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#replenishmentpointmaxcalc)

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:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **facilityUrl** (`FacilityUrlLocation`, ❌ disabled)

Location

**Example Query:**

GraphQL

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

* * *

#### `replenishmentQuantityToOrder`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#replenishmentquantitytoorder)

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:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **facilityUrl** (`FacilityUrlLocation`, ❌ disabled)

Location

- **reservedSublocationFacilityUrlList** (`List|FacilityUrlSublocation`)

Excluded sublocation(s)

**Example Query:**

GraphQL

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

* * *

#### `replenishmentQuantityToOrderEditable`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#replenishmentquantitytoordereditable)

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:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **facilityUrl** (`FacilityUrlLocation`, ❌ disabled)

Location

- **reservedSublocationFacilityUrlList** (`List|FacilityUrlSublocation`)

Excluded sublocation(s)

**Example Query:**

GraphQL

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

* * *

#### `replenishmentVariance`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#replenishmentvariance)

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:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **facilityUrl** (`FacilityUrlLocation`, ❌ disabled)

Location

- **reservedSublocationFacilityUrlList** (`List|FacilityUrlSublocation`)

Excluded sublocation(s)

**Example Query:**

GraphQL

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

* * *

#### `safetyStockDays`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#safetystockdays)

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:**

- **facilityUrl** (`FacilityUrlLocation`)

Location

**Example Query:**

GraphQL

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

* * *

#### `salesVelocity`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#salesvelocity)

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:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **dateRange** (`DateRange`)

Dates

**Example Query:**

GraphQL

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

* * *

#### `stdReorderCalculationMethodTimePeriod`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#stdreordercalculationmethodtimeperiod)

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:**

- **defaultValue** (`DefaultValue`) \- Default: `exclude`

Default value

**Options:**
  - `exclude` \- Show blank if no value is specified
  - `include` \- Show default value if no value is specified

**Example Query:**

GraphQL

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

* * *

#### `stock`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#stock)

**Label:** Stock

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

**Parameters:**

- **aggregate** (`ProductStockAggregate`, ❌ disabled) - Default: `sum`

Combine quantities using

**Options:**
  - `sum` \- Sum
  - `min` \- Minimum
  - `max` \- Maximum
  - `minAbs` \- Minimum of absolute values
  - `maxAbs` \- Maximum of absolute values
- **count** (`ProductStockCount`) \- Default: `totalUnits`

Count quantity by

**Options:**
  - `openQuantity` \- Open stock
  - `caseQuantity` \- Case stock
  - `totalUnits` \- Units including open and case stock
  - `caseUnits` \- Units including case stock only
  - `totalCaseEquivalents` \- Case equivalents including open and case stock
  - `openCaseEquivalents` \- Case equivalents including open stock only
- **facilityUrlList** (`List|FacilityUrlLocationOrSublocation`)

Location(s) or sublocation(s)

- **includeBom** (`ProductStockIncludeBom`) \- Default: `exclude`

Bill of materials (BoM)

**Options:**
  - `exclude` \- Exclude BoM
  - `include` \- Include BoM ⚠️ not sortable
- **includeSupplier** (`ProductStockIncludeSupplier`) \- Default: `exclude`

Supplier

**Options:**
  - `exclude` \- Exclude supplier quantity
  - `includePrioritized` \- Include prioritized supplier quantity
  - `include` \- Include supplier quantity ⚠️ not sortable
- **lotIdSearch** (`List|LotIdSearchString`)

Lot ID

- **stockType** (`ProductStockType`)

Type

**Options:**
  - `available` \- Available
  - `onHand` \- On hand
  - `onOrder` \- On order
  - `remaining` \- Remaining after reservations
  - `reserved` \- Reserved
  - `reservedBackordered` \- Reserved backordered
  - `reservedOnHand` \- Reserved on hand

**Example Query:**

GraphQL

```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]](https://developer.finaleinventory.com/reference/graphql-product\#stockavailable)

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:**

- **aggregate** (`ProductStockAggregate`, ❌ disabled) - Default: `sum`

Combine quantities using

Count quantity by

**Options:**
  - `openQuantity` \- Open stock
  - `caseQuantity` \- Case stock
  - `totalUnits` \- Units including open and case stock
  - `caseUnits` \- Units including case stock only
  - `totalCaseEquivalents` \- Case equivalents including open and case stock
  - `openCaseEquivalents` \- Case equivalents including open stock only
- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **includeBom** (`ProductStockIncludeBom`) \- Default: `exclude`

Bill of materials (BoM)

**Options:**
  - `exclude` \- Exclude BoM
  - `include` \- Include BoM ⚠️ not sortable
- **includeSupplier** (`ProductStockIncludeSupplier`) \- Default: `exclude`

Supplier

Lot ID

- **reservedSublocationFacilityUrlList** (`List|FacilityUrlSublocation`)

Excluded sublocation(s)

**Example Query:**

GraphQL

```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]](https://developer.finaleinventory.com/reference/graphql-product\#stockbomquantity)

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** (`ProductStockCountUnitsOrCases`) \- Default: `totalUnits`

Count quantity by

**Options:**
  - `totalUnits` \- Units including open and case stock
  - `totalCaseEquivalents` \- Case equivalents including open and case stock
- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

**Example Query:**

GraphQL

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

* * *

#### `stockDistinctSublocations`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#stockdistinctsublocations)

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:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **lotIdSearch** (`List|LotIdSearchString`)

Lot ID

**Example Query:**

GraphQL

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

* * *

#### `stockOnHand`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#stockonhand)

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:**

- **aggregate** (`ProductStockAggregate`, ❌ disabled) - Default: `sum`

Combine quantities using

Count quantity by

Location(s) or sublocation(s)

- **includeBom** (`ProductStockIncludeBom`) \- Default: `exclude`

Bill of materials (BoM)

**Options:**
  - `exclude` \- Exclude BoM
  - `include` \- Include BoM ⚠️ not sortable
- **includeSupplier** (`ProductStockIncludeSupplier`) \- Default: `exclude`

Supplier

Lot ID

- **reservedSublocationFacilityUrlList** (`List|FacilityUrlSublocation`)

Excluded sublocation(s)

**Example Query:**

GraphQL

```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]](https://developer.finaleinventory.com/reference/graphql-product\#stockonorder)

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:**

- **aggregate** (`ProductStockAggregate`, ❌ disabled) - Default: `sum`

Combine quantities using

Count quantity by

Location(s)

- **includeBom** (`ProductStockIncludeBom`) \- Default: `exclude`

Bill of materials (BoM)

**Options:**
  - `exclude` \- Exclude BoM
  - `include` \- Include BoM ⚠️ not sortable
- **lotIdSearch** (`List|LotIdSearchString`)

Lot ID

**Example Query:**

GraphQL

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

* * *

#### `stockoutDays`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#stockoutdays)

**Label:** Stockout

**Sortable:** No

**Parameters:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **facilityUrl** (`FacilityUrlLocation`, ❌ disabled)

Location

- **includeBom** (`ProductStockIncludeBom`) \- Default: `exclude`

Bill of materials (BoM)

**Options:**
  - `exclude` \- Exclude BoM
  - `include` \- Include BoM ⚠️ not sortable
- **stockType** (`ProductStockTypeForStockout`) \- Default: `remaining`

Stock type

**Options:**
  - `available` \- Available
  - `onHand` \- On hand
  - `remaining` \- Remaining after reservations
- **reservedSublocationFacilityUrlList** (`List|FacilityUrlSublocation`)

Excluded sublocation(s)

**Example Query:**

GraphQL

```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]](https://developer.finaleinventory.com/reference/graphql-product\#stockremaining)

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:**

- **aggregate** (`ProductStockAggregate`, ❌ disabled) - Default: `sum`

Combine quantities using

Count quantity by

Location(s)

- **includeBom** (`ProductStockIncludeBom`) \- Default: `exclude`

Bill of materials (BoM)

**Options:**
  - `exclude` \- Exclude BoM
  - `include` \- Include BoM ⚠️ not sortable
- **includeSupplier** (`ProductStockIncludeSupplier`) \- Default: `exclude`

Supplier

Lot ID

**Example Query:**

GraphQL

```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]](https://developer.finaleinventory.com/reference/graphql-product\#stockreserved)

**Label:** Reservations

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

**Parameters:**

- **aggregate** (`ProductStockAggregate`, ❌ disabled) - Default: `sum`

Combine quantities using

Count quantity by

Location(s)

- **includeBom** (`ProductStockIncludeBom`) \- Default: `exclude`

Bill of materials (BoM)

**Options:**
  - `exclude` \- Exclude BoM
  - `include` \- Include BoM ⚠️ not sortable
- **lotIdSearch** (`List|LotIdSearchString`)

Lot ID

- **reservationType** (`ProductStockReservationType`) \- Default: `backOrdered`

Reservation type

**Options:**
  - `all` \- Backordered + on hand
  - `backOrdered` \- Backordered
  - `onHand` \- On hand

**Example Query:**

GraphQL

```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]](https://developer.finaleinventory.com/reference/graphql-product\#stocksublocations)

**Label:** Sublocations

**Sortable:** No

**Parameters:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **lotIdSearch** (`List|LotIdSearchString`)

Lot ID

**Example Query:**

GraphQL

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

* * *

#### `stockSublocationSummary`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#stocksublocationsummary)

**Label:** Sublocation summary

**Sortable:** No

**Parameters:**

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

- **lotIdSearch** (`List|LotIdSearchString`)

Lot ID

**Example Query:**

GraphQL

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

* * *

#### `storeBaseQuantityForStore`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#storebasequantityforstore)

**Label:** Base quantity for store

**Sortable:** No

**Possible Values:**

- `QTY_SRC_RMNG` \- Remaining after reservations (include BOM)
- `QTY_SRC_AVAIL` \- Available to promise (include BOM)
- `QTY_SRC_QOH` \- Quantity on hand (include BOM)
- `QTY_SRC_RMNG_NO_BOM` \- Remaining after reservations (exclude BOM)
- `QTY_SRC_AVAIL_NO_BOM` \- Available to promise (exclude BOM)
- `QTY_SRC_QOH_NO_BOM` \- Quantity on hand (exclude BOM)
- `QTY_SRC_SET_MIN` \- Set to minimum quantity
- `QTY_SRC_SET_MAX` \- Set to maximum quantity

**Parameters:**

- **productStoreUrl** (`ProductStoreUrlString`)

Store

- **productStoreShowDefault** (`ProductStoreShowDefault`) \- Default: `empty`

If value for store is unset

**Options:**
  - `default` \- Show default value
  - `empty` \- Show no value

**Example Query:**

GraphQL

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

* * *

#### `storeIncludeSupplierQuantityForStore`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#storeincludesupplierquantityforstore)

**Label:** Include supplier quantity for store

**Sortable:** No

**Possible Values:**

- `QTY_SUPPL_NONE` \- No suppliers
- `QTY_SUPPL_10_MAIN` \- Supplier 1
- `QTY_SUPPL_90_ALT` \- Supplier 2
- `QTY_SUPPL_91_ALT` \- Supplier 3
- `QTY_SUPPL_ALL` \- All suppliers
- `QTY_SUPPL_PRIORITY` \- Prioritized supplier

**Parameters:**

- **productStoreUrl** (`ProductStoreUrlString`)

Store

- **productStoreShowDefault** (`ProductStoreShowDefault`) \- Default: `empty`

If value for store is unset

**Options:**
  - `default` \- Show default value
  - `empty` \- Show no value

**Example Query:**

GraphQL

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

* * *

#### `storeLeadDaysForStore`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#storeleaddaysforstore)

**Label:** Lead days for store

**Sortable:** No

**Parameters:**

- **productStoreUrl** (`ProductStoreUrlString`)

Store

**Example Query:**

GraphQL

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

* * *

#### `storeMaximumQuantityForStore`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#storemaximumquantityforstore)

**Label:** Maximum quantity for store

**Sortable:** No

**Parameters:**

- **productStoreUrl** (`ProductStoreUrlString`)

Store

- **productStoreShowDefault** (`ProductStoreShowDefault`) \- Default: `empty`

If value for store is unset

**Options:**
  - `default` \- Show default value
  - `empty` \- Show no value

**Example Query:**

GraphQL

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

* * *

#### `storeMinimumQuantityForStore`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#storeminimumquantityforstore)

**Label:** Minimum quantity for store

**Sortable:** No

**Parameters:**

- **productStoreUrl** (`ProductStoreUrlString`)

Store

- **productStoreShowDefault** (`ProductStoreShowDefault`) \- Default: `empty`

If value for store is unset

**Options:**
  - `default` \- Show default value
  - `empty` \- Show no value

**Example Query:**

GraphQL

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

* * *

#### `storeQuantityForStore`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#storequantityforstore)

**Label:** Quantity for store

**Sortable:** No

**Parameters:**

- **productStoreUrl** (`ProductStoreUrlString`)

Store

**Example Query:**

GraphQL

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

* * *

#### `storeQuantityPercentageForStore`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#storequantitypercentageforstore)

**Label:** Quantity percentage for store

**Sortable:** No

**Parameters:**

- **productStoreUrl** (`ProductStoreUrlString`)

Store

- **productStoreShowDefault** (`ProductStoreShowDefault`) \- Default: `empty`

If value for store is unset

**Options:**
  - `default` \- Show default value
  - `empty` \- Show no value

**Example Query:**

GraphQL

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

* * *

#### `storeSourceForStore`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#storesourceforstore)

**Label:** Source for store

**Sortable:** No

**Parameters:**

- **productStoreUrl** (`ProductStoreUrlString`)

Store

**Example Query:**

GraphQL

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

* * *

#### `storeStockSourceForStore`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#storestocksourceforstore)

**Label:** Stock source for store

**Sortable:** No

**Possible Values:**

- `##locationAll` \- All locations

**Parameters:**

- **productStoreUrl** (`ProductStoreUrlString`)

Store

- **productStoreShowDefault** (`ProductStoreShowDefault`) \- Default: `empty`

If value for store is unset

**Options:**
  - `default` \- Show default value
  - `empty` \- Show no value

**Example Query:**

GraphQL

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

* * *

#### `totalLeadTime`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#totalleadtime)

**Label:** Total lead time

**Sortable:** No

**Parameters:**

- **facilityUrl** (`FacilityUrlLocation`)

Location

**Example Query:**

GraphQL

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

* * *

#### `totalReplenishmentLeadTime`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#totalreplenishmentleadtime)

**Label:** Total replenishment lead time

**Sortable:** No

**Parameters:**

- **facilityUrl** (`FacilityUrlLocation`)

Location

**Example Query:**

GraphQL

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

* * *

#### `unitSales`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#unitsales)

**Label:** Unit sales

**Sortable:** No

**Parameters:**

- **dateRange** (`DateRange`)

Dates

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

**Example Query:**

GraphQL

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

* * *

#### `unitSalesChange`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#unitsaleschange)

**Label:** Unit sales change

**Sortable:** No

**Parameters:**

- **before** (`DateRange`)

Baseline dates

- **after** (`DateRange`)

Comparison dates

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

**Example Query:**

GraphQL

```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]](https://developer.finaleinventory.com/reference/graphql-product\#unitsalesforsalesvelocity)

**Label:** Total sales

**Sortable:** No

**Parameters:**

- **dateRange** (`DateRange`)

Dates

- **facilityUrlList** (`List|FacilityUrlLocation`)

Location(s)

**Example Query:**

GraphQL

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

* * *

#### `unitsInStock`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#unitsinstock)

**Label:** Units in stock

**Sortable:** No

**Parameters:**

- **facilityUrlList** (`List|FacilityUrlLocationOrSublocation`)

Location(s) or sublocation(s)

**Example Query:**

GraphQL

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

* * *

#### `unitsInTransit`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#unitsintransit)

**Label:** Units in transit

**Sortable:** No

**Parameters:**

- **facilityUrlList** (`List|FacilityUrlLocationOrSublocation`)

Location(s) or sublocation(s)

**Example Query:**

GraphQL

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

* * *

#### `unitsPacked`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#unitspacked)

**Label:** Units packed

**Sortable:** No

**Parameters:**

- **facilityUrlList** (`List|FacilityUrlLocationOrSublocation`)

Location(s) or sublocation(s)

**Example Query:**

GraphQL

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

* * *

#### `unitsTotal`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#unitstotal)

**Label:** Units total

**Sortable:** No

**Parameters:**

- **facilityUrlList** (`List|FacilityUrlLocationOrSublocation`)

Location(s) or sublocation(s)

**Example Query:**

GraphQL

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

* * *

#### `unitsWorkInProgress`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#unitsworkinprogress)

**Label:** Units WIP (consuming)

**Sortable:** No

**Parameters:**

- **facilityUrlList** (`List|FacilityUrlLocationOrSublocation`)

Location(s) or sublocation(s)

**Example Query:**

GraphQL

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

* * *

#### `unitsWorkInProgressProducing`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#unitsworkinprogressproducing)

**Label:** Units WIP (producing)

**Sortable:** Yes

**Parameters:**

- **facilityUrlList** (`List|FacilityUrlLocationOrSublocation`)

Location(s) or sublocation(s)

**Example Query:**

GraphQL

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

* * *

#### `usageGrowthyr`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#usagegrowthyr)

**Label:** Usage growth %/yr

**Sortable:** No

**Parameters:**

- **facilityUrl** (`FacilityUrlLocation`)

Location

**Example Query:**

GraphQL

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

* * *

#### `valuation`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#valuation)

**Label:** Valuation

**Sortable:** Yes

**Parameters:**

- **facilityUrlList** (`List|FacilityUrlLocationOrSublocation`)

Location(s) or sublocation(s)

- **lotIdSearch** (`List|LotIdSearchString`)

Lot ID

**Example Query:**

GraphQL

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

* * *

#### `valueInStock`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#valueinstock)

**Label:** Value in stock

**Sortable:** No

**Parameters:**

- **facilityUrlList** (`List|FacilityUrlLocationOrSublocation`)

Location(s) or sublocation(s)

**Example Query:**

GraphQL

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

* * *

#### `valueInTransit`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#valueintransit)

**Label:** Value in transit

**Sortable:** No

**Parameters:**

- **facilityUrlList** (`List|FacilityUrlLocationOrSublocation`)

Location(s) or sublocation(s)

**Example Query:**

GraphQL

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

* * *

#### `valuePacked`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#valuepacked)

**Label:** Value packed

**Sortable:** No

**Parameters:**

- **facilityUrlList** (`List|FacilityUrlLocationOrSublocation`)

Location(s) or sublocation(s)

**Example Query:**

GraphQL

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

* * *

#### `valueTotal`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#valuetotal)

**Label:** Value total

**Sortable:** No

**Parameters:**

- **facilityUrlList** (`List|FacilityUrlLocationOrSublocation`)

Location(s) or sublocation(s)

**Example Query:**

GraphQL

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

* * *

#### `valueWorkInProgress`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#valueworkinprogress)

**Label:** Value WIP (consuming)

**Sortable:** No

**Parameters:**

- **facilityUrlList** (`List|FacilityUrlLocationOrSublocation`)

Location(s) or sublocation(s)

**Example Query:**

GraphQL

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

* * *

#### `valueWorkInProgressProducing`   [Skip link to [object Object]](https://developer.finaleinventory.com/reference/graphql-product\#valueworkinprogressproducing)

**Label:** Value WIP (producing)

**Sortable:** No

**Parameters:**

- **facilityUrlList** (`List|FacilityUrlLocationOrSublocation`)

Location(s) or sublocation(s)

**Example Query:**

GraphQL

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

* * *

## Relations   [Skip link to Relations](https://developer.finaleinventory.com/reference/graphql-product\#relations-1)

### connectionRelation   [Skip link to connectionRelation](https://developer.finaleinventory.com/reference/graphql-product\#connectionrelation)

- **Related Collection:** [connectionRelation](https://developer.finaleinventory.com/reference/graphql-connection-relation)
- **Label:** Integration

**Example Query:**

GraphQL

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

### lastPurchaseShipment   [Skip link to lastPurchaseShipment](https://developer.finaleinventory.com/reference/graphql-product\#lastpurchaseshipment)

- **Related Collection:** [shipment](https://developer.finaleinventory.com/reference/graphql-shipment)
- **Label:** Last purchase shipment

**Example Query:**

GraphQL

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

### recordCreatedUser   [Skip link to recordCreatedUser](https://developer.finaleinventory.com/reference/graphql-product\#recordcreateduser)

- **Related Collection:** [userLogin](https://developer.finaleinventory.com/reference/graphql-user-login)
- **Label:** Record created user

**Example Query:**

GraphQL

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

### recordLastUpdatedUser   [Skip link to recordLastUpdatedUser](https://developer.finaleinventory.com/reference/graphql-product\#recordlastupdateduser)

- **Related Collection:** [userLogin](https://developer.finaleinventory.com/reference/graphql-user-login)
- **Label:** Record last updated user

**Example Query:**

GraphQL

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

### supplier1   [Skip link to supplier1](https://developer.finaleinventory.com/reference/graphql-product\#supplier1)

- **Related Collection:** [party](https://developer.finaleinventory.com/reference/graphql-party)
- **Label:** Supplier 1
- **Typename:** PartyUrlSupplierString

**Example Query:**

GraphQL

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

### supplier2   [Skip link to supplier2](https://developer.finaleinventory.com/reference/graphql-product\#supplier2)

- **Related Collection:** [party](https://developer.finaleinventory.com/reference/graphql-party)
- **Label:** Supplier 2
- **Typename:** PartyUrlSupplierString

**Example Query:**

GraphQL

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

### supplier3   [Skip link to supplier3](https://developer.finaleinventory.com/reference/graphql-product\#supplier3)

- **Related Collection:** [party](https://developer.finaleinventory.com/reference/graphql-party)
- **Label:** Supplier 3
- **Typename:** PartyUrlSupplierString

**Example Query:**

GraphQL

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

## Filters   [Skip link to Filters](https://developer.finaleinventory.com/reference/graphql-product\#filters)

### accountOverride   [Skip link to accountOverride](https://developer.finaleinventory.com/reference/graphql-product\#accountoverride-1)

- **Label:** Has account override
- **Type:** List\|String
- **Enabled:** Yes
- **Options:**
  - Default accounts (##productAcctDefault)
  - Has account override(s) (##productAcctOverride)

**Filter Type:** Predefined options

**Get Current Options:**

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

GraphQL

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

**Usage Example:**

GraphQL

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

### caliber   [Skip link to caliber](https://developer.finaleinventory.com/reference/graphql-product\#caliber-1)

- **Label:** Caliber
- **Type:** String
- **Enabled:** Yes
- **Options:**
  - 2.5" / 64mm (##cal25in)
  - 2" / 51mm (##cal2in)
  - 3" / 76mm (##cal3in)
  - 4" / 102mm (##cal4in)
  - 5" / 127mm (##cal5in)
  - 6" / 152mm (##cal6in)
  - 7" / 178mm (##cal7in)
  - 8" / 203mm (##cal8in)
  - Large (##calLarge)
  - Small (##calSmall)

**Filter Type:** Predefined options

**Get Current Options:**

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

GraphQL

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

**Usage Example:**

GraphQL

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

### category   [Skip link to category](https://developer.finaleinventory.com/reference/graphql-product\#category-1)

- **Label:** Category
- **Type:** List\|String
- **Enabled:** Yes

**Filter Type:** Text value

This filter accepts freeform text values.

**Usage Example:**

GraphQL

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

### choreographyTab   [Skip link to choreographyTab](https://developer.finaleinventory.com/reference/graphql-product\#choreographytab-1)

- **Label:** Choreography tab
- **Type:** List\|String
- **Enabled:** No
- **Options:**
  - Cakes (##cakes)
  - Candles (##multishot)
  - Comets (##comets)
  - Fixture (##fixture)
  - Flame (##flame)
  - Ground (##ground)
  - Light (##light)
  - Macro (##macro)
  - Mines (##mines)
  - Non-choreographed (##nonChoreographed)
  - Not an effect (##not\_an\_effect)
  - Other (##fountains)
  - Rack (##rack)
  - Rocket (##rocket)
  - Sfx (##sfx)
  - Shells (##shells)
  - Single shot (##singleShot)

**Filter Type:** Predefined options

**Get Current Options:**

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

GraphQL

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

**Usage Example:**

GraphQL

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

### connectionRelationErrorDates   [Skip link to connectionRelationErrorDates](https://developer.finaleinventory.com/reference/graphql-product\#connectionrelationerrordates)

- **Label:** Latest error date
- **Type:** dateRangeInput
- **Enabled:** Yes

**Filter Type:** Date range

**Input Structure:**

TypeScript

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

**Usage Example:**

GraphQL

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

### connectionRelationSyncStatuses   [Skip link to connectionRelationSyncStatuses](https://developer.finaleinventory.com/reference/graphql-product\#connectionrelationsyncstatuses)

- **Label:** Sync status
- **Type:** List\|String
- **Enabled:** Yes
- **Options:**
  - Excluded from syncing (##crStatusSkipped)
  - Has error (##crStatusError)
  - Not synced (##crStatusNotPushed)
  - Partially synced (##crStatusPartiallySynced)
  - Synced (##crStatusPushed)

**Filter Type:** Predefined options

**Get Current Options:**

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

GraphQL

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

**Usage Example:**

GraphQL

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

### hasBom   [Skip link to hasBom](https://developer.finaleinventory.com/reference/graphql-product\#hasbom-1)

- **Label:** Has BOM
- **Type:** List\|String
- **Enabled:** Yes
- **Options:**
  - Does not have BOM (##productDoesNotHaveBom)
  - Has BOM (##productHasBom)

**Filter Type:** Predefined options

**Get Current Options:**

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

GraphQL

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

**Usage Example:**

GraphQL

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

### lastPurchaseDate   [Skip link to lastPurchaseDate](https://developer.finaleinventory.com/reference/graphql-product\#lastpurchasedate)

- **Label:** Last purchase date
- **Type:** dateRangeInput
- **Enabled:** Yes

**Filter Type:** Date range

**Input Structure:**

TypeScript

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

**Usage Example:**

GraphQL

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

### manufacturer   [Skip link to manufacturer](https://developer.finaleinventory.com/reference/graphql-product\#manufacturer-1)

- **Label:** Manufacturer
- **Type:** List\|String
- **Enabled:** Yes

**Filter Type:** Text value

This filter accepts freeform text values.

**Usage Example:**

GraphQL

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

### productId   [Skip link to productId](https://developer.finaleinventory.com/reference/graphql-product\#productid-1)

- **Label:** Product ID
- **Type:** List\|String
- **Enabled:** No

**Filter Type:** Text value

This filter accepts freeform text values.

**Usage Example:**

GraphQL

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

### productStoreUrlList   [Skip link to productStoreUrlList](https://developer.finaleinventory.com/reference/graphql-product\#productstoreurllist)

- **Label:** Product stores
- **Type:** List\|ProductStoreUrlString
- **Enabled:** Yes

**Filter Type:** Reference to `productStore` collection

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

GraphQL

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

**Usage Example:**

GraphQL

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

### productUrl   [Skip link to productUrl](https://developer.finaleinventory.com/reference/graphql-product\#producturl-1)

- **Label:** Product
- **Type:** List\|ProductUrlString
- **Enabled:** Yes

**Filter Type:** Reference to `product` collection

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

GraphQL

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

**Usage Example:**

GraphQL

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

### reorderQuantityToOrder   [Skip link to reorderQuantityToOrder](https://developer.finaleinventory.com/reference/graphql-product\#reorderquantitytoorder-1)

- **Label:** Reorder quantity to order
- **Type:** numberRangeInputForProductReorderQuantityToOrder
- **Enabled:** Yes

**Filter Type:** Number range

**Input Structure:**

TypeScript

```typescript
{
  minInclusive: number
  maxInclusive: number
}
```

**Usage Example:**

GraphQL

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

### reorderVariance   [Skip link to reorderVariance](https://developer.finaleinventory.com/reference/graphql-product\#reordervariance-1)

- **Label:** Reorder variance
- **Type:** numberRangeInputForProductReorderVariance
- **Enabled:** No

**Filter Type:** Number range

**Input Structure:**

TypeScript

```typescript
{
  minInclusive: number
  maxInclusive: number
}
```

**Usage Example:**

GraphQL

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

### replenishmentQuantityToOrder   [Skip link to replenishmentQuantityToOrder](https://developer.finaleinventory.com/reference/graphql-product\#replenishmentquantitytoorder-1)

- **Label:** Replenishment quantity to order
- **Type:** numberRangeInputForProductReplenishmentQuantityToOrder
- **Enabled:** Yes

**Filter Type:** Number range

**Input Structure:**

TypeScript

```typescript
{
  minInclusive: number
  maxInclusive: number
}
```

**Usage Example:**

GraphQL

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

### replenishmentVariance   [Skip link to replenishmentVariance](https://developer.finaleinventory.com/reference/graphql-product\#replenishmentvariance-1)

- **Label:** Replenishment variance
- **Type:** numberRangeInputForProductReplenishmentVariance
- **Enabled:** No

**Filter Type:** Number range

**Input Structure:**

TypeScript

```typescript
{
  minInclusive: number
  maxInclusive: number
}
```

**Usage Example:**

GraphQL

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

### search   [Skip link to search](https://developer.finaleinventory.com/reference/graphql-product\#search)

- **Label:** Not specified
- **Type:** SearchString
- **Enabled:** Yes

**Filter Type:** Search text

This filter performs a text search across multiple fields.

**Usage Example:**

GraphQL

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

### searchCustom   [Skip link to searchCustom](https://developer.finaleinventory.com/reference/graphql-product\#searchcustom)

- **Label:** Not specified
- **Type:** searchCustomFilter
- **Enabled:** Yes

**Filter Type:** Advanced search with result expansion

See the [Advanced Search guide](https://developer.finaleinventory.com/reference/graphql-search-custom) for complete documentation on how this filter works.

**Collection-Specific Examples:**

**Example 1: Basic search:**

GraphQL

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

**Example 2: Include additional fields in search:**

GraphQL

```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

```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

```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](https://developer.finaleinventory.com/reference/graphql-product\#status-1)

- **Label:** Status
- **Type:** List\|String
- **Enabled:** Yes
- **Options:**
  - Active (PRODUCT\_ACTIVE)
  - Inactive (PRODUCT\_INACTIVE)

**Filter Type:** Predefined options

**Get Current Options:**

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

GraphQL

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

**Usage Example:**

GraphQL

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

### stock   [Skip link to stock](https://developer.finaleinventory.com/reference/graphql-product\#stock-1)

- **Label:** Stock
- **Type:** numberRangeInputForProductStock
- **Enabled:** No

**Filter Type:** Number range

**Input Structure:**

TypeScript

```typescript
{
  minInclusive: number
  maxInclusive: number
}
```

**Usage Example:**

GraphQL

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

### supplier   [Skip link to supplier](https://developer.finaleinventory.com/reference/graphql-product\#supplier-1)

- **Label:** Supplier
- **Type:** List\|PartyUrlSupplierString
- **Enabled:** Yes

**Filter Type:** Reference to `party` collection

> **Note:** Filters to suppliers only

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

GraphQL

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

**Usage Example:**

GraphQL

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

### unitSales   [Skip link to unitSales](https://developer.finaleinventory.com/reference/graphql-product\#unitsales-1)

- **Label:** Unit sales
- **Type:** numberRangeInputForProductUnitSales
- **Enabled:** No

**Filter Type:** Number range

**Input Structure:**

TypeScript

```typescript
{
  minInclusive: number
  maxInclusive: number
}
```

**Usage Example:**

GraphQL

```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
