Standalone Prices

Elevate, May 20-22-2025, Miami Beach, Florida

Standalone Prices offer a flexible way to store your product prices, especially with a large number of prices.

For an introduction to Standalone Prices and to understand how they work in Composable Commerce, see the Standalone Prices overview.

The Product priceMode determines the type of Price used for a Product Variant. If the priceMode is not set, as a default, Product Variants use Embedded Prices.

  • For existing Products using Embedded Prices, use the Set PriceMode update action to change the price mode.
  • For new Products, create a Product with priceMode as Standalone.

Learn more about Standalone Prices in our self-paced Pricing setup module.

Representations

StandalonePrice

id​
String​

Unique identifier of the StandalonePrice.

version​
Int​

Current version of the StandalonePrice.

key​
String​

User-defined unique identifier of the StandalonePrice.

MinLength: 2​MaxLength: 256​Pattern: ^[A-Za-z0-9_-]+$​
sku​
String​

SKU of the ProductVariant to which this Price is associated.

value​
TypedMoney​

Money value of this Price.

country​
CountryCode​

Country for which this Price is valid.

Pattern: ^[A-Z]{2}$​
customerGroup​

CustomerGroup for which this Price is valid.

channel​

Product distribution Channel for which this Price is valid.

validFrom​
DateTime​

Date from which the Price is valid.

validUntil​
DateTime​

Date until the Price is valid. Standalone Prices that are no longer valid are not automatically deleted, but they can be deleted if necessary.

tiers​
Array of PriceTier​

Price tiers if any are defined.

If discounted is present, the tiered Price is ignored for a Product Variant.

discounted​

Set if a matching ProductDiscount exists. If set, the API uses the discounted value for the Line Item price selection. When a relative discount is applied and the fraction part of the discounted price is 0.5, the discounted price is rounded in favor of the customer with the half down rounding.

staged​

Staged changes of the StandalonePrice. Only present if the StandalonePrice has some changes staged.

active​
Boolean​

If set to true, the StandalonePrice is considered during Product price selection. If set to false, the StandalonePrice is not considered during Product price selection and any associated Line Items in a Cart cannot be ordered.

Default​
custom​
CustomFields​

Custom Fields for the StandalonePrice.

createdAt​
DateTime​

Date and time (UTC) the StandalonePrice was initially created.

createdBy​BETA
CreatedBy​

IDs and references that created the StandalonePrice.

lastModifiedAt​
DateTime​

Date and time (UTC) the StandalonePrice was last updated.

lastModifiedBy​BETA

IDs and references that last modified the StandalonePrice.

Example: json
{
  "id": "{{standalone-price-id}}",
  "version": 1,
  "key": "red-jacket-de-price",
  "sku": "A0E200000002E49",
  "value": {
    "type": "centPrecision",
    "currencyCode": "EUR",
    "centAmount": 10000,
    "fractionDigits": 2
  },
  "country": "DE",
  "customerGroup": {
    "typeId": "customer-group",
    "id": "{{customer-group-id}}"
  },
  "tiers": [
    {
      "minimumQuantity": 10,
      "value": {
        "type": "centPrecision",
        "currencyCode": "EUR",
        "centAmount": 9000,
        "fractionDigits": 2
      }
    }
  ],
  "active": true,
  "createdAt": "2024-11-21T14:37:09.288Z",
  "lastModifiedAt": "2024-11-21T14:37:09.288Z",
  "lastModifiedBy": {
    "clientId": "{{client-id}}",
    "isPlatformClient": false
  },
  "createdBy": {
    "clientId": "{{client-id}}",
    "isPlatformClient": false
  }
}

StandalonePriceDraft

This type is equivalent to CreateStandalonePrice in the GraphQL API.

key​
String​

User-defined unique identifier for the StandalonePrice.

MinLength: 2​MaxLength: 256​Pattern: ^[A-Za-z0-9_-]+$​
sku​
String​

Specifies to which ProductVariant the API associates this Price. It is not validated to exist in product variants.

value​
Money​

Sets the money value of this Price.

To set the money value in high precision, use HighPrecisionMoneyDraft.

country​
CountryCode​

Sets the country for which this Price is valid.

Pattern: ^[A-Z]{2}$​
customerGroup​

Sets the CustomerGroup for which this Price is valid.

channel​

Sets the product distribution Channel for which this Price is valid.

validFrom​
DateTime​

Sets the date from which the Price is valid. Must be at least 1 ms earlier than validUntil.

validUntil​
DateTime​

Sets the date until the Price is valid. Must be at least 1 ms later than validFrom. Standalone Prices that are no longer valid are not automatically deleted, but they can be deleted if necessary.

tiers​
Array of PriceTierDraft​

Sets price tiers.

If discounted is set, the tiered Price is ignored for a Product Variant.

discounted​

Sets a discounted price for this Price that is different from the base price with value.

staged​

Staged changes for the StandalonePrice.

active​
Boolean​

Set to false, if the StandalonePrice should not be considered during Product price selection.

Default​
custom​

Custom Fields for the StandalonePrice.

Example: json
{
  "key": "red-jacket-de-price",
  "sku": "A0E200000002E49",
  "value": {
    "currencyCode": "EUR",
    "centAmount": 10000
  },
  "country": "DE",
  "customerGroup": {
    "typeId": "customer-group",
    "id": "{{customer-group-id}}"
  },
  "tiers": [
    {
      "minimumQuantity": 10,
      "value": {
        "currencyCode": "EUR",
        "centAmount": 9000
      }
    }
  ],
  "active": true
}

StandalonePricePagedQueryResponse

PagedQueryResult with results containing an array of StandalonePrice.

limit​
Int​

Number of requested results.

offset​
Int​

Offset supplied by the client or server default. It is the number of elements skipped, not a page number.

count​
Int​

Actual number of results returned.

total​
Int​

Total number of results matching the query. This number is an estimation that is not strongly consistent. This field is returned by default. For improved performance, calculating this field can be deactivated by using the query parameter withTotal=false. When the results are filtered with a Query Predicate, total is subject to a limit.

results​
Array of StandalonePrice​

StandalonePrices matching the query.

StandalonePriceReference

id​
String​

Unique ID of the referenced resource.

typeId​
standalone-price

Type of referenced resource.

obj​

Contains the representation of the expanded StandalonePrice. Only present in responses to requests with Reference Expansion for StandalonePrice.

StandalonePriceResourceIdentifier

id​
String​

Unique identifier of the referenced resource. Required if key is absent.

key​
String​

User-defined unique identifier of the referenced resource. Required if id is absent.

typeId​
standalone-price

Type of referenced resource. If given, it must match the expected ReferenceTypeId of the referenced resource.

StagedStandalonePrice

Staged changes on a Standalone Price. To update the value property of a Staged Standalone Price, use the Change Value update action. To apply all staged changes to the Standalone Price, use the Apply Staged Changes update action.

value​
TypedMoney​

Money value of the StagedStandalonePrice.

discounted​

Discounted price for the StagedStandalonePrice.

StagedPriceDraft

value​

Money value for the StagedPriceDraft.

Get StandalonePrice

Get StandalonePrice by ID

GET
https://api.{region}.commercetools.com/{projectKey}/standalone-prices/{id}
OAuth 2.0 Scopes:
view_standalone_prices:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

id
​
String
​

id of the StandalonePrice.

Query parameters:
expand
​​
The parameter can be passed multiple times.
Response:
200

StandalonePrice

asapplication/json
Request Example:cURL
curl --get https://api.{region}.commercetools.com/{projectKey}/standalone-prices/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 
200 Response Example: StandalonePricejson
{
  "id": "{{standalone-price-id}}",
  "version": 1,
  "key": "red-jacket-de-price",
  "sku": "A0E200000002E49",
  "value": {
    "type": "centPrecision",
    "currencyCode": "EUR",
    "centAmount": 10000,
    "fractionDigits": 2
  },
  "country": "DE",
  "customerGroup": {
    "typeId": "customer-group",
    "id": "{{customer-group-id}}"
  },
  "tiers": [
    {
      "minimumQuantity": 10,
      "value": {
        "type": "centPrecision",
        "currencyCode": "EUR",
        "centAmount": 9000,
        "fractionDigits": 2
      }
    }
  ],
  "active": true,
  "createdAt": "2024-11-21T14:37:09.288Z",
  "lastModifiedAt": "2024-11-21T14:37:09.288Z",
  "lastModifiedBy": {
    "clientId": "{{client-id}}",
    "isPlatformClient": false
  },
  "createdBy": {
    "clientId": "{{client-id}}",
    "isPlatformClient": false
  }
}

Get StandalonePrice by Key

GET
https://api.{region}.commercetools.com/{projectKey}/standalone-prices/key={key}
OAuth 2.0 Scopes:
view_standalone_prices:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

key
​
String
​

key of the StandalonePrice.

Query parameters:
expand
​​
The parameter can be passed multiple times.
Response:
200

StandalonePrice

asapplication/json
Request Example:cURL
curl --get https://api.{region}.commercetools.com/{projectKey}/standalone-prices/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 
200 Response Example: StandalonePricejson
{
  "id": "{{standalone-price-id}}",
  "version": 1,
  "key": "red-jacket-de-price",
  "sku": "A0E200000002E49",
  "value": {
    "type": "centPrecision",
    "currencyCode": "EUR",
    "centAmount": 10000,
    "fractionDigits": 2
  },
  "country": "DE",
  "customerGroup": {
    "typeId": "customer-group",
    "id": "{{customer-group-id}}"
  },
  "tiers": [
    {
      "minimumQuantity": 10,
      "value": {
        "type": "centPrecision",
        "currencyCode": "EUR",
        "centAmount": 9000,
        "fractionDigits": 2
      }
    }
  ],
  "active": true,
  "createdAt": "2024-11-21T14:37:09.288Z",
  "lastModifiedAt": "2024-11-21T14:37:09.288Z",
  "lastModifiedBy": {
    "clientId": "{{client-id}}",
    "isPlatformClient": false
  },
  "createdBy": {
    "clientId": "{{client-id}}",
    "isPlatformClient": false
  }
}

Query StandalonePrices

GET
https://api.{region}.commercetools.com/{projectKey}/standalone-prices
OAuth 2.0 Scopes:
view_standalone_prices:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

Query parameters:
where
​​
The parameter can be passed multiple times.
sort
​​
The parameter can be passed multiple times.
expand
​​
The parameter can be passed multiple times.
limit
​
Int
​

Number of results requested.

Default: 20​
offset
​
Int
​

Number of elements skipped.

Default: 0​
withTotal
​
Boolean
​

Controls the calculation of the total number of query results. Set to false to improve query performance when the total is not needed.

Default: true​
var.<varName>
​
String
​

Predicate parameter values.

The parameter can be passed multiple times.
Response:
Request Example:cURL
curl --get https://api.{region}.commercetools.com/{projectKey}/standalone-prices -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 
200 Response Example: StandalonePricePagedQueryResponsejson
{
  "limit": 20,
  "offset": 0,
  "count": 1,
  "total": 1,
  "results": [
    {
      "id": "{{standalone-price-id}}",
      "version": 1,
      "key": "red-jacket-de-price",
      "sku": "A0E200000002E49",
      "value": {
        "type": "centPrecision",
        "currencyCode": "EUR",
        "centAmount": 10000,
        "fractionDigits": 2
      },
      "country": "DE",
      "customerGroup": {
        "typeId": "customer-group",
        "id": "{{customer-group-id}}"
      },
      "tiers": [
        {
          "minimumQuantity": 10,
          "value": {
            "type": "centPrecision",
            "currencyCode": "EUR",
            "centAmount": 9000,
            "fractionDigits": 2
          }
        }
      ],
      "active": true,
      "createdAt": "2024-11-21T14:37:09.288Z",
      "lastModifiedAt": "2024-11-21T14:37:09.288Z",
      "lastModifiedBy": {
        "clientId": "{{client-id}}",
        "isPlatformClient": false
      },
      "createdBy": {
        "clientId": "{{client-id}}",
        "isPlatformClient": false
      }
    }
  ]
}

Check if StandalonePrice exists

Check if StandalonePrice exists by ID

HEAD
https://api.{region}.commercetools.com/{projectKey}/standalone-prices/{id}

Checks if a StandalonePrice exists for a given id. Returns a 200 OK status if the StandalonePrice exists or a 404 Not Found otherwise.

OAuth 2.0 Scopes:
view_standalone_prices:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

id
​
String
​

id of the StandalonePrice.

Response:
200
Request Example:cURL
curl --head https://api.{region}.commercetools.com/{projectKey}/standalone-prices/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 

Check if StandalonePrice exists by Key

HEAD
https://api.{region}.commercetools.com/{projectKey}/standalone-prices/key={key}

Checks if a StandalonePrice exists for a given key. Returns a 200 OK status if the StandalonePrice exists or a 404 Not Found otherwise.

OAuth 2.0 Scopes:
view_standalone_prices:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

key
​
String
​

key of the StandalonePrice.

Response:
200
Request Example:cURL
curl --head https://api.{region}.commercetools.com/{projectKey}/standalone-prices/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 

Check if StandalonePrice exists by Query Predicate

HEAD
https://api.{region}.commercetools.com/{projectKey}/standalone-prices

Checks if a StandalonePrice exists for a given Query Predicate. Returns a 200 OK status if any StandalonePrices match the Query Predicate, or a 404 Not Found otherwise.

OAuth 2.0 Scopes:
view_standalone_prices:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

Query parameters:
where
​​
The parameter can be passed multiple times.
Response:
200
Request Example:cURL
curl --head https://api.{region}.commercetools.com/{projectKey}/standalone-prices -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 

Create StandalonePrice

POST
https://api.{region}.commercetools.com/{projectKey}/standalone-prices

Creating a Standalone Price produces the StandalonePriceCreated Message.

  • If the Standalone Price has the same price scope as an existing Standalone Price, a DuplicateStandalonePriceScope error is returned.
  • If the Standalone Price has overlapping validity periods within the same price scope, a OverlappingStandalonePriceValidity error is returned. A Price without validity period does not conflict with a Price defined for a time period.
OAuth 2.0 Scopes:
manage_standalone_prices:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

Query parameters:
expand
​​
The parameter can be passed multiple times.
Request Body:StandalonePriceDraftasapplication/json
Response:
201

StandalonePrice

asapplication/json
Request Example:cURL
curl https://api.{region}.commercetools.com/{projectKey}/standalone-prices -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA 
{
  "key" : "red-jacket-de-price",
  "sku" : "A0E200000002E49",
  "value" : {
    "currencyCode" : "EUR",
    "centAmount" : 10000
  },
  "country" : "DE",
  "customerGroup" : {
    "typeId" : "customer-group",
    "id" : "{{customer-group-id}}"
  },
  "tiers" : [ {
    "minimumQuantity" : 10,
    "value" : {
      "currencyCode" : "EUR",
      "centAmount" : 9000
    }
  } ],
  "active" : true
}
DATA
201 Response Example: StandalonePricejson
{
  "id": "{{standalone-price-id}}",
  "version": 1,
  "key": "red-jacket-de-price",
  "sku": "A0E200000002E49",
  "value": {
    "type": "centPrecision",
    "currencyCode": "EUR",
    "centAmount": 10000,
    "fractionDigits": 2
  },
  "country": "DE",
  "customerGroup": {
    "typeId": "customer-group",
    "id": "{{customer-group-id}}"
  },
  "tiers": [
    {
      "minimumQuantity": 10,
      "value": {
        "type": "centPrecision",
        "currencyCode": "EUR",
        "centAmount": 9000,
        "fractionDigits": 2
      }
    }
  ],
  "active": true,
  "createdAt": "2024-11-21T14:37:09.288Z",
  "lastModifiedAt": "2024-11-21T14:37:09.288Z",
  "lastModifiedBy": {
    "clientId": "{{client-id}}",
    "isPlatformClient": false
  },
  "createdBy": {
    "clientId": "{{client-id}}",
    "isPlatformClient": false
  }
}

Update StandalonePrice

Update StandalonePrice by ID

POST
https://api.{region}.commercetools.com/{projectKey}/standalone-prices/{id}
OAuth 2.0 Scopes:
manage_standalone_prices:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

id
​
String
​

id of the StandalonePrice.

Query parameters:
expand
​​
The parameter can be passed multiple times.
Request Body:StandalonePriceUpdateasapplication/json
Response:
200

StandalonePrice

asapplication/json
Request Example:cURL
curl https://api.{region}.commercetools.com/{projectKey}/standalone-prices/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA 
{
  "version" : 1,
  "actions" : [ {
    "action" : "changeValue",
    "value" : {
      "currencyCode" : "EUR",
      "centAmount" : 15000
    }
  } ]
}
DATA
200 Response Example: StandalonePricejson
{
  "id": "{{standalone-price-id}}",
  "version": 2,
  "key": "red-jacket-de-price",
  "sku": "A0E200000002E49",
  "value": {
    "type": "centPrecision",
    "currencyCode": "EUR",
    "centAmount": 15000,
    "fractionDigits": 2
  },
  "country": "DE",
  "customerGroup": {
    "typeId": "customer-group",
    "id": "{{customer-group-id}}"
  },
  "tiers": [
    {
      "minimumQuantity": 10,
      "value": {
        "type": "centPrecision",
        "currencyCode": "EUR",
        "centAmount": 9000,
        "fractionDigits": 2
      }
    }
  ],
  "active": true,
  "createdAt": "2024-11-21T14:37:09.288Z",
  "lastModifiedAt": "2024-11-21T14:37:09.288Z",
  "lastModifiedBy": {
    "clientId": "{{client-id}}",
    "isPlatformClient": false
  },
  "createdBy": {
    "clientId": "{{client-id}}",
    "isPlatformClient": false
  }
}

Update StandalonePrice by Key

POST
https://api.{region}.commercetools.com/{projectKey}/standalone-prices/key={key}
OAuth 2.0 Scopes:
manage_standalone_prices:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

key
​
String
​

key of the StandalonePrice.

Query parameters:
expand
​​
The parameter can be passed multiple times.
Request Body:StandalonePriceUpdateasapplication/json
Response:
200

StandalonePrice

asapplication/json
Request Example:cURL
curl https://api.{region}.commercetools.com/{projectKey}/standalone-prices/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA 
{
  "version" : 1,
  "actions" : [ {
    "action" : "changeValue",
    "value" : {
      "currencyCode" : "EUR",
      "centAmount" : 15000
    }
  } ]
}
DATA
200 Response Example: StandalonePricejson
{
  "id": "{{standalone-price-id}}",
  "version": 2,
  "key": "red-jacket-de-price",
  "sku": "A0E200000002E49",
  "value": {
    "type": "centPrecision",
    "currencyCode": "EUR",
    "centAmount": 15000,
    "fractionDigits": 2
  },
  "country": "DE",
  "customerGroup": {
    "typeId": "customer-group",
    "id": "{{customer-group-id}}"
  },
  "tiers": [
    {
      "minimumQuantity": 10,
      "value": {
        "type": "centPrecision",
        "currencyCode": "EUR",
        "centAmount": 9000,
        "fractionDigits": 2
      }
    }
  ],
  "active": true,
  "createdAt": "2024-11-21T14:37:09.288Z",
  "lastModifiedAt": "2024-11-21T14:37:09.288Z",
  "lastModifiedBy": {
    "clientId": "{{client-id}}",
    "isPlatformClient": false
  },
  "createdBy": {
    "clientId": "{{client-id}}",
    "isPlatformClient": false
  }
}

Update actions

Change Value

Updating the value of a StandalonePrice produces the StandalonePriceValueChangedMessage.

action​
String​
"changeValue"
value​
Money​

New value to set. Must not be empty.

To set the money value in high precision, use HighPrecisionMoneyDraft.

staged​
Boolean​

If set to true the update action applies to the StagedStandalonePrice. If set to false, the update action applies to the current StandalonePrice.

Example: json
{
  "action": "changeValue",
  "staged": false,
  "value": {
    "currencyCode": "EUR",
    "centAmount": 20000
  }
}

Change Active

Updating the value of a StandalonePrice produces the StandalonePriceActiveChanged Message.

action​
String​
"changeActive"
active​
Boolean​

New value to set for the active field of the StandalonePrice.

Example: json
{
  "action": "changeActive",
  "active": false
}

Set Key

Sets the key on a Standalone Price. Produces the StandalonePriceKeySet Message.

action​
String​
"setKey"
key​
String​

Value to set. Must be unique. If empty, any existing value will be removed.

MinLength: 2​MaxLength: 256​Pattern: ^[A-Za-z0-9_-]+$​
Example: json
{
  "action": "setKey",
  "key": "new-key"
}

Set Custom Type

action​
String​
"setCustomType"
type​

Defines the Type that extends the StandalonePrice with Custom Fields. If absent, any existing Type and Custom Fields are removed from the StandalonePrice.

fields​

Sets the Custom Fields fields for the StandalonePrice.

Example: json
{
  "action": "setCustomType",
  "type": {
    "id": "{{type-id}}",
    "typeId": "type"
  },
  "fields": {
    "exampleStringField": "TextString"
  }
}

Set Custom Field

action​
String​
"setCustomField"
name​
String​

Name of the Custom Field.

value​

If value is absent or null, this field will be removed if it exists. Removing a field that does not exist returns an InvalidOperation error. If value is provided, it is set for the field defined by name.

Example: json
{
  "action": "setCustomField",
  "name": "exampleStringField",
  "value": "TextString"
}

Set Discounted Price

Discounts a Standalone Price of a Product Variant on a published Product. If the Product Variant does not exist or if it exists only in the staged representation of a Product, an InvalidOperationError error is returned.

Produces the StandalonePriceExternalDiscountSet Message.

action​
String​
"setDiscountedPrice"
discounted​

Value to set. If empty, any existing value will be removed.

The referenced ProductDiscount must be of type external, active, and its predicate must match the referenced Price.

Example: json
{
  "action": "setDiscountedPrice",
  "discounted": {
    "value": {
      "type": "centPrecision",
      "currencyCode": "EUR",
      "centAmount": 2990,
      "fractionDigits": 2
    },
    "discount": {
      "typeId": "product-discount",
      "id": "{{product-discount-id}}"
    }
  }
}

Add Price Tier

Adding a PriceTier to a StandalonePrice produces the Standalone Price Tier Added Message.

action​
String​
"addPriceTier"
tier​

The PriceTier to be added to the tiers field of the StandalonePrice. The action returns an InvalidField error in the following cases:

  • Trying to add a PriceTier with minimumQuantity < 2.
  • Trying to add a PriceTier with minimumQuantity that already exists for the StandalonePrice.
Example: json
{
  "action": "addPriceTier",
  "tier": {
    "minimumQuantity": 100,
    "value": {
      "centAmount": 4200,
      "currencyCode": "EUR",
      "type": "centPrecision"
    }
  }
}

Remove Price Tier

Removing a PriceTier from a StandalonePrice produces the Standalone Price Tier Removed Message.

action​
String​
"removePriceTier"
tierMinimumQuantity​
Int​

The minimumQuantity of the PriceTier to be removed from the tiers field of the StandalonePrice.

Example: json
{
  "action": "removePriceTier",
  "tierMinimumQuantity": 100
}

Set Price Tiers

Sets all PriceTiers for a StandalonePrice in one action, produces the Standalone Price Tiers Set Message.

action​
String​
"setPriceTiers"
tiers​
Array of PriceTierDraft​

Value to set. If empty, any existing value will be removed. The minimumQuantity of the PriceTiers must be unique and greater than 1, otherwise an InvalidField error is returned.

Example: json
{
  "action": "setPriceTiers",
  "tiers": [
    {
      "minimumQuantity": 100,
      "value": {
        "centAmount": 4200,
        "currencyCode": "EUR",
        "type": "centPrecision"
      }
    },
    {
      "minimumQuantity": 150,
      "value": {
        "centAmount": 4000,
        "currencyCode": "EUR",
        "type": "centPrecision"
      }
    }
  ]
}

Apply Staged Changes

Applies all staged changes to the StandalonePrice by overwriting all current values with the values in the StagedStandalonePrice. After successfully applied, the StagedStandalonePrice will be removed from the StandalonePrice. An applyStagedChanges update action on a StandalonePrice that does not contain any staged changes will return a 400 Bad Request error. Applying staged changes successfully will produce the StandalonePriceStagedChangesApplied Message.

action​
String​
"applyStagedChanges"
Example: json
{
  "action": "applyStagedChanges"
}

Remove Staged Changes

Removes all staged changes from the StandalonePrice. Removing staged changes successfully produces the StandalonePriceStagedChangesRemoved Message.

action​
String​
"removeStagedChanges"
Example: json
{
  "action": "removeStagedChanges"
}

Set Valid From

Updating the validFrom value generates the StandalonePriceValidFromSet Message.

As the validity dates are part of the price scope and are not allowed to overlap, this update might return the DuplicateStandalonePriceScope and OverlappingStandalonePriceValidity errors, respectively. A Price without validity period does not conflict with a Price defined for a time period.

action​
String​
"setValidFrom"
validFrom​
DateTime​

Value to set. If empty, any existing value is removed.

Example: json
{
  "action": "setValidFrom",
  "validFrom": "2025-03-30T20:30:00.000Z"
}

Set Valid Until

Updating the validUntil value generates the StandalonePriceValidUntilSet Message.

As the validity dates are part of the price scope and are not allowed to overlap, this update might return the DuplicateStandalonePriceScope and OverlappingStandalonePriceValidity errors, respectively. A Price without validity period does not conflict with a Price defined for a time period.

action​
String​
"setValidUntil"
validUntil​
DateTime​

Value to set. If empty, any existing value is removed.

Example: json
{
  "action": "setValidUntil",
  "validUntil": "2025-04-21T20:30:00.000Z"
}

Set Valid From and Until

Updating the validFrom and validUntil values generates the StandalonePriceValidFromAndUntilSet Message.

As the validity dates are part of the price scope and are not allowed to overlap, this update might return the DuplicateStandalonePriceScope and OverlappingStandalonePriceValidity errors, respectively. A Price without validity period does not conflict with a Price defined for a time period.

action​
String​
"setValidFromAndUntil"
validFrom​
DateTime​

Value to set. If empty, any existing value is removed.

validUntil​
DateTime​

Value to set. If empty, any existing value is removed.

Example: json
{
  "action": "setValidFromAndUntil",
  "validFrom": "2025-03-30T20:30:00.000Z",
  "validUntil": "2025-04-21T20:30:00.000Z"
}

Delete StandalonePrice

Delete StandalonePrice by ID

DELETE
https://api.{region}.commercetools.com/{projectKey}/standalone-prices/{id}

Produces the StandalonePriceDeleted Message.

OAuth 2.0 Scopes:
manage_standalone_prices:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

id
​
String
​

id of the StandalonePrice.

Query parameters:
version
​
Int
​

Last seen version of the resource.

expand
​​
The parameter can be passed multiple times.
Response:
200

StandalonePrice

asapplication/json
Request Example:cURL
curl -X DELETE https://api.{region}.commercetools.com/{projectKey}/standalone-prices/{id}?version={version} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
200 Response Example: StandalonePricejson
{
  "id": "{{standalone-price-id}}",
  "version": 1,
  "key": "red-jacket-de-price",
  "sku": "A0E200000002E49",
  "value": {
    "type": "centPrecision",
    "currencyCode": "EUR",
    "centAmount": 10000,
    "fractionDigits": 2
  },
  "country": "DE",
  "customerGroup": {
    "typeId": "customer-group",
    "id": "{{customer-group-id}}"
  },
  "tiers": [
    {
      "minimumQuantity": 10,
      "value": {
        "type": "centPrecision",
        "currencyCode": "EUR",
        "centAmount": 9000,
        "fractionDigits": 2
      }
    }
  ],
  "active": true,
  "createdAt": "2024-11-21T14:37:09.288Z",
  "lastModifiedAt": "2024-11-21T14:37:09.288Z",
  "lastModifiedBy": {
    "clientId": "{{client-id}}",
    "isPlatformClient": false
  },
  "createdBy": {
    "clientId": "{{client-id}}",
    "isPlatformClient": false
  }
}

Delete StandalonePrice by Key

DELETE
https://api.{region}.commercetools.com/{projectKey}/standalone-prices/key={key}

Produces the StandalonePriceDeleted Message.

OAuth 2.0 Scopes:
manage_standalone_prices:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

key
​
String
​

key of the StandalonePrice.

Query parameters:
version
​
Int
​

Last seen version of the resource.

expand
​​
The parameter can be passed multiple times.
Response:
200

StandalonePrice

asapplication/json
Request Example:cURL
curl -X DELETE https://api.{region}.commercetools.com/{projectKey}/standalone-prices/key={key}?version={version} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
200 Response Example: StandalonePricejson
{
  "id": "{{standalone-price-id}}",
  "version": 1,
  "key": "red-jacket-de-price",
  "sku": "A0E200000002E49",
  "value": {
    "type": "centPrecision",
    "currencyCode": "EUR",
    "centAmount": 10000,
    "fractionDigits": 2
  },
  "country": "DE",
  "customerGroup": {
    "typeId": "customer-group",
    "id": "{{customer-group-id}}"
  },
  "tiers": [
    {
      "minimumQuantity": 10,
      "value": {
        "type": "centPrecision",
        "currencyCode": "EUR",
        "centAmount": 9000,
        "fractionDigits": 2
      }
    }
  ],
  "active": true,
  "createdAt": "2024-11-21T14:37:09.288Z",
  "lastModifiedAt": "2024-11-21T14:37:09.288Z",
  "lastModifiedBy": {
    "clientId": "{{client-id}}",
    "isPlatformClient": false
  },
  "createdBy": {
    "clientId": "{{client-id}}",
    "isPlatformClient": false
  }
}