---
displayed_sidebar: servicesSidebar
---

import ParameterTypes from "@site/src/components/ParameterTypes"

# PricingService

Allows retrieval of prices.

## constructor

### Parameters

<ParameterTypes parameters={[
  {
    "name": "__namedParameters",
    "type": "`InjectedDependencies`",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

___

## Properties

<ParameterTypes parameters={[
  {
    "name": "__configModule__",
    "type": "`Record<string, unknown>`",
    "description": "",
    "optional": true,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "__container__",
    "type": "`any`",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "__moduleDeclaration__",
    "type": "`Record<string, unknown>`",
    "description": "",
    "optional": true,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "customerService_",
    "type": "[CustomerService](services.CustomerService.mdx)",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "featureFlagRouter",
    "type": "`FlagRouter`",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "manager_",
    "type": "`EntityManager`",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "priceSelectionStrategy",
    "type": "[IPriceSelectionStrategy](../../medusa/interfaces/medusa.IPriceSelectionStrategy.mdx)",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "productVariantService",
    "type": "[ProductVariantService](services.ProductVariantService.mdx)",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "regionService",
    "type": "[RegionService](services.RegionService.mdx)",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "taxProviderService",
    "type": "[TaxProviderService](services.TaxProviderService.mdx)",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "transactionManager_",
    "type": "`undefined` \\| `EntityManager`",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

___

## Accessors

### activeManager\_

#### Returns

<ParameterTypes parameters={[
  {
    "name": "EntityManager",
    "type": "`EntityManager`",
    "optional": false,
    "defaultValue": "",
    "description": "",
    "expandable": false,
    "children": []
  }
]} />

___

### pricingModuleService

#### Returns

<ParameterTypes parameters={[
  {
    "name": "IPricingModuleService",
    "type": "`object`",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

___

### remoteQuery

#### Returns

<ParameterTypes parameters={[
  {
    "name": "RemoteQueryFunction",
    "type": "`RemoteQueryFunction`",
    "optional": false,
    "defaultValue": "",
    "description": "",
    "expandable": false,
    "children": []
  }
]} />

___

## Methods

### atomicPhase\_

Wraps some work within a transactional block. If the service already has
a transaction manager attached this will be reused, otherwise a new
transaction manager is created.

#### Type Parameters

<ParameterTypes parameters={[
  {
    "name": "TResult",
    "type": "`object`",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "TError",
    "type": "`object`",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "work",
    "type": "(`transactionManager`: `EntityManager`) => Promise&#60;TResult&#62;",
    "description": "the transactional work to be done",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "isolationOrErrorHandler",
    "type": "`IsolationLevel` \\| (`error`: `TError`) => Promise&#60;void \\| TResult&#62;",
    "description": "the isolation level to be used for the work.",
    "optional": true,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "maybeErrorHandlerOrDontFail",
    "type": "(`error`: `TError`) => Promise&#60;void \\| TResult&#62;",
    "description": "Potential error handler",
    "optional": true,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;TResult&#62;",
    "optional": false,
    "defaultValue": "",
    "description": "the result of the transactional work",
    "expandable": false,
    "children": []
  }
]} />

___

### calculateTaxes

Gets the prices for a product variant

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "variantPricing",
    "type": "[ProductVariantPricing](../../medusa/types/medusa.ProductVariantPricing.mdx)",
    "description": "the prices retrieved from a variant",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "productRates",
    "type": "[TaxServiceRate](../../medusa/types/medusa.TaxServiceRate.mdx)[]",
    "description": "the tax rates that the product has applied",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "TaxedPricing",
    "type": "`object`",
    "description": "Pricing fields related to taxes.",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

___

### collectPricingContext

Collects additional information necessary for completing the price
selection.

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "context",
    "type": "[PriceSelectionContext](../../medusa/types/medusa.PriceSelectionContext.mdx)",
    "description": "the price selection context to use",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;PricingContext&#62;",
    "optional": false,
    "defaultValue": "",
    "description": "The pricing context",
    "expandable": false,
    "children": []
  }
]} />

___

### getPricingModuleVariantMoneyAmounts

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "variantIds",
    "type": "`string`[]",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;Map&#60;string, [MoneyAmount](../../entities/classes/entities.MoneyAmount.mdx)[]&#62;&#62;",
    "optional": false,
    "defaultValue": "",
    "description": "",
    "expandable": false,
    "children": []
  }
]} />

___

### getProductPricing

Gets all the variant prices for a product. All the product's variants will
be fetched.

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "product",
    "type": "Pick&#60;[Product](../../entities/classes/entities.Product.mdx), \"id\" \\| \"variants\"&#62;",
    "description": "the product to get pricing for.",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "context",
    "type": "[PriceSelectionContext](../../medusa/types/medusa.PriceSelectionContext.mdx)",
    "description": "the price selection context to use",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;Record&#60;string, [ProductVariantPricing](../../medusa/types/medusa.ProductVariantPricing.mdx)&#62;&#62;",
    "optional": false,
    "defaultValue": "",
    "description": "A map of variant ids to their corresponding prices",
    "expandable": false,
    "children": []
  }
]} />

___

### getProductPricingById

Gets all the variant prices for a product by the product id

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "productId",
    "type": "`string`",
    "description": "the id of the product to get prices for",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "context",
    "type": "[PriceSelectionContext](../../medusa/types/medusa.PriceSelectionContext.mdx)",
    "description": "the price selection context to use",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;Record&#60;string, [ProductVariantPricing](../../medusa/types/medusa.ProductVariantPricing.mdx)&#62;&#62;",
    "optional": false,
    "defaultValue": "",
    "description": "A map of variant ids to their corresponding prices",
    "expandable": false,
    "children": []
  }
]} />

___

### getProductPricing\_

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "data",
    "type": "`object`[]",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "context",
    "type": "[PricingContext](../../types/interfaces/types.PricingContext.mdx)",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;Map&#60;string, Record&#60;string, [ProductVariantPricing](../../medusa/types/medusa.ProductVariantPricing.mdx)&#62;&#62;&#62;",
    "optional": false,
    "defaultValue": "",
    "description": "",
    "expandable": false,
    "children": []
  }
]} />

___

### getProductVariantPricing

Gets the prices for a product variant.

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "variant",
    "type": "Pick&#60;[ProductVariant](../../entities/classes/entities.ProductVariant.mdx), \"id\" \\| \"product_id\"&#62;",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "context",
    "type": "[PriceSelectionContext](../../medusa/types/medusa.PriceSelectionContext.mdx) \\| [PricingContext](../../types/interfaces/types.PricingContext.mdx)",
    "description": "the price selection context to use",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;[ProductVariantPricing](../../medusa/types/medusa.ProductVariantPricing.mdx)&#62;",
    "optional": false,
    "defaultValue": "",
    "description": "The product variant prices",
    "expandable": false,
    "children": []
  }
]} />

___

### getProductVariantPricingById

Gets the prices for a product variant by a variant id.

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "variantId",
    "type": "`string`",
    "description": "the id of the variant to get prices for",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "context",
    "type": "[PriceSelectionContext](../../medusa/types/medusa.PriceSelectionContext.mdx) \\| [PricingContext](../../types/interfaces/types.PricingContext.mdx)",
    "description": "the price selection context to use",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;[ProductVariantPricing](../../medusa/types/medusa.ProductVariantPricing.mdx)&#62;",
    "optional": false,
    "defaultValue": "",
    "description": "The product variant prices",
    "expandable": false,
    "children": []
  }
]} />

#### Deprecated

Use [getProductVariantsPricing](services.PricingService.mdx#getproductvariantspricing) instead.

___

### getProductVariantPricingModulePricing\_

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "variantPriceData",
    "type": "`object`[]",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "context",
    "type": "[PricingContext](../../types/interfaces/types.PricingContext.mdx)",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;Map&#60;any, any&#62;&#62;",
    "optional": false,
    "defaultValue": "",
    "description": "",
    "expandable": false,
    "children": []
  }
]} />

___

### getProductVariantPricing\_

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "data",
    "type": "`object`[]",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "context",
    "type": "[PricingContext](../../types/interfaces/types.PricingContext.mdx)",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;Map&#60;string, [ProductVariantPricing](../../medusa/types/medusa.ProductVariantPricing.mdx)&#62;&#62;",
    "optional": false,
    "defaultValue": "",
    "description": "",
    "expandable": false,
    "children": []
  }
]} />

___

### getProductVariantsPricing

Gets the prices for a collection of variants.

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "data",
    "type": "`object`[]",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "context",
    "type": "[PriceSelectionContext](../../medusa/types/medusa.PriceSelectionContext.mdx) \\| [PricingContext](../../types/interfaces/types.PricingContext.mdx)",
    "description": "the price selection context to use",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;object&#62;",
    "optional": false,
    "defaultValue": "",
    "description": "The product variant prices",
    "expandable": false,
    "children": []
  }
]} />

___

### getShippingOptionPricing

Gets the prices for a shipping option.

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "shippingOption",
    "type": "[ShippingOption](../../entities/classes/entities.ShippingOption.mdx)",
    "description": "the shipping option to get prices for",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "context",
    "type": "[PriceSelectionContext](../../medusa/types/medusa.PriceSelectionContext.mdx) \\| [PricingContext](../../types/interfaces/types.PricingContext.mdx)",
    "description": "the price selection context to use",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;[PricedShippingOption](../../medusa/types/medusa.PricedShippingOption.mdx)&#62;",
    "optional": false,
    "defaultValue": "",
    "description": "The shipping option prices",
    "expandable": false,
    "children": []
  }
]} />

___

### setAdminProductPricing

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "products",
    "type": "[Product](../../entities/classes/entities.Product.mdx)[]",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;([Product](../../entities/classes/entities.Product.mdx) \\| [PricedProduct](../../medusa/types/medusa.PricedProduct.mdx))[]&#62;",
    "optional": false,
    "defaultValue": "",
    "description": "",
    "expandable": false,
    "children": []
  }
]} />

___

### setAdminVariantPricing

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "variants",
    "type": "[ProductVariant](../../entities/classes/entities.ProductVariant.mdx)[]",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "context",
    "type": "[PriceSelectionContext](../../medusa/types/medusa.PriceSelectionContext.mdx)",
    "description": "",
    "optional": false,
    "defaultValue": "{}",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;[PricedVariant](../../medusa/types/medusa.PricedVariant.mdx)[]&#62;",
    "optional": false,
    "defaultValue": "",
    "description": "",
    "expandable": false,
    "children": []
  }
]} />

___

### setProductPrices

Set additional prices on a list of products.

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "products",
    "type": "[Product](../../entities/classes/entities.Product.mdx)[]",
    "description": "list of products on which to set additional prices",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "context",
    "type": "[PriceSelectionContext](../../medusa/types/medusa.PriceSelectionContext.mdx)",
    "description": "the price selection context to use",
    "optional": false,
    "defaultValue": "{}",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;([Product](../../entities/classes/entities.Product.mdx) \\| [PricedProduct](../../medusa/types/medusa.PricedProduct.mdx))[]&#62;",
    "optional": false,
    "defaultValue": "",
    "description": "A list of products with variants decorated with prices",
    "expandable": false,
    "children": []
  }
]} />

___

### setShippingOptionPrices

Set additional prices on a list of shipping options.

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "shippingOptions",
    "type": "[ShippingOption](../../entities/classes/entities.ShippingOption.mdx)[]",
    "description": "list of shipping options on which to set additional prices",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "context",
    "type": "Omit&#60;[PriceSelectionContext](../../medusa/types/medusa.PriceSelectionContext.mdx), \"region_id\"&#62;",
    "description": "the price selection context to use",
    "optional": false,
    "defaultValue": "{}",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;[PricedShippingOption](../../medusa/types/medusa.PricedShippingOption.mdx)[]&#62;",
    "optional": false,
    "defaultValue": "",
    "description": "A list of shipping options with prices",
    "expandable": false,
    "children": []
  }
]} />

___

### setVariantPrices

Set additional prices on a list of product variants.

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "variants",
    "type": "[ProductVariant](../../entities/classes/entities.ProductVariant.mdx)[]",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "context",
    "type": "[PriceSelectionContext](../../medusa/types/medusa.PriceSelectionContext.mdx)",
    "description": "the price selection context to use",
    "optional": false,
    "defaultValue": "{}",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "Promise",
    "type": "Promise&#60;[PricedVariant](../../medusa/types/medusa.PricedVariant.mdx)[]&#62;",
    "optional": false,
    "defaultValue": "",
    "description": "A list of products with variants decorated with prices",
    "expandable": false,
    "children": []
  }
]} />

___

### shouldRetryTransaction\_

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "err",
    "type": "`Record<string, unknown>` \\| `object`",
    "description": "",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "boolean",
    "type": "`boolean`",
    "optional": true,
    "defaultValue": "",
    "description": "",
    "expandable": false,
    "children": []
  }
]} />

___

### withTransaction

#### Parameters

<ParameterTypes parameters={[
  {
    "name": "transactionManager",
    "type": "`EntityManager`",
    "description": "",
    "optional": true,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />

#### Returns

<ParameterTypes parameters={[
  {
    "name": "PricingService",
    "type": "`object`",
    "description": "Allows retrieval of prices.",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} />
