Table of Contents

Crm.Sales.CustomerProducts

Customer Products represent the products that are contractually agreed and listed for a specific customer.

This data type defines the set of products associated with a customer, including products that are contractually negotiated, approved for sale, or explicitly listed as available to that customer.

Customer Products are used to support customer-specific assortments, sales restrictions, pricing agreements, and order validation, ensuring that only applicable products are offered and sold to the customer.

General

Namespace: Crm.Sales
Repository: Crm.Sales.CustomerProducts
Base Table: Crm_Customer_Products
Introduced In Version: 22.1.6.42
API access: ReadWrite

Renames

Old name: Crm.CustomerProducts
New name: Crm.Sales.CustomerProducts
Version: 25.1.2.28
Case: 38176

Visualization

Display Format: {Customer.Party.PartyName:T}
Search Members: Customer.Party.PartyName
Name Member: Customer.Party.PartyName
Category: Definitions
Show in UI: ShownByDefault

Track Changes

Min level: 0 - Do not track changes
Max level: 4 - Track object attribute and blob changes

Aggregate

An aggregate is a cluster of domain objects that can be treated as a single unit.

Aggregate Parent:
Crm.Sales.Customers
Aggregate Root:
Crm.Sales.Customers

Attributes

Name Type Description
FromDate date nullable The initial date of the listing. NULL when the initial date is unknownFilter(eq;ge;le)
InStoreLocation string (32) nullable Location in store, like row, stand, etc.
InStoreMaxQuantity Quantity (10, 3) nullable Maximum quantity maintained by the customer. Measurement unit is Product.MeasurementUnitUnit: InStoreQuantityUnit Filter(eq;ge;le)
InStoreMinQuantity Quantity (10, 3) nullable Minimum quantity maintained by the customer. Measurement unit is Product.MeasurementUnitUnit: InStoreQuantityUnit Filter(eq;ge;le)
IsActive boolean Indicates whether this customer product definition is activeRequired Default(true) Filter(eq)
Notes string (254) nullable Notes for the listing
OrderMultiple Quantity (10, 3) nullable Determines the step when the system offers a quantity to orderUnit: InStoreQuantityUnit Filter(eq;ge;le)
ToDate date nullable The final date of the listing. NULL when the final date is unknownFilter(eq;ge;le)

References

Name Type Description
CompanyDivision CompanyDivisions (nullable) When the customer is a company, denotes the division for which the product is listed. NULL when the customer is not a company or when the listing is not division specific
CompanyLocation CompanyLocations (nullable) When the customer is a company, denotes the location for which the product is listed. NULL when the customer is not a company or when the listing is not location specific
Customer Customers Customer, for which the product is listed
InStoreQuantityUnit MeasurementUnits (nullable) Location in store, like row, stand, etc.
Product Products The product, which is listed for the customer

System Attributes

Name Type Description
Id guid
ObjectVersion int32 The latest version of the extensible data object for the aggregate root for the time the object is loaded from the database. Can be used for optimistic locking.
DisplayText string Uses the repository DisplayTextFormat to build the display text from the attributes and references of current object.

Attribute Details

FromDate

The initial date of the listing. NULL when the initial date is unknownFilter(eq;ge;le)

Type: date nullable
Category: System
Supported Filters: Equals, GreaterThanOrLessThan
Supports Order By: False
Show in UI: ShownByDefault

InStoreLocation

Location in store, like row, stand, etc.

Type: string (32) nullable
Category: System
Supported Filters: NotFilterable
Supports Order By: False
Maximum Length: 32
Show in UI: ShownByDefault

InStoreMaxQuantity

Maximum quantity maintained by the customer. Measurement unit is Product.MeasurementUnitUnit: InStoreQuantityUnit Filter(eq;ge;le)

Type: Quantity (10, 3) nullable
Category: System
Supported Filters: Equals, GreaterThanOrLessThan
Supports Order By: False
Show in UI: ShownByDefault

InStoreMinQuantity

Minimum quantity maintained by the customer. Measurement unit is Product.MeasurementUnitUnit: InStoreQuantityUnit Filter(eq;ge;le)

Type: Quantity (10, 3) nullable
Category: System
Supported Filters: Equals, GreaterThanOrLessThan
Supports Order By: False
Show in UI: ShownByDefault

IsActive

Indicates whether this customer product definition is activeRequired Default(true) Filter(eq)

Type: boolean
Category: System
Supported Filters: Equals
Supports Order By: False
Default Value: True
Show in UI: ShownByDefault

Notes

Notes for the listing

Type: string (254) nullable
Category: System
Supported Filters: NotFilterable
Supports Order By: False
Maximum Length: 254
Show in UI: ShownByDefault

OrderMultiple

Determines the step when the system offers a quantity to orderUnit: InStoreQuantityUnit Filter(eq;ge;le)

Type: Quantity (10, 3) nullable
Category: System
Supported Filters: Equals, GreaterThanOrLessThan
Supports Order By: False
Show in UI: ShownByDefault

ToDate

The final date of the listing. NULL when the final date is unknownFilter(eq;ge;le)

Type: date nullable
Category: System
Supported Filters: Equals, GreaterThanOrLessThan
Supports Order By: False
Show in UI: ShownByDefault

Id

Type: guid
Indexed: True
Category: System
Supported Filters: Equals, GreaterThanOrLessThan, EqualsIn
Default Value: NewGuid
Show in UI: CannotBeShown

ObjectVersion

The latest version of the extensible data object for the aggregate root for the time the object is loaded from the database. Can be used for optimistic locking.

Type: int32
Category: Extensible Data Object
Supported Filters: NotFilterable
Supports Order By: ****
Show in UI: HiddenByDefault

DisplayText

Uses the repository DisplayTextFormat to build the display text from the attributes and references of current object.

Type: string
Category: Calculated Attributes
Supported Filters: NotFilterable
Supports Order By: ****
Show in UI: HiddenByDefault

Reference Details

CompanyDivision

When the customer is a company, denotes the division for which the product is listed. NULL when the customer is not a company or when the listing is not division specific

Type: CompanyDivisions (nullable)
Category: System
Supported Filters: Equals, EqualsIn
Show in UI: ShownByDefault

CompanyLocation

When the customer is a company, denotes the location for which the product is listed. NULL when the customer is not a company or when the listing is not location specific

Type: CompanyLocations (nullable)
Category: System
Supported Filters: Equals, EqualsIn
Show in UI: ShownByDefault

Customer

Customer, for which the product is listed

Type: Customers
Indexed: True
Category: System
Supported Filters: Equals, EqualsIn
Filterable Reference: True
Show in UI: ShownByDefault

InStoreQuantityUnit

Location in store, like row, stand, etc.

Type: MeasurementUnits (nullable)
Category: System
Supported Filters: Equals, EqualsIn
Show in UI: ShownByDefault

Front-End Recalc Expressions:
obj.Product.MeasurementUnit

Product

The product, which is listed for the customer

Type: Products
Indexed: True
Category: System
Supported Filters: Equals, EqualsIn
Filterable Reference: True
Show in UI: ShownByDefault

API Methods

Methods that can be invoked in public APIs.

GetAllowedCustomPropertyValues

Gets the allowed values for the specified custom property for this entity object. If supported the result is ordered by property value. Some property value sources do not support ordering - in that case the result is not ordered.
Return Type: Collection Of CustomPropertyValue
Declaring Type: EntityObject
Domain API Request: GET

Parameters

  • customPropertyCode
    The code of the custom property
    Type: string

  • search
    The search text - searches by value or description. Can contain wildcard character %.
    Type: string
    Optional: True
    Default Value: null

  • exactMatch
    If true the search text should be equal to the property value
    Type: boolean
    Optional: True
    Default Value: False

  • orderByDescription
    If true the result is ordered by Description instead of Value. Note that ordering is not always possible.
    Type: boolean
    Optional: True
    Default Value: False

  • top
    The top clause - default is 10
    Type: int32
    Optional: True
    Default Value: 10

  • skip
    The skip clause - default is 0
    Type: int32
    Optional: True
    Default Value: 0

CreateNotification

Create a notification immediately in a separate transaction, and send a real-time event to the user.
Return Type: void
Declaring Type: EntityObject
Domain API Request: POST

Parameters

  • user
    The user.
    Type: Users

  • notificationClass
    The notification class.
    Type: string

  • subject
    The notification subject.
    Type: string

  • priority
    The notification priority.
    Type: Systems.Core.NotificationsRepository.Priority
    Allowed values for the Priority(Systems.Core.Notifications.md#priority) data attribute
    Allowed Values (Systems.Core.NotificationsRepository.Priority Enum Members)

    Value Description
    Background Background value. Stored as 1.
    Model Value: 1
    Domain API Value: 'Background'
    Low Low value. Stored as 2.
    Model Value: 2
    Domain API Value: 'Low'
    Normal Normal value. Stored as 3.
    Model Value: 3
    Domain API Value: 'Normal'
    High High value. Stored as 4.
    Model Value: 4
    Domain API Value: 'High'
    Urgent Urgent value. Stored as 5.
    Model Value: 5
    Domain API Value: 'Urgent'

    Optional: True
    Default Value: Normal

CreateCopy

Duplicates the object and its child objects belonging to the same aggregate. The duplicated objects are not saved to the data source but remain in the same transaction as the original object.
Return Type: EntityObject
Declaring Type: EntityObject
Domain API Request: POST

Business Rules

None

Front-End Business Rules

None

API

Domain API Entity Set: Crm_Sales_CustomerProducts

Domain API Entity Type: Crm_Sales_CustomerProduct

Domain API Query: https://testdb.my.erp.net/api/domain/odata/Crm_Sales_CustomerProducts?$top=10

Domain API Query Builder: https://testdb.my.erp.net/api/domain/querybuilder#Crm_Sales_CustomerProducts?$top=10