Skip to main content

Class: ProductService

Hierarchy

  • TransactionBaseServiceCopy to Clipboard

    ProductServiceCopy to Clipboard

Constructors

constructor

new ProductService(__namedParametersCopy to Clipboard)

Parameters

NameType
__namedParametersCopy to ClipboardInjectedDependenciesCopy to Clipboard

Overrides

TransactionBaseService.constructor

Defined in

packages/medusa/src/services/product.ts:78

Properties

__configModule__

ProtectedCopy to Clipboard OptionalCopy to Clipboard ReadonlyCopy to Clipboard __configModule__: RecordCopy to Clipboard<stringCopy to Clipboard, unknownCopy to Clipboard>

Inherited from

TransactionBaseService.__configModule__

Defined in

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


__container__

ProtectedCopy to Clipboard ReadonlyCopy to Clipboard __container__: anyCopy to Clipboard

Inherited from

TransactionBaseService.__container__

Defined in

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


__moduleDeclaration__

ProtectedCopy to Clipboard OptionalCopy to Clipboard ReadonlyCopy to Clipboard __moduleDeclaration__: RecordCopy to Clipboard<stringCopy to Clipboard, unknownCopy to Clipboard>

Inherited from

TransactionBaseService.__moduleDeclaration__

Defined in

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


eventBus_

ProtectedCopy to Clipboard ReadonlyCopy to Clipboard eventBus_: EventBusServiceCopy to Clipboard

Defined in

packages/medusa/src/services/product.ts:68


featureFlagRouter_

ProtectedCopy to Clipboard ReadonlyCopy to Clipboard featureFlagRouter_: FlagRouterCopy to Clipboard

Defined in

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


imageRepository_

ProtectedCopy to Clipboard ReadonlyCopy to Clipboard imageRepository_: typeof ImageRepositoryCopy to Clipboard

Defined in

packages/medusa/src/services/product.ts:63


manager_

ProtectedCopy to Clipboard manager_: EntityManagerCopy to Clipboard

Overrides

TransactionBaseService.manager_

Defined in

packages/medusa/src/services/product.ts:55


productCategoryRepository_

ProtectedCopy to Clipboard ReadonlyCopy to Clipboard productCategoryRepository_: typeof ProductCategoryRepositoryCopy to Clipboard

Defined in

packages/medusa/src/services/product.ts:65


productOptionRepository_

ProtectedCopy to Clipboard ReadonlyCopy to Clipboard productOptionRepository_: typeof ProductOptionRepositoryCopy to Clipboard

Defined in

packages/medusa/src/services/product.ts:58


productRepository_

ProtectedCopy to Clipboard ReadonlyCopy to Clipboard productRepository_: typeof ProductRepositoryCopy to Clipboard

Defined in

packages/medusa/src/services/product.ts:59


productTagRepository_

ProtectedCopy to Clipboard ReadonlyCopy to Clipboard productTagRepository_: typeof ProductTagRepositoryCopy to Clipboard

Defined in

packages/medusa/src/services/product.ts:62


productTypeRepository_

ProtectedCopy to Clipboard ReadonlyCopy to Clipboard productTypeRepository_: typeof ProductTypeRepositoryCopy to Clipboard

Defined in

packages/medusa/src/services/product.ts:61


productVariantRepository_

ProtectedCopy to Clipboard ReadonlyCopy to Clipboard productVariantRepository_: typeof ProductVariantRepositoryCopy to Clipboard

Defined in

packages/medusa/src/services/product.ts:60


productVariantService_

ProtectedCopy to Clipboard ReadonlyCopy to Clipboard productVariantService_: ProductVariantServiceCopy to Clipboard

Defined in

packages/medusa/src/services/product.ts:66


searchService_

ProtectedCopy to Clipboard ReadonlyCopy to Clipboard searchService_: SearchServiceCopy to Clipboard

Defined in

packages/medusa/src/services/product.ts:67


transactionManager_

ProtectedCopy to Clipboard transactionManager_: undefinedCopy to Clipboard | EntityManagerCopy to Clipboard

Overrides

TransactionBaseService.transactionManager_

Defined in

packages/medusa/src/services/product.ts:56


Events

StaticCopy to Clipboard ReadonlyCopy to Clipboard Events: ObjectCopy to Clipboard

Type declaration

NameType
CREATEDCopy to ClipboardstringCopy to Clipboard
DELETEDCopy to ClipboardstringCopy to Clipboard
UPDATEDCopy to ClipboardstringCopy to Clipboard

Defined in

packages/medusa/src/services/product.ts:72


IndexName

StaticCopy to Clipboard ReadonlyCopy to Clipboard IndexName: "products"Copy to Clipboard

Defined in

packages/medusa/src/services/product.ts:71

Methods

addOption

addOption(productIdCopy to Clipboard, optionTitleCopy to Clipboard): PromiseCopy to Clipboard<ProductCopy to Clipboard>

Adds an option to a product. Options can, for example, be "Size", "Color", etc. Will update all the products variants with a dummy value for the newly created option. The same option cannot be added more than once.

Parameters

NameTypeDescription
productIdCopy to ClipboardstringCopy to Clipboardthe product to apply the new option to
optionTitleCopy to ClipboardstringCopy to Clipboardthe display title of the option, e.g. "Size"

Returns

PromiseCopy to Clipboard<ProductCopy to Clipboard>

the result of the model update operation

Defined in

packages/medusa/src/services/product.ts:646


atomicPhase_

ProtectedCopy to Clipboard atomicPhase_<TResultCopy to Clipboard, TErrorCopy to Clipboard>(workCopy to Clipboard, isolationOrErrorHandler?Copy to Clipboard, maybeErrorHandlerOrDontFail?Copy to Clipboard): PromiseCopy to Clipboard<TResultCopy to Clipboard>

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
TResultCopy to Clipboard
TErrorCopy to Clipboard

Parameters

NameTypeDescription
workCopy to Clipboard(transactionManagerCopy to Clipboard: EntityManagerCopy to Clipboard) => PromiseCopy to Clipboard<TResultCopy to Clipboard>the transactional work to be done
isolationOrErrorHandler?Copy to ClipboardIsolationLevelCopy to Clipboard | (errorCopy to Clipboard: TErrorCopy to Clipboard) => PromiseCopy to Clipboard<voidCopy to Clipboard | TResultCopy to Clipboard>the isolation level to be used for the work.
maybeErrorHandlerOrDontFail?Copy to Clipboard(errorCopy to Clipboard: TErrorCopy to Clipboard) => PromiseCopy to Clipboard<voidCopy to Clipboard | TResultCopy to Clipboard>Potential error handler

Returns

PromiseCopy to Clipboard<TResultCopy to Clipboard>

the result of the transactional work

Inherited from

TransactionBaseService.atomicPhase_

Defined in

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


count

count(selector?Copy to Clipboard): PromiseCopy to Clipboard<numberCopy to Clipboard>

Return the total number of documents in database

Parameters

NameTypeDescription
selectorCopy to ClipboardSelectorCopy to Clipboard<ProductCopy to Clipboard>the selector to choose products by

Returns

PromiseCopy to Clipboard<numberCopy to Clipboard>

the result of the count operation

Defined in

packages/medusa/src/services/product.ts:171


create

create(productObjectCopy to Clipboard): PromiseCopy to Clipboard<ProductCopy to Clipboard>

Creates a product.

Parameters

NameTypeDescription
productObjectCopy to ClipboardCreateProductInputCopy to Clipboardthe product to create

Returns

PromiseCopy to Clipboard<ProductCopy to Clipboard>

resolves to the creation result.

Defined in

packages/medusa/src/services/product.ts:383


delete

delete(productIdCopy to Clipboard): PromiseCopy to Clipboard<voidCopy to Clipboard>

Deletes a product from a given product id. The product's associated variants will also be deleted.

Parameters

NameTypeDescription
productIdCopy to ClipboardstringCopy to Clipboardthe id of the product to delete. Must be castable as an ObjectId

Returns

PromiseCopy to Clipboard<voidCopy to Clipboard>

empty promise

Defined in

packages/medusa/src/services/product.ts:612


deleteOption

deleteOption(productIdCopy to Clipboard, optionIdCopy to Clipboard): PromiseCopy to Clipboard<voidCopy to Clipboard | ProductCopy to Clipboard>

Delete an option from a product.

Parameters

NameTypeDescription
productIdCopy to ClipboardstringCopy to Clipboardthe product to delete an option from
optionIdCopy to ClipboardstringCopy to Clipboardthe option to delete

Returns

PromiseCopy to Clipboard<voidCopy to Clipboard | ProductCopy to Clipboard>

the updated product

Defined in

packages/medusa/src/services/product.ts:811


filterProductsBySalesChannel

filterProductsBySalesChannel(productIdsCopy to Clipboard, salesChannelIdCopy to Clipboard, config?Copy to Clipboard): PromiseCopy to Clipboard<ProductCopy to Clipboard[]>

Parameters

NameType
productIdsCopy to ClipboardstringCopy to Clipboard[]
salesChannelIdCopy to ClipboardstringCopy to Clipboard
configCopy to ClipboardFindProductConfigCopy to Clipboard

Returns

PromiseCopy to Clipboard<ProductCopy to Clipboard[]>

Defined in

packages/medusa/src/services/product.ts:306


isProductInSalesChannels

isProductInSalesChannels(idCopy to Clipboard, salesChannelIdsCopy to Clipboard): PromiseCopy to Clipboard<booleanCopy to Clipboard>

Check if the product is assigned to at least one of the provided sales channels.

Parameters

NameTypeDescription
idCopy to ClipboardstringCopy to Clipboardproduct id
salesChannelIdsCopy to ClipboardstringCopy to Clipboard[]an array of sales channel ids

Returns

PromiseCopy to Clipboard<booleanCopy to Clipboard>

Defined in

packages/medusa/src/services/product.ts:361


list

list(selectorCopy to Clipboard, config?Copy to Clipboard): PromiseCopy to Clipboard<ProductCopy to Clipboard[]>

Lists products based on the provided parameters.

Parameters

NameTypeDescription
selectorCopy to ClipboardProductSelectorCopy to Clipboardan object that defines rules to filter products by
configCopy to ClipboardFindProductConfigCopy to Clipboardobject that defines the scope for what should be returned

Returns

PromiseCopy to Clipboard<ProductCopy to Clipboard[]>

the result of the find operation

Defined in

packages/medusa/src/services/product.ts:117


listAndCount

listAndCount(selectorCopy to Clipboard, config?Copy to Clipboard): PromiseCopy to Clipboard<[ProductCopy to Clipboard[], numberCopy to Clipboard]>

Lists products based on the provided parameters and includes the count of products that match the query.

Parameters

NameTypeDescription
selectorCopy to ClipboardProductSelectorCopy to Clipboardan object that defines rules to filter products by
configCopy to ClipboardFindProductConfigCopy to Clipboardobject that defines the scope for what should be returned

Returns

PromiseCopy to Clipboard<[ProductCopy to Clipboard[], numberCopy to Clipboard]>

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.ts:141


listTagsByUsage

listTagsByUsage(count?Copy to Clipboard): PromiseCopy to Clipboard<ProductTagCopy to Clipboard[]>

Parameters

NameTypeDefault value
countCopy to ClipboardnumberCopy to Clipboard10Copy to Clipboard

Returns

PromiseCopy to Clipboard<ProductTagCopy to Clipboard[]>

Defined in

packages/medusa/src/services/product.ts:346


listTypes

listTypes(): PromiseCopy to Clipboard<ProductTypeCopy to Clipboard[]>

Returns

PromiseCopy to Clipboard<ProductTypeCopy to Clipboard[]>

Defined in

packages/medusa/src/services/product.ts:337


prepareListQuery_

ProtectedCopy to Clipboard prepareListQuery_(selectorCopy to Clipboard, configCopy to Clipboard): ObjectCopy to Clipboard

Creates a query object to be used for list queries.

Parameters

NameTypeDescription
selectorCopy to ClipboardSelectorCopy to Clipboard<ProductCopy to Clipboard> | FilterableProductPropsCopy to Clipboardthe selector to create the query from
configCopy to ClipboardFindProductConfigCopy to Clipboardthe config to use for the query

Returns

ObjectCopy to Clipboard

an object containing the query, relations and free-text search param.

NameType
qCopy to ClipboardstringCopy to Clipboard
queryCopy to ClipboardFindWithoutRelationsOptionsCopy to Clipboard
relationsCopy to Clipboardkeyof ProductCopy to Clipboard[]

Defined in

packages/medusa/src/services/product.ts:908


reorderVariants

reorderVariants(productIdCopy to Clipboard, variantOrderCopy to Clipboard): PromiseCopy to Clipboard<ProductCopy to Clipboard>

Parameters

NameType
productIdCopy to ClipboardstringCopy to Clipboard
variantOrderCopy to ClipboardstringCopy to Clipboard[]

Returns

PromiseCopy to Clipboard<ProductCopy to Clipboard>

Defined in

packages/medusa/src/services/product.ts:689


retrieve

retrieve(productIdCopy to Clipboard, config?Copy to Clipboard): PromiseCopy to Clipboard<ProductCopy to Clipboard>

Gets a product by id. Throws in case of DB Error and if product was not found.

Parameters

NameTypeDescription
productIdCopy to ClipboardstringCopy to Clipboardid of the product to get.
configCopy to ClipboardFindProductConfigCopy to Clipboardobject that defines what should be included in the query response

Returns

PromiseCopy to Clipboard<ProductCopy to Clipboard>

the result of the find one operation.

Defined in

packages/medusa/src/services/product.ts:186


retrieveByExternalId

retrieveByExternalId(externalIdCopy to Clipboard, config?Copy to Clipboard): PromiseCopy to Clipboard<ProductCopy to Clipboard>

Gets a product by external id. Throws in case of DB Error and if product was not found.

Parameters

NameTypeDescription
externalIdCopy to ClipboardstringCopy to Clipboardhandle of the product to get.
configCopy to ClipboardFindProductConfigCopy to Clipboarddetails about what to get from the product

Returns

PromiseCopy to Clipboard<ProductCopy to Clipboard>

the result of the find one operation.

Defined in

packages/medusa/src/services/product.ts:230


retrieveByHandle

retrieveByHandle(productHandleCopy to Clipboard, config?Copy to Clipboard): PromiseCopy to Clipboard<ProductCopy to Clipboard>

Gets a product by handle. Throws in case of DB Error and if product was not found.

Parameters

NameTypeDescription
productHandleCopy to ClipboardstringCopy to Clipboardhandle of the product to get.
configCopy to ClipboardFindProductConfigCopy to Clipboarddetails about what to get from the product

Returns

PromiseCopy to Clipboard<ProductCopy to Clipboard>

the result of the find one operation.

Defined in

packages/medusa/src/services/product.ts:209


retrieveOptionByTitle

retrieveOptionByTitle(titleCopy to Clipboard, productIdCopy to Clipboard): PromiseCopy to Clipboard<undefinedCopy to Clipboard | ProductOptionCopy to Clipboard>

Retrieve product's option by title.

Parameters

NameTypeDescription
titleCopy to ClipboardstringCopy to Clipboardtitle of the option
productIdCopy to ClipboardstringCopy to Clipboardid of a product

Returns

PromiseCopy to Clipboard<undefinedCopy to Clipboard | ProductOptionCopy to Clipboard>

product option

Defined in

packages/medusa/src/services/product.ts:792


retrieveVariants

retrieveVariants(productIdCopy to Clipboard, config?Copy to Clipboard): PromiseCopy to Clipboard<ProductVariantCopy to Clipboard[]>

Gets all variants belonging to a product.

Parameters

NameTypeDescription
productIdCopy to ClipboardstringCopy to Clipboardthe id of the product to get variants from.
configCopy to ClipboardFindProductConfigCopy to ClipboardThe config to select and configure relations etc...

Returns

PromiseCopy to Clipboard<ProductVariantCopy to Clipboard[]>

an array of variants

Defined in

packages/medusa/src/services/product.ts:288


retrieve_

retrieve_(selectorCopy to Clipboard, config?Copy to Clipboard): PromiseCopy to Clipboard<ProductCopy to Clipboard>

Gets a product by selector. Throws in case of DB Error and if product was not found.

Parameters

NameTypeDescription
selectorCopy to ClipboardSelectorCopy to Clipboard<ProductCopy to Clipboard>selector object
configCopy to ClipboardFindProductConfigCopy to Clipboardobject that defines what should be included in the query response

Returns

PromiseCopy to Clipboard<ProductCopy to Clipboard>

the result of the find one operation.

Defined in

packages/medusa/src/services/product.ts:252


shouldRetryTransaction_

ProtectedCopy to Clipboard shouldRetryTransaction_(errCopy to Clipboard): booleanCopy to Clipboard

Parameters

NameType
errCopy to ClipboardRecordCopy to Clipboard<stringCopy to Clipboard, unknownCopy to Clipboard> | { codeCopy to Clipboard: stringCopy to Clipboard }

Returns

booleanCopy to Clipboard

Inherited from

TransactionBaseService.shouldRetryTransaction_

Defined in

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


update

update(productIdCopy to Clipboard, updateCopy to Clipboard): PromiseCopy to Clipboard<ProductCopy to Clipboard>

Updates a product. Product variant updates should use dedicated methods, e.g. addVariantCopy to Clipboard, etc. The function will throw errors if metadata or product variant updates are attempted.

Parameters

NameTypeDescription
productIdCopy to ClipboardstringCopy to Clipboardthe id of the product. Must be a string that can be casted to an ObjectId
updateCopy to ClipboardUpdateProductInputCopy to Clipboardan object with the update values.

Returns

PromiseCopy to Clipboard<ProductCopy to Clipboard>

resolves to the update result.

Defined in

packages/medusa/src/services/product.ts:492


updateOption

updateOption(productIdCopy to Clipboard, optionIdCopy to Clipboard, dataCopy to Clipboard): PromiseCopy to Clipboard<ProductCopy to Clipboard>

Updates a product's option. Throws if the call tries to update an option not associated with the product. Throws if the updated title already exists.

Parameters

NameTypeDescription
productIdCopy to ClipboardstringCopy to Clipboardthe product whose option we are updating
optionIdCopy to ClipboardstringCopy to Clipboardthe id of the option we are updating
dataCopy to ClipboardProductOptionInputCopy to Clipboardthe data to update the option with

Returns

PromiseCopy to Clipboard<ProductCopy to Clipboard>

the updated product

Defined in

packages/medusa/src/services/product.ts:735


updateShippingProfile

updateShippingProfile(productIdsCopy to Clipboard, profileIdCopy to Clipboard): PromiseCopy to Clipboard<ProductCopy to Clipboard[]>

Parameters

NameTypeDescription
productIdsCopy to ClipboardstringCopy to Clipboard | stringCopy to Clipboard[]ID or IDs of the products to update
profileIdCopy to ClipboardstringCopy to ClipboardShipping profile ID to update the shipping options with

Returns

PromiseCopy to Clipboard<ProductCopy to Clipboard[]>

updated shipping options

Defined in

packages/medusa/src/services/product.ts:882


withTransaction

withTransaction(transactionManager?Copy to Clipboard): ProductServiceCopy to Clipboard

Parameters

NameType
transactionManager?Copy to ClipboardEntityManagerCopy to Clipboard

Returns

ProductServiceCopy to Clipboard

Inherited from

TransactionBaseService.withTransaction

Defined in

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