Files
medusa-store/docs/content/references/services/classes/PricingService.md
Shahed Nasser 6f1b49af03 chore: merge docs from master to develop (#3650)
* Fix issue on fixed total amount discount when using includes tax (#3472)

The calculation of the fixed discount amount breaks when having includes_tax setting active, due to the line item totals are incorrect and returning everything as 0, thus the totalItemPercentage will be Infinitiy due to the division by a subtotal of 0

* chore: Add missing changeset for @medusajs/medusa

* feat(medusa): Improve performance of Products domain (#3417)

* feat(medusa): Improve product update performances

* fix tests and update

* update mock repo

* improve repo

* cleanup

* fix

* cleanup + bulk emit + unit test fix

* improvements

* improve

* fix unit tests

* fix export

* fix product update handler

* enhance mock repo

* fix import integration

* fix end point tests

* revert mock repo product variant

* fix unit

* cleanup

* cleanup

* address feedback

* fix quotes in tests

* address feedback

* Create new-tips-mate.md

* use types

* chore: Remove integration-tests from changeset

* chore(release): v1.7.14

* chore(docs): Generated Docs Announcement Bar (automated) (#3489)

Co-authored-by: olivermrbl <olivermrbl@users.noreply.github.com>

* fix(medusa): EventBusService.emit using Redis mock (#3491)

* Fix eventBusService.emit using redis mock

* revert gitignore

* enqueuer

* unit test add redis_url

* fix test

* chore(docs): Generated Services Reference (automated) (#3490)

Co-authored-by: olivermrbl <olivermrbl@users.noreply.github.com>

* docs: publish restructure (#3496)

* docs: added features and guides overview page

* added image

* added version 2

* added version 3

* added version 4

* docs: implemented new color scheme

* docs: redesigned sidebar (#3193)

* docs: redesigned navbar for restructure (#3199)

* docs: redesigned footer (#3209)

* docs: redesigned cards (#3230)

* docs: redesigned admonitions (#3231)

* docs: redesign announcement bar (#3236)

* docs: redesigned large cards (#3239)

* docs: redesigned code blocks (#3253)

* docs: redesigned search modal and page (#3264)

* docs: redesigned doc footer (#3268)

* docs: added new sidebars + refactored css and assets (#3279)

* docs: redesigned api reference sidebar

* docs: refactored css

* docs: added code tabs transition

* docs: added new sidebars

* removed unused assets

* remove unusued assets

* Fix deploy errors

* fix incorrect link

* docs: fixed code responsivity + missing icons (#3283)

* docs: changed icons (#3296)

* docs: design fixes to the sidebar (#3297)

* redesign fixes

* docs: small design fixes

* docs: several design fixes after restructure (#3299)

* docs: bordered icon fixes

* docs: desgin fixes

* fixes to code blocks and sidebar scroll

* design adjustments

* docs: restructured homepage (#3305)

* docs: restructured homepage

* design fixes

* fixed core concepts icon

* docs: added core concepts page (#3318)

* docs: restructured homepage

* design fixes

* docs: added core concepts page

* changed text of different components

* docs: added architecture link

* added missing prop for user guide

* docs: added regions overview page (#3327)

* docs: added regions overview

* moved region pages to new structure

* docs: fixed description of regions architecture page

* small changes

* small fix

* docs: added customers overview page (#3331)

* docs: added regions overview

* moved region pages to new structure

* docs: fixed description of regions architecture page

* small changes

* small fix

* docs: added customers overview page

* fix link

* resolve link issues

* docs: updated regions architecture image

* docs: second-iteration fixes (#3347)

* docs: redesigned document

* design fixes

* docs: added products overview page (#3354)

* docs: added carts overview page (#3363)

* docs: added orders overview (#3364)

* docs: added orders overview

* added links in overview

* docs: added vercel redirects

* docs: added soon badge for cards (#3389)

* docs: resolved feedback changes + organized troubleshooting pages (#3409)

* docs: resolved feedback changes

* added extra line

* docs: changed icons for restructure (#3421)

* docs: added taxes overview page (#3422)

* docs: added taxes overview page

* docs: fix sidebar label

* added link to taxes overview page

* fixed link

* docs: fixed sidebar scroll (#3429)

* docs: added discounts overview (#3432)

* docs: added discounts overview

* fixed links

* docs: added gift cards overview (#3433)

* docs: added price lists overview page (#3440)

* docs: added price lists overview page

* fixed links

* docs: added sales channels overview page (#3441)

* docs: added sales overview page

* fixed links

* docs: added users overview (#3443)

* docs: fixed sidebar border height (#3444)

* docs: fixed sidebar border height

* fixed svg markup

* docs: added possible solutions to feedback component (#3449)

* docs: added several overview pages + restructured files (#3463)

* docs: added several overview pages

* fixed links

* docs: added feature flags + PAK overview pages (#3464)

* docs: added feature flags + PAK overview pages

* fixed links

* fix link

* fix link

* fixed links colors

* docs: added strategies overview page (#3468)

* docs: automated upgrade guide (#3470)

* docs: automated upgrade guide

* fixed vercel redirect

* docs: restructured files in docs codebase (#3475)

* docs: restructured files

* docs: fixed eslint exception

* docs: finished restructure loose-ends (#3493)

* fixed uses of backend

* docs: finished loose ends

* eslint fixes

* fixed links

* merged master

* added update instructions for v1.7.12

* docs: fixed discount details (#3499)

* docs: fix trailing slash causing 404 (#3508)

* docs: fix error during navigation (#3509)

* docs: removed the gatsby storefront guide (#3527)

* docs: removed the gatsby storefront guide

* docs: fixed query value

* chore(docs): Removed Docs Announcement Bar (automated) (#3536)

Co-authored-by: shahednasser <shahednasser@users.noreply.github.com>

* fix(medusa): Variant update should include the id for the listeners to be able to identify the entity (#3539)

* fix(medusa): Variant update should include the id for the listeners to be able to identify the entity

* fix unit tests

* Create brave-seahorses-film.md

* docs: fix admin redirects (#3548)

* chore(release): v1.7.15

* chore(docs): Generated Docs Announcement Bar (automated) (#3550)

Co-authored-by: olivermrbl <olivermrbl@users.noreply.github.com>

* chore(docs): Generated Services Reference (automated) (#3551)

Automated changes by [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>

* chore: updated READMEs of plugins (#3546)

* chore: updated READMEs of plugins

* added notice to plugins

* docs: added a deploy guide for next.js storefront (#3558)

* docs: added a deploy next.js guide

* docs: fix image zoom

* docs: fixes to next.js deployment guide to vercel (#3562)

* chore(workflows): Enable manual workflow in pre-release mode (#3566)

* chore(docs): Removed Docs Announcement Bar (automated) (#3598)

Co-authored-by: shahednasser <shahednasser@users.noreply.github.com>

* fix(medusa): Rounding issues on line item adjustments (#3446)

* chores(medusa): Attempt to fix discount rounding issues

* add migration

* update entities

* apply multipler factor properly

* fix discount service

* WIP

* fix rounding issues in discounts

* fix some tests

* Exclude raw_discount_total from responses

* fix adjustments

* cleanup response

* fix

* fix draft order integration

* fix order integration

* fix order integration

* address feedback

* fix test

* Create .changeset/polite-llamas-sit.md

* remove comment

---------

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>

* chore(workflows): Add release notification (#3629)

---------

Co-authored-by: pepijn-vanvlaanderen <pepijn@webbers.com>
Co-authored-by: olivermrbl <oliver@mrbltech.com>
Co-authored-by: Adrien de Peretti <adrien.deperetti@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: olivermrbl <olivermrbl@users.noreply.github.com>
Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
Co-authored-by: shahednasser <shahednasser@users.noreply.github.com>
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2023-03-31 09:34:38 +02:00

14 KiB

Class: PricingService

Allows retrieval of prices.

Hierarchy

  • TransactionBaseService

    PricingService

Constructors

constructor

new PricingService(__namedParameters)

Parameters

Name Type
__namedParameters InjectedDependencies

Overrides

TransactionBaseService.constructor

Defined in

packages/medusa/src/services/pricing.ts:44

Properties

__configModule__

Protected Optional Readonly __configModule__: Record<string, unknown>

Inherited from

TransactionBaseService.__configModule__

Defined in

packages/medusa/src/interfaces/transaction-base-service.ts:10


__container__

Protected Readonly __container__: any

Inherited from

TransactionBaseService.__container__

Defined in

packages/medusa/src/interfaces/transaction-base-service.ts:9


__moduleDeclaration__

Protected Optional Readonly __moduleDeclaration__: Record<string, unknown>

Inherited from

TransactionBaseService.__moduleDeclaration__

Defined in

packages/medusa/src/interfaces/transaction-base-service.ts:11


featureFlagRouter

Protected Readonly featureFlagRouter: FlagRouter

Defined in

packages/medusa/src/services/pricing.ts:42


manager_

Protected manager_: EntityManager

Overrides

TransactionBaseService.manager_

Defined in

packages/medusa/src/services/pricing.ts:36


priceSelectionStrategy

Protected Readonly priceSelectionStrategy: IPriceSelectionStrategy

Defined in

packages/medusa/src/services/pricing.ts:40


productVariantService

Protected Readonly productVariantService: ProductVariantService

Defined in

packages/medusa/src/services/pricing.ts:41


regionService

Protected Readonly regionService: RegionService

Defined in

packages/medusa/src/services/pricing.ts:38


taxProviderService

Protected Readonly taxProviderService: TaxProviderService

Defined in

packages/medusa/src/services/pricing.ts:39


transactionManager_

Protected transactionManager_: undefined | EntityManager

Overrides

TransactionBaseService.transactionManager_

Defined in

packages/medusa/src/services/pricing.ts:37

Methods

atomicPhase_

Protected atomicPhase_<TResult, TError>(work, isolationOrErrorHandler?, maybeErrorHandlerOrDontFail?): Promise<TResult>

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

Name
TResult
TError

Parameters

Name Type Description
work (transactionManager: EntityManager) => Promise<TResult> the transactional work to be done
isolationOrErrorHandler? IsolationLevel | (error: TError) => Promise<void | TResult> the isolation level to be used for the work.
maybeErrorHandlerOrDontFail? (error: TError) => Promise<void | TResult> Potential error handler

Returns

Promise<TResult>

the result of the transactional work

Inherited from

TransactionBaseService.atomicPhase_

Defined in

packages/medusa/src/interfaces/transaction-base-service.ts:50


calculateTaxes

calculateTaxes(variantPricing, productRates): Promise<TaxedPricing>

Gets the prices for a product variant

Parameters

Name Type Description
variantPricing ProductVariantPricing the prices retrieved from a variant
productRates TaxServiceRate[] the tax rates that the product has applied

Returns

Promise<TaxedPricing>

The tax related variant prices.

Defined in

packages/medusa/src/services/pricing.ts:105


collectPricingContext

collectPricingContext(context): Promise<PricingContext>

Collects additional information neccessary for completing the price selection.

Parameters

Name Type Description
context PriceSelectionContext the price selection context to use

Returns

Promise<PricingContext>

The pricing context

Defined in

packages/medusa/src/services/pricing.ts:69


getProductPricing

getProductPricing(product, context): Promise<Record<string, ProductVariantPricing>>

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

Parameters

Name Type Description
product Pick<Product, "id" | "variants"> the product to get pricing for.
context PriceSelectionContext the price selection context to use

Returns

Promise<Record<string, ProductVariantPricing>>

A map of variant ids to their corresponding prices

Defined in

packages/medusa/src/services/pricing.ts:389


getProductPricingById

getProductPricingById(productId, context): Promise<Record<string, ProductVariantPricing>>

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

Parameters

Name Type Description
productId string the id of the product to get prices for
context PriceSelectionContext the price selection context to use

Returns

Promise<Record<string, ProductVariantPricing>>

A map of variant ids to their corresponding prices

Defined in

packages/medusa/src/services/pricing.ts:407


getProductPricing_

Private getProductPricing_(productId, variants, context): Promise<Record<string, ProductVariantPricing>>

Parameters

Name Type
productId string
variants ProductVariant[]
context PricingContext

Returns

Promise<Record<string, ProductVariantPricing>>

Defined in

packages/medusa/src/services/pricing.ts:351


getProductVariantPricing

getProductVariantPricing(variant, context): Promise<ProductVariantPricing>

Gets the prices for a product variant.

Parameters

Name Type Description
variant Pick<ProductVariant, "id" | "product_id"> the id of the variant to get prices for
context PriceSelectionContext | PricingContext the price selection context to use

Returns

Promise<ProductVariantPricing>

The product variant prices

Defined in

packages/medusa/src/services/pricing.ts:214


getProductVariantPricingById

getProductVariantPricingById(variantId, context): Promise<ProductVariantPricing>

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

Deprecated

Use getProductVariantsPricing instead.

Parameters

Name Type Description
variantId string the id of the variant to get prices for
context PriceSelectionContext | PricingContext the price selection context to use

Returns

Promise<ProductVariantPricing>

The product variant prices

Defined in

packages/medusa/src/services/pricing.ts:253


getProductVariantPricing_

Private getProductVariantPricing_(variantId, taxRates, context): Promise<ProductVariantPricing>

Parameters

Name Type
variantId string
taxRates TaxServiceRate[]
context PricingContext

Returns

Promise<ProductVariantPricing>

Defined in

packages/medusa/src/services/pricing.ts:167


getProductVariantsPricing

getProductVariantsPricing<T, TOutput>(variantIds, context): Promise<TOutput>

Gets the prices for a collection of variants.

Type parameters

Name Type
T string | string[]
TOutput T extends string ? ProductVariantPricing : { [variant_id: string]: ProductVariantPricing; }

Parameters

Name Type Description
variantIds T the id of the variants to get the prices for
context PriceSelectionContext | PricingContext the price selection context to use

Returns

Promise<TOutput>

The product variant prices

Defined in

packages/medusa/src/services/pricing.ts:294


getShippingOptionPricing

getShippingOptionPricing(shippingOption, context): Promise<PricedShippingOption>

Gets the prices for a shipping option.

Parameters

Name Type Description
shippingOption ShippingOption the shipping option to get prices for
context PriceSelectionContext | PricingContext the price selection context to use

Returns

Promise<PricedShippingOption>

The shipping option prices

Defined in

packages/medusa/src/services/pricing.ts:493


setProductPrices

setProductPrices(products, context?): Promise<(Product | PricedProduct)[]>

Set additional prices on a list of products.

Parameters

Name Type Description
products Product[] list of products on which to set additional prices
context PriceSelectionContext the price selection context to use

Returns

Promise<(Product | PricedProduct)[]>

A list of products with variants decorated with prices

Defined in

packages/medusa/src/services/pricing.ts:450


setShippingOptionPrices

setShippingOptionPrices(shippingOptions, context?): Promise<PricedShippingOption[]>

Set additional prices on a list of shipping options.

Parameters

Name Type Description
shippingOptions ShippingOption[] list of shipping options on which to set additional prices
context Omit<PriceSelectionContext, "region_id"> the price selection context to use

Returns

Promise<PricedShippingOption[]>

A list of shipping options with prices

Defined in

packages/medusa/src/services/pricing.ts:555


setVariantPrices

setVariantPrices(variants, context): Promise<PricedVariant[]>

Set additional prices on a list of product variants.

Parameters

Name Type Description
variants ProductVariant[] list of variants on which to set additional prices
context PriceSelectionContext the price selection context to use

Returns

Promise<PricedVariant[]>

A list of products with variants decorated with prices

Defined in

packages/medusa/src/services/pricing.ts:425


shouldRetryTransaction_

Protected shouldRetryTransaction_(err): boolean

Parameters

Name Type
err Record<string, unknown> | { code: string }

Returns

boolean

Inherited from

TransactionBaseService.shouldRetryTransaction_

Defined in

packages/medusa/src/interfaces/transaction-base-service.ts:31


withTransaction

withTransaction(transactionManager?): PricingService

Parameters

Name Type
transactionManager? EntityManager

Returns

PricingService

Inherited from

TransactionBaseService.withTransaction

Defined in

packages/medusa/src/interfaces/transaction-base-service.ts:14