Skip to main content

PriceSpecification

The PriceSpecification entity is the HiiRetail representation of a currency-specific value related to a Product. It might be a Purchase PriceSpecification in which it states what the Product is purchased for from a Supplier. It might be a Sales PriceSpecification that indicates what the Product is sold for in a sales process.

A product MUST have a PriceSpecification. There must always be a Default PriceSpecification on a Product to make sure any downstream usage always has a valid Gross Profit calculation available. Usually a Default PriceSpecification is not enough, and a minimum of one Sales PriceSpecification must exist too.

type PriceSpecification {
entityMetadata: EntityMetadataV1 @deprecated
status: PriceStatus!
itemId: String
priceType: PriceTypeV1! @deprecated
type: PriceType!
value: Float!
minPrice: Float
maxPrice: Float
taxRuleId: String @deprecated
taxableGroupId: String
validFrom: DateTime!
validTo: DateTime
currencyId: String
promotionId: String
discountIds: [String]
isMandatory: Boolean
isCurrent: Boolean
excludingTax: Boolean
additionalProperties: [AdditionalProperty]
globalUniqueId: String
id: String
correlationId: String
tenantId: String
name: String
description: String
businessUnitId: String @deprecated
businessUnitIds: [String]
businessUnitGroupId: String
version: Int!
revision: Long!
created: DateTime!
createdBy: String
modified: DateTime!
modifiedBy: String
}

Fields

PriceSpecification.entityMetadata ● EntityMetadataV1 deprecated object

[DEPRECATED]

EntityMetadata will be removed on 01 Jan 2023. Use the entity metadata properties on the entity level instead.

PriceSpecification.status ● PriceStatus! non-null enum

The price specification status.

PriceSpecification.itemId ● String scalar

The reference ID to an Item to which this price belongs.

PriceSpecification.priceType ● PriceTypeV1! deprecated non-null enum

[DEPRECATED]

PriceType will be removed on 01 Jan 2023. Use Type instead.

PriceSpecification.type ● PriceType! non-null enum

The price type. There are several other PriceSpecification Types for different purposes. Depending on the PriceType the PriceSpecification can and should be used for different things. A Promotion PriceSpecification should always reference a Promotion and a Member PriceSpecification has no meaning unless some relation to a member exists.

PriceSpecification.value ● Float! non-null scalar

The floating point price including taxes.

PriceSpecification.minPrice ● Float scalar

The lowest price if the price is a range.

PriceSpecification.maxPrice ● Float scalar

The highest price if the price is a range.

PriceSpecification.taxRuleId ● String deprecated scalar

[DEPRECATED]

TaxRuleId will be removed on 01 Sep 2026. Use TaxableGroupId instead.

The tax rule Id used for this price specification.

PriceSpecification.taxableGroupId ● String scalar

The ID of the taxable group used for this price specification. A taxable group is the logical name for the tax, independent of the tax rate assigned. The tax rate for a single taxable group can differ depending on region.

PriceSpecification.validFrom ● DateTime! non-null scalar

The time and date the price is valid from.

PriceSpecification.validTo ● DateTime scalar

Optional time and date for when the price ends. If null the price will be valid forever until replaced.

PriceSpecification.currencyId ● String scalar

Currency this price is specified in.

PriceSpecification.promotionId ● String scalar

If the price is a promotion price this will hold the promotion Id.

PriceSpecification.discountIds ● [String] list scalar

A list of discounts that should be applied to the price to get the net price.

PriceSpecification.isMandatory ● Boolean scalar

The flag makes the price inheritance work from top down instead of bottom up. Meaning that a price marked as mandatory will override prices on lower business unit groups and business unit specific prices. This includes prices marked as mandatory on lower levels.

PriceSpecification.isCurrent ● Boolean scalar

The flag indicating if the price is the current one.

PriceSpecification.excludingTax ● Boolean scalar

Determines if the Price Specification should treat the Value as excluding VAT/Taxes. Default is false. Or in other words, the price is defined as including VAT and/or Taxes. If set to true the Value would be considered without VAT/Taxes, and this will have an impact on how the Price is visualized and used in different systems.

PriceSpecification.additionalProperties ● [AdditionalProperty] list object

List of customer specific values on the entity level.

PriceSpecification.globalUniqueId ● String scalar

Internal unique ID for CRUD operations and relations. A typical example is: TenantId_itemId_BusinessUnitGroupId

PriceSpecification.id ● String scalar

Id for the entity. Either external or internal

PriceSpecification.correlationId ● String scalar

ID for tracing an entity and/or a group of sub entities through the application. Might be external, and if missing from the producer of data the API will add an ID. Must be used in all logging and tracing.

PriceSpecification.tenantId ● String scalar

To support multi tenancy we need to be able to identify the customer that owns this information.

PriceSpecification.name ● String scalar

The name of the entity. This general property can replace the previous ArticleName, StoreName, CampaignName, etc.

PriceSpecification.description ● String scalar

The description of the entity.

PriceSpecification.businessUnitId ● String deprecated scalar

[DEPRECATED]

BusinessUnitId is obsolete. Use BusinessUnitIds property instead.

Used to assign the entity to tenant's specific business unit.

PriceSpecification.businessUnitIds ● [String] list scalar

The business units associated with the entity.

PriceSpecification.businessUnitGroupId ● String scalar

Used to assign the entity to a specific level in a business unit group hierarchy specific to the tenant.

PriceSpecification.version ● Int! non-null scalar

Version of the entity. Must be updated when there is a change to the entity. An ever increasing Integer.

Use revision instead of version if you need a more precise versioning mechanism.

PriceSpecification.revision ● Long! non-null scalar

Contains evergrowing number used to validate the version of an entity.

PriceSpecification.created ● DateTime! non-null scalar

When the object was first created. This timestamp will be set by the input API POST-endpoints before creating the AVRO data for processing.

PriceSpecification.createdBy ● String scalar

Who created. Will be an ID and must be looked up in the user DB. This ID will be set by the input API POST-endpoints before creating the AVRO data for processing.

PriceSpecification.modified ● DateTime! non-null scalar

When the object was modified. Will be updated along with the Version property. This timestamp will be set by the input API PUT and PATCH-endpoints before creating the AVRO data for processing.

PriceSpecification.modifiedBy ● String scalar

Who created or modified the object. Will be an ID and must be looked up in the user DB. This ID will be set by the input API PUT and PATCH-endpoints before creating the AVRO data for processing.

Member Of

Item object ● ItemWithIdentifiers object ● PriceSpecificationsConnection object ● PriceSpecificationsEdge object