Class: ProductVariantService
Hierarchy
TransactionBaseService
↳
ProductVariantService
Constructors
constructor
• new ProductVariantService(__namedParameters
)
Parameters
Name | Type |
---|---|
__namedParameters | Object |
Overrides
TransactionBaseService.constructor
Defined in
packages/medusa/src/services/product-variant.ts:72
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
cartRepository_
• Protected
Readonly
cartRepository_: typeof CartRepository
Defined in
packages/medusa/src/services/product-variant.ts:70
eventBus_
• Protected
Readonly
eventBus_: EventBusService
Defined in
packages/medusa/src/services/product-variant.ts:64
manager_
• Protected
manager_: EntityManager
Overrides
TransactionBaseService.manager_
Defined in
packages/medusa/src/services/product-variant.ts:59
moneyAmountRepository_
• Protected
Readonly
moneyAmountRepository_: typeof MoneyAmountRepository
Defined in
packages/medusa/src/services/product-variant.ts:67
priceSelectionStrategy_
• Protected
Readonly
priceSelectionStrategy_: IPriceSelectionStrategy
Defined in
packages/medusa/src/services/product-variant.ts:66
productOptionValueRepository_
• Protected
Readonly
productOptionValueRepository_: typeof ProductOptionValueRepository
Defined in
packages/medusa/src/services/product-variant.ts:69
productRepository_
• Protected
Readonly
productRepository_: typeof ProductRepository
Defined in
packages/medusa/src/services/product-variant.ts:63
productVariantRepository_
• Protected
Readonly
productVariantRepository_: typeof ProductVariantRepository
Defined in
packages/medusa/src/services/product-variant.ts:62
regionService_
• Protected
Readonly
regionService_: RegionService
Defined in
packages/medusa/src/services/product-variant.ts:65
transactionManager_
• Protected
transactionManager_: undefined
| EntityManager
Overrides
TransactionBaseService.transactionManager_
Defined in
packages/medusa/src/services/product-variant.ts:60
Events
▪ Static
Events: Object
Type declaration
Name | Type |
---|---|
CREATED | string |
DELETED | string |
UPDATED | string |
Defined in
packages/medusa/src/services/product-variant.ts:53
Methods
addOptionValue
▸ addOptionValue(variantId
, optionId
, optionValue
): Promise
<ProductOptionValue
>
Adds option value to a variant. Fails when product with variant does not exist or if that product does not have an option with the given option id. Fails if given variant is not found. Option value must be of type string or number.
Parameters
Name | Type | Description |
---|---|---|
variantId | string | the variant to decorate. |
optionId | string | the option from product. |
optionValue | string | option value to add. |
Returns
Promise
<ProductOptionValue
>
the result of the update operation.
Defined in
packages/medusa/src/services/product-variant.ts:823
addOrUpdateCurrencyPrices
▸ addOrUpdateCurrencyPrices(data
): Promise
<void
>
Parameters
Name | Type |
---|---|
data | { price : WithRequiredProperty <ProductVariantPrice , "currency_code" > ; variantId : string }[] |
Returns
Promise
<void
>
Defined in
packages/medusa/src/services/product-variant.ts:613
addOrUpdateRegionPrices
▸ addOrUpdateRegionPrices(data
): Promise
<void
>
Parameters
Name | Type |
---|---|
data | UpdateVariantRegionPriceData [] |
Returns
Promise
<void
>
Defined in
packages/medusa/src/services/product-variant.ts:542
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
create
▸ create(productOrProductId
, variant
): Promise
<ProductVariant
>
Creates an unpublished product variant. Will validate against parent product to ensure that the variant can in fact be created.
Parameters
Name | Type | Description |
---|---|---|
productOrProductId | string | Product | the product the variant will be added to |
variant | CreateProductVariantInput | the variant to create |
Returns
Promise
<ProductVariant
>
resolves to the creation result.
Defined in
packages/medusa/src/services/product-variant.ts:167
delete
▸ delete(variantIds
): Promise
<void
>
Deletes variant or variants. Will never fail due to delete being idempotent.
Parameters
Name | Type | Description |
---|---|---|
variantIds | string | string [] | the id of the variant to delete. Must be castable as an ObjectId |
Returns
Promise
<void
>
empty promise
Defined in
packages/medusa/src/services/product-variant.ts:976
deleteOptionValue
▸ deleteOptionValue(variantId
, optionId
): Promise
<void
>
Deletes option value from given variant. Will never fail due to delete being idempotent.
Parameters
Name | Type | Description |
---|---|---|
variantId | string | the variant to decorate. |
optionId | string | the option from product. |
Returns
Promise
<void
>
empty promise
Defined in
packages/medusa/src/services/product-variant.ts:850
getFreeTextQueryBuilder_
▸ getFreeTextQueryBuilder_(variantRepo
, query
, q?
): SelectQueryBuilder
<ProductVariant
>
Lists variants based on the provided parameters and includes the count of variants that match the query.
Parameters
Name | Type | Description |
---|---|---|
variantRepo | ProductVariantRepository | the variant repository |
query | FindWithRelationsOptions | object that defines the scope for what should be returned |
q? | string | free text query |
Returns
SelectQueryBuilder
<ProductVariant
>
an array containing the products as the first element and the total count of products that matches the query as the second element.
Defined in
packages/medusa/src/services/product-variant.ts:1078
getRegionPrice
▸ getRegionPrice(variantId
, context
): Promise
<null
| number
>
Gets the price specific to a region. If no region specific money amount exists the function will try to use a currency price. If no default currency price exists the function will throw an error.
Parameters
Name | Type | Description |
---|---|---|
variantId | string | the id of the variant to get price from |
context | GetRegionPriceContext | context for getting region price |
Returns
Promise
<null
| number
>
the price specific to the region
Defined in
packages/medusa/src/services/product-variant.ts:697
isVariantInSalesChannels
▸ isVariantInSalesChannels(id
, salesChannelIds
): Promise
<boolean
>
Check if the variant is assigned to at least one of the provided sales channels.
Parameters
Name | Type | Description |
---|---|---|
id | string | product variant id |
salesChannelIds | string [] | an array of sales channel ids |
Returns
Promise
<boolean
>
Defined in
packages/medusa/src/services/product-variant.ts:1016
list
▸ list(selector
, config?
): Promise
<ProductVariant
[]>
Parameters
Name | Type | Description |
---|---|---|
selector | FilterableProductVariantProps | the query object for find |
config | FindConfig <ProductVariant > & PriceSelectionContext | query config object for variant retrieval |
Returns
Promise
<ProductVariant
[]>
the result of the find operation
Defined in
packages/medusa/src/services/product-variant.ts:918
listAndCount
▸ listAndCount(selector
, config?
): Promise
<[ProductVariant
[], number
]>
Parameters
Name | Type | Description |
---|---|---|
selector | FilterableProductVariantProps | the query object for find |
config | FindConfig <ProductVariant > & PriceSelectionContext | query config object for variant retrieval |
Returns
Promise
<[ProductVariant
[], number
]>
the result of the find operation
Defined in
packages/medusa/src/services/product-variant.ts:877
prepareListQuery_
▸ prepareListQuery_(selector
, config
): Object
Creates a query object to be used for list queries.
Parameters
Name | Type | Description |
---|---|---|
selector | FilterableProductVariantProps | the selector to create the query from |
config | FindConfig <ProductVariant > | the config to use for the query |
Returns
Object
an object containing the query, relations and free-text search param.
Name | Type |
---|---|
q? | string |
query | FindWithRelationsOptions |
relations | string [] |
Defined in
packages/medusa/src/services/product-variant.ts:1039
retrieve
▸ retrieve(variantId
, config?
): Promise
<ProductVariant
>
Gets a product variant by id.
Parameters
Name | Type | Description |
---|---|---|
variantId | string | the id of the product to get. |
config | FindConfig <ProductVariant > & PriceSelectionContext | query config object for variant retrieval. |
Returns
Promise
<ProductVariant
>
the product document.
Defined in
packages/medusa/src/services/product-variant.ts:103
retrieveBySKU
▸ retrieveBySKU(sku
, config?
): Promise
<ProductVariant
>
Gets a product variant by id.
Parameters
Name | Type | Description |
---|---|---|
sku | string | The unique stock keeping unit used to identify the product variant. |
config | FindConfig <ProductVariant > & PriceSelectionContext | query config object for variant retrieval. |
Returns
Promise
<ProductVariant
>
the product document.
Defined in
packages/medusa/src/services/product-variant.ts:131
setCurrencyPrice
▸ setCurrencyPrice(variantId
, price
): Promise
<MoneyAmount
>
Deprecated
use addOrUpdateCurrencyPrices instead Sets the default price for the given currency.
Parameters
Name | Type | Description |
---|---|---|
variantId | string | the id of the variant to set prices for |
price | ProductVariantPrice | the price for the variant |
Returns
Promise
<MoneyAmount
>
the result of the update operation
Defined in
packages/medusa/src/services/product-variant.ts:764
setRegionPrice
▸ setRegionPrice(variantId
, price
): Promise
<MoneyAmount
>
Deprecated
use addOrUpdateRegionPrices instead Sets the default price of a specific region
Parameters
Name | Type | Description |
---|---|---|
variantId | string | the id of the variant to update |
price | ProductVariantPrice | the price for the variant. |
Returns
Promise
<MoneyAmount
>
the result of the update operation
Defined in
packages/medusa/src/services/product-variant.ts:727
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
update
▸ update(variantData
): Promise
<ProductVariant
[]>
Updates a collection of variant.
Parameters
Name | Type | Description |
---|---|---|
variantData | { updateData : UpdateProductVariantInput ; variant : ProductVariant }[] | a collection of variant and the data to update. |
Returns
Promise
<ProductVariant
[]>
resolves to the update result.
Defined in
packages/medusa/src/services/product-variant.ts:264
▸ update(variantOrVariantId
, update
): Promise
<ProductVariant
>
Updates a variant. Price updates should use dedicated methods. The function will throw, if price updates are attempted.
Parameters
Name | Type | Description |
---|---|---|
variantOrVariantId | string | Partial <ProductVariant > | variant or id of a variant. |
update | UpdateProductVariantInput | an object with the update values. |
Returns
Promise
<ProductVariant
>
resolves to the update result.
Defined in
packages/medusa/src/services/product-variant.ts:279
▸ update(variantOrVariantId
, update
): Promise
<ProductVariant
>
Parameters
Name | Type |
---|---|
variantOrVariantId | string | Partial <ProductVariant > |
update | UpdateProductVariantInput |
Returns
Promise
<ProductVariant
>
Defined in
packages/medusa/src/services/product-variant.ts:284
updateBatch
▸ Protected
updateBatch(variantData
): Promise
<ProductVariant
[]>
Parameters
Name | Type |
---|---|
variantData | UpdateProductVariantData [] |
Returns
Promise
<ProductVariant
[]>
Defined in
packages/medusa/src/services/product-variant.ts:340
updateOptionValue
▸ updateOptionValue(variantId
, optionId
, optionValue
): Promise
<ProductOptionValue
>
Updates variant's option value. Option value must be of type string or number.
Parameters
Name | Type | Description |
---|---|---|
variantId | string | the variant to decorate. |
optionId | string | the option from product. |
optionValue | string | option value to add. |
Returns
Promise
<ProductOptionValue
>
the result of the update operation.
Defined in
packages/medusa/src/services/product-variant.ts:785
updateVariantPrices
▸ updateVariantPrices(data
): Promise
<void
>
Updates variant/prices collection. Deletes any prices that are not in the update object, and is not associated with a price list.
Parameters
Name | Type |
---|---|
data | UpdateVariantPricesData [] |
Returns
Promise
<void
>
empty promise
Defined in
packages/medusa/src/services/product-variant.ts:440
▸ updateVariantPrices(variantId
, prices
): Promise
<void
>
Updates a variant's prices. Deletes any prices that are not in the update object, and is not associated with a price list.
Parameters
Name | Type | Description |
---|---|---|
variantId | string | the id of variant |
prices | ProductVariantPrice [] | the update prices |
Returns
Promise
<void
>
empty promise
Defined in
packages/medusa/src/services/product-variant.ts:449
updateVariantPricesBatch
▸ Protected
updateVariantPricesBatch(data
): Promise
<void
>
Parameters
Name | Type |
---|---|
data | UpdateVariantPricesData [] |
Returns
Promise
<void
>
Defined in
packages/medusa/src/services/product-variant.ts:469
withTransaction
▸ withTransaction(transactionManager?
): ProductVariantService
Parameters
Name | Type |
---|---|
transactionManager? | EntityManager |
Returns
Inherited from
TransactionBaseService.withTransaction
Defined in
packages/medusa/src/interfaces/transaction-base-service.ts:14