---
id: object/table/7002
type: object
title: Table 7002 "Sales Price"
summary: Table 7002 "Sales Price" in Base Application (Microsoft.Sales.Pricing). 16 fields, 1 public procedures, 3 events. Present since at least BC23, still in BC30, changed in BC24, BC26, BC28.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "28"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: d327133f988b437c0f311280f414d13cf4667199da8b791f8ae05038f2828ece
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Sales/Pricing/SalesPrice.Table.al
    title: src/Layers/W1/BaseApp/Sales/Pricing/SalesPrice.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations:
    - localization/au
    - localization/nz
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 7002
name: Sales Price
namespace: Microsoft.Sales.Pricing
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "26"
  - "28"
source_major: "29"
obsolete: null
countries:
  - au
  - nz
ms_search_form_ids: []
counts:
  fields: 16
  procedures: 5
  events: 3
  subscribers: 0
relations:
  out: 9
  referenced_by: 0
  pages: 2
  extended_by: 0
  event_subscribers: 0
  calls: 0
  called_by: 0
  implements: 0
---

# Table 7002 "Sales Price"

> Table 7002 "Sales Price" in Base Application (Microsoft.Sales.Pricing). 16 fields, 1 public procedures, 3 events. Present since at least BC23, still in BC30, changed in BC24, BC26, BC28.

Base Application · Microsoft.Sales.Pricing · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Sales/Pricing/SalesPrice.Table.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Caption | Sales Price |
| DataClassification | CustomerContent |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | Item No. | Code[20] | Specifies the number of the item for which the sales price is valid. | TableRelation [Table 27 "Item"](../table/27.md); NotBlank |
| 2 | Sales Code | Code[20] | Specifies the code that belongs to the Sales Type. | TableRelation [Table 18 "Customer"](../table/18.md), [Table 5071 "Campaign"](../table/5071.md), [Table 6 "Customer Price Group"](../table/6.md) (if ("Sales Type" = const("Customer Price Group")) "Customer Price Group" else if ("Sales Type" = const(Customer)) Customer else if ("Sales Type" = const(Campaign)) Campaign) |
| 3 | Currency Code | Code[10] | Specifies the code for the currency of the sales price. | TableRelation [Table 4 "Currency"](../table/4.md) |
| 4 | Starting Date | Date | Specifies the date from which the sales price is valid. |  |
| 5 | Unit Price | Decimal | Specifies the price of one unit of the item or resource. You can enter a price manually or have it entered according to the Price/Profit Calculation field on the related card. |  |
| 7 | Price Includes VAT | Boolean | Specifies if the sales price includes VAT. |  |
| 10 | Allow Invoice Disc. | Boolean | Specifies if an invoice discount will be calculated when the sales price is offered. |  |
| 11 | VAT Bus. Posting Gr. (Price) | Code[20] | Specifies the VAT business posting group for customers for whom you want the sales price (which includes VAT) to apply. <small>via [Page 7002 "Sales Prices"](../page/7002.md)</small> | TableRelation [Table 323 "VAT Business Posting Group"](../table/323.md) (VAT Business Posting Group) |
| 13 | Sales Type | Enum "Sales Price Type" | Specifies the sales price type, which defines whether the price is for an individual, group, all customers, or a campaign. | enum [Enum 7023 "Sales Price Type"](../enum/7023.md) |
| 14 | Minimum Quantity | Decimal | Specifies the minimum sales quantity required to warrant the sales price. |  |
| 15 | Ending Date | Date | Specifies the calendar date when the sales price agreement ends. |  |
| 720 | Coupled to CRM | Boolean | Coupled to Dynamics 365 Sales <small>caption</small> | obsolete Removed 26.0; #if not CLEANSCHEMA26; not editable |
| 721 | Coupled to Dataverse | Boolean | Coupled to Dynamics 365 Sales <small>caption</small> | FlowField: exist("CRM Integration Record" where("Integration ID" = field(SystemId), "Table ID" = const(7002))); not editable |
| 5400 | Unit of Measure Code | Code[10] | Specifies how each unit of the item or resource is measured, such as in pieces or hours. By default, the value in the Base Unit of Measure field on the item or resource card is inserted. | TableRelation [Table 5404 "Item Unit of Measure"](../table/5404.md) ("Item Unit of Measure".Code where("Item No." = field("Item No."))) |
| 5700 | Variant Code | Code[10] | Specifies the variant of the item on the line. | TableRelation [Table 5401 "Item Variant"](../table/5401.md) ("Item Variant".Code where("Item No." = field("Item No."))) |
| 7001 | Allow Line Disc. | Boolean | Specifies if a line discount will be calculated when the sales price is offered. |  |

## Keys

- Key1: Item No., Sales Type, Sales Code, Starting Date, Currency Code, Variant Code, Unit of Measure Code, Minimum Quantity (clustered)
- Key2: Sales Type, Sales Code, Item No., Starting Date, Currency Code, Variant Code, Unit of Measure Code, Minimum Quantity
- Key3: SystemModifiedAt

## Events published

- `OnBeforeItemNoOnValidate(var SalesPrice: Record "Sales Price"; var xSalesPrice: Record "Sales Price"; var IsHandled: Boolean)` (integration)
- `OnBeforeNewSalesPriceInsert(var NewSalesPrice: Record "Sales Price"; SalesPrice: Record "Sales Price")` (integration)
- `OnValidateSalesCodeOnAfterGetCustomerPriceGroup(var Salesprice: Record "Sales Price"; CustPriceGroup: Record "Customer Price Group")` (integration)

## Procedures

- `CopySalesPriceToCustomersSalesPrice(var SalesPrice: Record "Sales Price"; CustNo: Code[20])`: Copies sales prices to a specific customer by creating customer-specific price records.

Plus 1 local procedures.

## Triggers

OnInsert, OnRename

## Relations

- Sales Code: TableRelation [Table 18 "Customer"](../table/18.md) (conditional)
- Item No.: TableRelation [Table 27 "Item"](../table/27.md)
- VAT Bus. Posting Gr. (Price): TableRelation [Table 323 "VAT Business Posting Group"](../table/323.md)
- Currency Code: TableRelation [Table 4 "Currency"](../table/4.md)
- Sales Code: TableRelation [Table 5071 "Campaign"](../table/5071.md) (conditional)
- Coupled to Dataverse: CalcFormula [Table 5331 "CRM Integration Record"](../table/5331.md)
- Variant Code: TableRelation [Table 5401 "Item Variant"](../table/5401.md)
- Unit of Measure Code: TableRelation [Table 5404 "Item Unit of Measure"](../table/5404.md)
- Sales Code: TableRelation [Table 6 "Customer Price Group"](../table/6.md) (conditional)

## Pages and codeunits on this table

- [Page 7002 "Sales Prices"](../page/7002.md) (source table)
- [Page 7007 "Get Sales Price"](../page/7007.md) (source table)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24, BC26, BC28

## Countries that replace it

[AU](../../localizations/au.md), [NZ](../../localizations/nz.md)

## Deprecations

- field Coupled to CRM: Removed 26.0 (#if not CLEANSCHEMA26), "Replaced by flow field Coupled to Dataverse"

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "table", object_name: "Sales Price")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
