---
schema_version: "1"
id: 4c863680a52e29624b1cfeba37faddb522a05052f9d6c8b4861354f2609342ed
title: SalesAgreementProduct
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/mfg_api_devguide/sforce_api_objects_salesagreementproduct.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.mfg_api_devguide.meta/mfg_api_devguide/sforce_api_objects_salesagreementproduct.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: 9717fd2d1bc6eee44ea1de69824381e324edfdd3f5fd807bcc29e01d4a7231f7
description: Represents the total quantity or amount and the default pricing information of a product or category across the total time period of the sales agreement.This object is available in API version 47.0 and later.
---
# SalesAgreementProduct

Represents the total quantity or amount and the default pricing information of a product or category across the total time period of the sales agreement.This object is available in API version 47.0 and later.

## Supported Calls

create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), query(), retrieve(), search(), undelete(), update(), upsert()

## Fields

### ActualMarginPercentage

- **Type**: percent
- **Properties**: Filter, Nillable, Sort
- **Description**: The total actual margin amount as a percentage of total actual amount.

### AreSchedulesCreatedManually

- **Type**: boolean
- **Properties**: Create, Defaulted on create, Filter, Group, Sort, Update
- **Description**: Indicates whether schedules are created automatically or manually.

### CostPrice

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: The cost of manufacturing one unit of a product.
    
    This field is a calculated field.

### DiscountPercentage

- **Type**: percent
- **Properties**: Filter, Nillable, Sort
- **Description**: Percent of discount offered on the sales price.

### DisplayName

- **Type**: string
- **Properties**: Create, Filter, Group, Nillable, Sort, Update
- **Description**: The display name of a sales agreement product that's displayed in the sales agreements table, and sales agreement product related lists and record pages. If a display name isn't specified, the name of the sales agreement product is displayed. Use this field to distinguish between sales agreement products with the same products but with different attributes.

### GuidancePrice

- **Type**: currency
- **Properties**: Create, Filter, Nillable, Sort, Update
- **Description**: The guidance price that's calculated using the core pricing rules. This price is used to determine the sales price.

### InitialPlannedAmount

- **Type**: currency
- **Properties**: Create, Filter, Nillable, Sort, Update
- **Description**: The total amount of the product or category that you initially plan on selling across the sales agreement term.

### InitialPlannedQtyValue

- **Type**: double
- **Properties**: Create, Filter, Nillable, Sort, Update
- **Description**: The initial quantity of a product planned for sale across schedules in a sales agreement. This field stores initial product quantity in decimals.

### InitialPlannedQuantity

- **Type**: int
- **Properties**: Filter, Group, Sort
- **Description**: The total quantity of the product or category that you initially plan on selling across the sales agreement term.

### IsActualsCalculationProduct

- **Type**: boolean
- **Properties**: Create, Defaulted on create, Filter, Group, Sort, Update
- **Description**: Indicates whether this product is used for actuals calculations instead of other products with the same product name.
- **Default value**: false

### IsAddedAfterActivation

- **Type**: boolean
- **Properties**: Defaulted on create, Filter, Group, Sort
- **Description**: Indicates whether the sales agreement product or category is added after the sales agreement was activated.
- **Default value**: false

### IsQuantityInDecimals

- **Type**: boolean
- **Properties**: Create, Defaulted on create, Filter, Group, Sort, Update
- **Description**: Indicates whether the quantities of the sales agreement product are decimal values (true) or integer values (false).
- **Default value**: false

### IsUnderRevision

- **Type**: boolean
- **Properties**: Defaulted on create, Filter, Group, Sort
- **Description**: Indicator of whether the sales agreement product or category is under revision or not. In an under revision state, edits can be made and if approved, the edits are automatically incorporated and the sales agreement is reactivated.

### LastPricingExecIdentifier

- **Type**: string
- **Properties**: Filter, Group, idLookup, Sort
- **Description**: The unique identifier for the last price waterfall information.

### LastReferencedDate

- **Type**: dateTime
- **Properties**: Filter, Nillable, Sort
- **Description**: The most recent date on which this record was referenced.

### LastViewedDate

- **Type**: dateTime
- **Properties**: Filter, Nillable, Sort
- **Description**: The most recent date on which this record was viewed.

### ListPrice

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: Price of a product as specified in a price book.

### Name

- **Type**: string
- **Properties**: Filter, Group, idLookup, Sort
- **Description**: Name of the product or category.

### PlannedMarginPercentage

- **Type**: percent
- **Properties**: Filter, Nillable, Sort
- **Description**: The total planned margin amount as a percentage of total planned amount.

### PricebookEntryId

- **Type**: reference
- **Properties**: Filter, Group, Sort
- **Description**: ID of the referenced price book.

### ProductCategoryId

- **Type**: reference
- **Properties**: Create, Filter, Group, Nillable, Sort
- **Description**: The product category associated with the sales agreement.
    
    This is a relationship field.
- **Relationship Name**: ProductCategory
- **Relationship Type**: Lookup
- **Refers To**: ProductCategory

### ProductId

- **Type**: reference
- **Properties**: Filter, Group, Nillable, Sort
- **Description**: ID of the product.

### SalesAgreementId

- **Type**: reference
- **Properties**: Filter, Group, Sort
- **Description**: ID of the sales agreement to which the product is added.

### SalesPrice

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: Price per unit of the unit at which you initially decide to sell the product.

### TotalActualAmount

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: Field displaying the sum of actual amounts across all schedules at a given time.

### TotalActualCostAmount

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: The sum of the actual cost amounts across all schedules in a sales agreement.
    
    This field is a calculated field.

### TotalActualMarginAmount

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: The sum of the actual margin amounts across all schedules in a sales agreement.
    
    This field is a calculated field.

### TotalActualQuantity

- **Type**: int
- **Properties**: Filter, Group, Nillable, Sort
- **Description**: Field displaying the sum of actual quantities across all schedules at a given time.

### TotalActualQuantityValue

- **Type**: double
- **Properties**: Filter, Nillable, Sort
- **Description**: The sum of actual quantities of a product across all schedules in a sales agreement. This field stores the sum of actual quantities in decimals.
    
    This field is a calculated field.

### TotalActualShipmentQuantity

- **Type**: double
- **Properties**: Filter, Nillable, Sort
- **Description**: The sum of the actual shipment quantities of a product across all schedules in a sales agreement.
    
    This field is a calculated field.

### TotalClonedActualQuantity

- **Type**: double
- **Properties**: Filter, Nillable, Sort
- **Description**: The rolled up cumulative actual quantity based on the cloned actual quantities for each sales agreement product schedule.
    
    This field is a calculated field.

### TotalForecastedAmount

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: Field displaying the sum of forecasted amounts across all schedules at a given time.

### TotalForecastedQuantity

- **Type**: int
- **Properties**: Filter, Group, Nillable, Sort
- **Description**: Field displaying the sum of forecasted quantities across all schedules at a given time.

### TotalForecastedQtyValue

- **Type**: double
- **Properties**: Filter, Nillable, Sort
- **Description**: The sum of forecasted quantities of a product across all schedules in a sales agreement. This field stores the sum of forecasted quantities in decimals.
    
    This field is a calculated field.

### TotalPlannedAmount

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: Field displaying the sum of planned amounts across all schedules at a given time.

### TotalPlannedCostAmount

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: The sum of the planned cost amounts across all schedules in a sales agreement.
    
    This field is a calculated field.

### TotalPlannedMarginAmount

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: The sum of the planned margin amounts across all schedules in a sales agreement.
    
    This field is a calculated field.

### TotalPlannedQuantity

- **Type**: int
- **Properties**: Filter, Group, Nillable, Sort
- **Description**: Field displaying the sum of planned quantities across all schedules at a given time.

### TotalPlannedQuantityValue

- **Type**: double
- **Properties**: Filter, Nillable, Sort
- **Description**: The sum of planned quantities of a product across all schedules in a sales agreement. This field stores the sum of planned quantities in decimals.
    
    This field is a calculated field.

### TotalPlannedShipmentQuantity

- **Type**: double
- **Properties**: Filter, Nillable, Sort
- **Description**: The sum of the planned shipment quantities of a product across all schedules in a sales agreement.
    
    This field is a calculated field.

### TotalProposedPlannedAmount

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: Field displaying the sum of planned amounts across all schedules at a given time when the sales agreement is under revision.

### TotalProposedPlannedQuantity

- **Type**: int
- **Properties**: Filter, Group, Nillable, Sort
- **Description**: Field displaying the sum of planned quantities across all schedules at a given time when the sales agreement is under revision.

### TotalProposedPlnQtyValue

- **Type**: double
- **Properties**: Filter, Nillable, Sort
- **Description**: The sum of proposed quantities of a product across all schedules in a sales agreement. This field stores the sum of proposed quantities in decimals.
    
    This field is a calculated field.

### TotalUnallocatedOrderQuantity

- **Type**: double
- **Properties**: Filter, Nillable, Sort
- **Description**: The sum of the unallocated order quantities of a product across all schedules in a sales agreement.
    
    This field is a calculated field.

### TotalUnallocatedOrderRevenue

- **Type**: currency
- **Properties**: Filter, Nillable, Sort
- **Description**: The sum of the unallocated order revenue of a product across all schedules in a sales agreement.
    
    This field is a calculated field.

### TotalUnallocatedPlannedQty

- **Type**: double
- **Properties**: Filter, Nillable, Sort
- **Description**: The difference between the initial planned quantity value and total planned quantity value of a product that's distributed manually.

## Associated Objects

This object has the following associated objects. Unless noted, it is available in the same API version as this object.

**[SalesAgreementProductChangeEvent](https://developer.salesforce.com/docs/atlas.en-us.mfg_api_devguide.meta/mfg_api_devguide/sforce_api_associated_objects_change_event.htm "A ChangeEvent object is available for each object that supports Change Data Capture. You can subscribe to a stream of change events using Change Data Capture to receive data tied to record changes in Salesforce. Changes include record creation, updates to an existing record, deletion of a record, and undeletion of a record. A change event isn’t a Salesforce object—it doesn’t support CRUD operations or queries. It’s included in the object reference so you can discover which Salesforce objects support change events.") (API Version 62.0):** Change events are available for the object.

**[SalesAgreementProductHistory](https://developer.salesforce.com/docs/atlas.en-us.mfg_api_devguide.meta/mfg_api_devguide/sforce_api_associated_objects_history.htm "StandardObjectNameHistory is the model for all history objects associated with standard objects. These objects represent the history of changes to the values in the fields of a standard object.")**

History is available for tracked fields of the object. This object is available in API version 49.0 and later.