Price models

Retrieving all price models

get

Retrieves all price models assigned to the tenant. You can filter the results with query parameters.

A price model can be defined as a repeatable way to sell products in a market with the intention of making a profit. Price models define basic structures for prices.

Required scopes

  • price.pricemodel_read

Authorizations
Path parameters
tenantstring · min: 3 · max: 16Required

Your Emporix tenant's name.

Note: The tenant should always be written in lowercase.

Pattern: ^[a-z][a-z0-9]+$
Query parameters
pageNumberinteger · min: 1Optional

Page number to be retrieved. The number of the first page is 1.

Note: If the pageNumber parameter is passed, size of the pages must be specified in the pageSize parameter.

Default: 1
pageSizeinteger · min: 1Optional

Number of items to be retrieved per page.

Default: 60
sortstringOptional

List of properties used to sort the results, separated by colons. The order of properties indicates their priority in sorting.

Possible values:

  • {fieldName}
  • {fieldName}:asc
  • {fieldName}:desc

Note: If you want to sort the results by localized properties, the possible values are:

  • {fieldName}.{language}
  • {fieldName}.{language}:asc
  • {fieldName}.{language}:desc

If the sorting direction is not specified, the fields are sorted in ascending order.

Example: name,code:desc
includesTaxbooleanOptional

Flag indicating whether prices assigned to the price model are expressed as net or gross.

Value Description
true Prices are expressed as gross values.
false Prices are expressed as net values.
includesMarkupbooleanOptional

Flag indicating whether prices assigned to the price model include markup.

Note: This is a preview field.

tierTypestringOptional

Pricing strategy applicable to the price model. Possible values:

  • BASIC
  • VOLUME
  • TIERED
namestringOptional

Price model's name.

descriptionstringOptional

Price model's description.

unitcodestringOptional

Filter price models by unit code

Header parameters
Accept-LanguagestringOptional

List of language codes acceptable for the response. You can specify factors that indicate which language should be retrieved if the one with a higher factor was not found in the localized fields.

  • If the header is set to a particular language or a list of languages, all localized fields are retrieved as strings.
  • If the header is set to *, all localized fields are retrieved as maps of translations, where the keys are language codes and values are the fields in their respective languages.
  • If the header is empty, localized fields are retrieved in the default language defined in the Configuration Service.
X-Total-CountbooleanOptional

Flag indicating whether the total count of retrieved items should be returned.

Default: false
Responses
200
The request was successful. A list of price models is returned.
get
GET /price/{tenant}/priceModels HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "id": "6245a8f578a8576e338fa9c2",
    "name": "Tiered price model",
    "includesTax": true,
    "includesMarkup": true,
    "default": true,
    "measurementUnit": {
      "quantity": 50,
      "unitCode": "g"
    },
    "tierDefinition": {
      "tierType": "TIERED",
      "tiers": [
        {
          "minQuantity": {
            "quantity": 0,
            "unitCode": "g"
          }
        },
        {
          "minQuantity": {
            "quantity": 100,
            "unitCode": "g"
          }
        },
        {
          "minQuantity": {
            "quantity": 500,
            "unitCode": "g"
          }
        }
      ]
    },
    "metadata": {
      "version": 1,
      "createdAt": "2022-03-31T13:13:25.816Z",
      "modifiedAt": "2022-03-31T13:13:25.816Z"
    }
  }
]

Creating a new price model

post

Creates a new price model.

A price model can be defined as a repeatable way to sell products in a market with the intention of making a profit. Price models define basic structures for prices, including whether the prices are expressed as gross or net or the measurement units for which prices are defined.

Each price model can specify one of three pricing strategies:

  • Basic pricing, where the price per unit is constant, regardless of the ordered quantity.

  • Volume pricing, where the price per unit depends on the ordered quantity.

  • Tiered pricing, where the price per unit depends on the tiers that the ordered quantity falls into.

Required scopes

  • price.pricemodel_manage

Authorizations
Path parameters
tenantstring · min: 3 · max: 16Required

Your Emporix tenant's name.

Note: The tenant should always be written in lowercase.

Pattern: ^[a-z][a-z0-9]+$
Header parameters
Content-LanguagestringOptional

List of languages in which localized fields in the request body are provided.

  • If the Content-Language header is set to *, the localized fields should be provided as maps of translations, where the keys are language codes and values are the fields in their respective languages.
  • If the Content-Language header is set to a specific language, the localized fields should be provided as strings.
  • If the Content-Language header is empty, the endpoint will asume that the localized fields are provided in the default language defined in the Configuration Service.

Note: You can provide the localized fields only in languages defined in the Configuration Service. In case the fields are provided in languages that are not defined in the Configuration Service, the request will be rejected.

Body

A price model can be defined as a repeatable way to sell products in a market with the intention of making a profit. Price models define basic structures for prices.

idstringOptional

Custom price model identifier. If not provided, it is automatically generated.

includesTaxbooleanRequired

Flag indicating whether prices assigned to the price model will be expressed as net or gross.

Value Description
true Prices will be expressed as gross values.
false Prices will be expressed as net values.
includesMarkupbooleanOptional

Flag indicating whether prices assigned to the price model include markup.

Note: This is a preview field.

defaultbooleanOptional

Indicates whether the price model is default one or not.

nameone ofRequired

Price model name. It should be a brief, human-readable name that describes purposes of the model.

  • If the Content-Language header is set to *, then the name should be provided as a map of translations, where each key is a language code and the value is the name in its respective language.
  • If the Content-Language header is set to a specific language, the name should be provided as a string.
  • If the Content-Language header is empty, the endpoint will asume that the name is provided in the default language defined in the Configuration Service.

Note: You can provide the names only in languages defined in the Configuration Service. In case the name is provided in a language that is not defined in the Configuration Service, the request will be rejected.

objectOptional
or
stringOptional
descriptionone ofOptional

Price model description. It can contain details about the price model.

  • If the Content-Language header is set to *, then the description should be provided as a map of translations, where each key is a language code and the value is the description in its respective language.
  • If the Content-Language header is set to a specific language, the description should be provided as a string.
  • If the Content-Language header is empty, the endpoint will asume that the description is provided in the default language defined in the Configuration Service.

Note: You can provide the descriptions only in languages defined in the Configuration Service. In case the description is provided in a language that is not defined in the Configuration Service, the request will be rejected.

objectOptional
or
stringOptional
tierDefinitionall ofRequired

Definition of pricing tiers.

measurementUnitall ofRequired

Measurement unit and quantity for which the price is defined.

For example, if a product is sold by the piece, the field should contain 1 pc. If products relevant to this price model are sold per kilogram, this field should contain 1 kg.

Responses
201
The request was successful. The price model has been created.
application/json
post
POST /price/{tenant}/priceModels HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 248

{
  "includesTax": true,
  "includesMarkup": true,
  "name": "Piece price model",
  "description": "Sample description",
  "tierDefinition": {
    "tierType": "BASIC",
    "tiers": [
      {
        "minQuantity": {
          "quantity": 0,
          "unitCode": "pc"
        }
      }
    ]
  },
  "measurementUnit": {
    "quantity": 0,
    "unitCode": "pc"
  }
}
{
  "id": "text"
}

Retrieving a price model

get

Retrieves a specified price model's details by priceModelId.

A price model can be defined as a repeatable way to sell products in a market with the intention of making a profit. Price models define basic structures for prices.

Required scopes

  • price.pricemodel_read

Authorizations
Path parameters
tenantstringRequired

Your Emporix tenant's name.

Note: The tenant should always be written in lowercase.

priceModelIdstringRequired

Price model's unique identifier, generated when the price model is created.

Header parameters
Accept-LanguagestringOptional

List of language codes acceptable for the response. You can specify factors that indicate which language should be retrieved if the one with a higher factor was not found in the localized fields.

  • If the header is set to a particular language or a list of languages, all localized fields are retrieved as strings.
  • If the header is set to *, all localized fields are retrieved as maps of translations, where the keys are language codes and values are the fields in their respective languages.
  • If the header is empty, localized fields are retrieved in the default language defined in the Configuration Service.
Responses
200
The request was successful. The price model is returned.
get
GET /price/{tenant}/priceModels/{priceModelId} HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "id": "6245a8f578a8576e338fa9c2",
    "name": "Tiered price model",
    "includesTax": true,
    "includesMarkup": true,
    "measurementUnit": {
      "quantity": 50,
      "unitCode": "g"
    },
    "tierDefinition": {
      "tierType": "TIERED",
      "tiers": [
        {
          "minQuantity": {
            "quantity": 0,
            "unitCode": "g"
          }
        },
        {
          "minQuantity": {
            "quantity": 100,
            "unitCode": "g"
          }
        },
        {
          "minQuantity": {
            "quantity": 500,
            "unitCode": "g"
          }
        }
      ]
    },
    "metadata": {
      "version": 1,
      "createdAt": "2022-03-31T13:13:25.816Z",
      "modifiedAt": "2022-03-31T13:13:25.816Z"
    }
  }
]

Upserting a price model

put

Updates a specified price model's details by priceModelId, or creates a new one if a price model with the specified id doesn't exist yet.

Required scopes

  • price.pricemodel_manage

Authorizations
Path parameters
tenantstringRequired

Your Emporix tenant's name.

Note: The tenant should always be written in lowercase.

priceModelIdstringRequired

Price model's unique identifier, generated when the price model is created.

Header parameters
Content-LanguagestringOptional

List of languages in which localized fields in the request body are provided.

  • If the Content-Language header is set to *, the localized fields should be provided as maps of translations, where the keys are language codes and values are the fields in their respective languages.
  • If the Content-Language header is set to a specific language, the localized fields should be provided as strings.
  • If the Content-Language header is empty, the endpoint will asume that the localized fields are provided in the default language defined in the Configuration Service.

Note: You can provide the localized fields only in languages defined in the Configuration Service. In case the fields are provided in languages that are not defined in the Configuration Service, the request will be rejected.

Body

A price model can be defined as a repeatable way to sell products in a market with the intention of making a profit. Price models define basic structures for prices.

idstringOptional

Custom price model identifier. If not provided, it is automatically generated.

includesTaxbooleanRequired

Flag indicating whether prices assigned to the price model will be expressed as net or gross.

Value Description
true Prices will be expressed as gross values.
false Prices will be expressed as net values.
includesMarkupbooleanOptional

Flag indicating whether prices assigned to the price model include markup.

Note: This is a preview field.

defaultbooleanOptional

Indicates whether the price model is default one or not.

nameone ofRequired

Price model name. It should be a brief, human-readable name that describes purposes of the model.

  • If the Content-Language header is set to *, then the name should be provided as a map of translations, where each key is a language code and the value is the name in its respective language.
  • If the Content-Language header is set to a specific language, the name should be provided as a string.
  • If the Content-Language header is empty, the endpoint will asume that the name is provided in the default language defined in the Configuration Service.

Note: You can provide the names only in languages defined in the Configuration Service. In case the name is provided in a language that is not defined in the Configuration Service, the request will be rejected.

objectOptional
or
stringOptional
descriptionone ofOptional

Price model description. It can contain details about the price model.

  • If the Content-Language header is set to *, then the description should be provided as a map of translations, where each key is a language code and the value is the description in its respective language.
  • If the Content-Language header is set to a specific language, the description should be provided as a string.
  • If the Content-Language header is empty, the endpoint will asume that the description is provided in the default language defined in the Configuration Service.

Note: You can provide the descriptions only in languages defined in the Configuration Service. In case the description is provided in a language that is not defined in the Configuration Service, the request will be rejected.

objectOptional
or
stringOptional
tierDefinitionall ofRequired

Definition of pricing tiers.

measurementUnitall ofRequired

Measurement unit and quantity for which the price is defined.

For example, if a product is sold by the piece, the field should contain 1 pc. If products relevant to this price model are sold per kilogram, this field should contain 1 kg.

Responses
201
The resource has been created.
application/json
put
PUT /price/{tenant}/priceModels/{priceModelId} HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 367

{
  "id": "6245a8f578a8576e338fa9c2",
  "name": "Tiered price model",
  "includesTax": true,
  "includesMarkup": true,
  "measurementUnit": {
    "quantity": 50,
    "unitCode": "g"
  },
  "tierDefinition": {
    "tierType": "TIERED",
    "tiers": [
      {
        "minQuantity": {
          "quantity": 0,
          "unitCode": "g"
        }
      },
      {
        "minQuantity": {
          "quantity": 100,
          "unitCode": "g"
        }
      },
      {
        "minQuantity": {
          "quantity": 500,
          "unitCode": "g"
        }
      }
    ]
  },
  "metadata": {
    "version": 1
  }
}
{
  "id": "12345678-1234-1234-1234-123456789012"
}

Deleting a price model

delete

Deletes a specified price model by priceModel Id.

Important: If you want to delete a price model that has prices assigned to it, you need to set the forceDelete query parameter to true. In this case, all prices assigned to the price model will be deleted as well, in an asynchronous manner.

Required scopes

  • price.pricemodel_manage

  • price.pricemodel_manage_admin

    Note: The price.pricemodel_manage_admin scope is only required if you want to delete a price model that has prices assigned to it.

Authorizations
Path parameters
tenantstringRequired

Your Emporix tenant's name.

Note: The tenant should always be written in lowercase.

priceModelIdstringRequired

Price model's unique identifier, generated when the price model is created.

Query parameters
forceDeletebooleanOptional
  • If set to true and the price model has prices assigned to it, both the price model and the prices will be deleted.

    Important: To set this parameter to true, your access token needs to have the price.pricemodel_manage_admin scope granted.

  • If set to false or not specified and the price model has prices assigned to it, the endpoint will respond with a 400 error.

Responses
204
The request was successful. The price model has been deleted.
delete
DELETE /price/{tenant}/priceModels/{priceModelId} HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*

No content

Was this helpful?