Prices
Saleor API has four different types that represent prices. The most basic type consists of a currency code and a numeric amount. The most complex one can define a range of prices, including net, gross, and tax amounts. The numeric amount precision is determined by the precision of the price currency. For example, USD has a precision value of 2, such as $1.00.
Saleor does not enforce any particular set of currency codes, but we strongly recommend using the three-letter codes defined by the ISO 4217 standard.
Displaying prices​
Presenting a number depends on the language and region. If you are building a web application, we recommend using the internationalization API provided by the browser.
- See MDN documentation on Intl.NumberFormat
API Reference​
Money​
Money is a type for keeping prices without taxes. We do not restrict currency code values, so a user can use crypto-currencies or other custom currencies.
type Money {
  currency: String!
  amount: Float!
}
- currency: Currency code for price. Currency depends on the chosen Channel.
- amount: Price amount.
TaxedMoney​
The most common example of TaxedMoney is a ProductVariant price. If a user does not use any tax integration, both net and gross prices will be populated with the same value.
type TaxedMoney {
  currency: String!
  gross: Money!
  net: Money!
  tax: Money!
}
- currency: Currency code for price. Currency depends on the chosen Channel.
- gross: Gross value (price with taxes).
- net: Net value (price without taxes).
- tax: Tax value.
MoneyRange​
MoneyRange is used to display prices for a ShippingZone.
type MoneyRange {
  start: Money
  stop: Money
}
- start: Lowest price in the range.
- stop: Highest price in the range.
TaxedMoneyRange​
TaxedMoneyRange is used in Products, because variants can differ in prices. You can display it as "price starts from $10" or "$10–$20".
type TaxedMoneyRange {
  start: TaxedMoney
  stop: TaxedMoney
}
- start: Lowest price in the range.
- stop: Highest price in the range.