Class: ProductService
Hierarchy
TransactionBaseService
Copy to Clipboard↳
ProductService
Copy to Clipboard
Constructors
constructor
• new ProductService(__namedParameters
Copy to Clipboard)
Parameters
Name | Type |
---|---|
__namedParameters Copy to Clipboard | InjectedDependencies Copy to Clipboard |
Overrides
TransactionBaseService.constructor
Defined in
packages/medusa/src/services/product.ts:78
Properties
__configModule__
• Protected
Copy to Clipboard Optional
Copy to Clipboard Readonly
Copy to Clipboard __configModule__: Record
Copy to Clipboard<string
Copy to Clipboard, unknown
Copy to Clipboard>
Inherited from
TransactionBaseService.__configModule__
Defined in
packages/medusa/src/interfaces/transaction-base-service.ts:10
__container__
• Protected
Copy to Clipboard Readonly
Copy to Clipboard __container__: any
Copy to Clipboard
Inherited from
TransactionBaseService.__container__
Defined in
packages/medusa/src/interfaces/transaction-base-service.ts:9
__moduleDeclaration__
• Protected
Copy to Clipboard Optional
Copy to Clipboard Readonly
Copy to Clipboard __moduleDeclaration__: Record
Copy to Clipboard<string
Copy to Clipboard, unknown
Copy to Clipboard>
Inherited from
TransactionBaseService.__moduleDeclaration__
Defined in
packages/medusa/src/interfaces/transaction-base-service.ts:11
eventBus_
• Protected
Copy to Clipboard Readonly
Copy to Clipboard eventBus_: EventBusService
Copy to Clipboard
Defined in
packages/medusa/src/services/product.ts:68
featureFlagRouter_
• Protected
Copy to Clipboard Readonly
Copy to Clipboard featureFlagRouter_: FlagRouter
Copy to Clipboard
Defined in
packages/medusa/src/services/product.ts:69
imageRepository_
• Protected
Copy to Clipboard Readonly
Copy to Clipboard imageRepository_: typeof ImageRepository
Copy to Clipboard
Defined in
packages/medusa/src/services/product.ts:63
manager_
• Protected
Copy to Clipboard manager_: EntityManager
Copy to Clipboard
Overrides
TransactionBaseService.manager_
Defined in
packages/medusa/src/services/product.ts:55
productCategoryRepository_
• Protected
Copy to Clipboard Readonly
Copy to Clipboard productCategoryRepository_: typeof ProductCategoryRepository
Copy to Clipboard
Defined in
packages/medusa/src/services/product.ts:65
productOptionRepository_
• Protected
Copy to Clipboard Readonly
Copy to Clipboard productOptionRepository_: typeof ProductOptionRepository
Copy to Clipboard
Defined in
packages/medusa/src/services/product.ts:58
productRepository_
• Protected
Copy to Clipboard Readonly
Copy to Clipboard productRepository_: typeof ProductRepository
Copy to Clipboard
Defined in
packages/medusa/src/services/product.ts:59
productTagRepository_
• Protected
Copy to Clipboard Readonly
Copy to Clipboard productTagRepository_: typeof ProductTagRepository
Copy to Clipboard
Defined in
packages/medusa/src/services/product.ts:62
productTypeRepository_
• Protected
Copy to Clipboard Readonly
Copy to Clipboard productTypeRepository_: typeof ProductTypeRepository
Copy to Clipboard
Defined in
packages/medusa/src/services/product.ts:61
productVariantRepository_
• Protected
Copy to Clipboard Readonly
Copy to Clipboard productVariantRepository_: typeof ProductVariantRepository
Copy to Clipboard
Defined in
packages/medusa/src/services/product.ts:60
productVariantService_
• Protected
Copy to Clipboard Readonly
Copy to Clipboard productVariantService_: ProductVariantService
Copy to Clipboard
Defined in
packages/medusa/src/services/product.ts:66
searchService_
• Protected
Copy to Clipboard Readonly
Copy to Clipboard searchService_: SearchService
Copy to Clipboard
Defined in
packages/medusa/src/services/product.ts:67
transactionManager_
• Protected
Copy to Clipboard transactionManager_: undefined
Copy to Clipboard | EntityManager
Copy to Clipboard
Overrides
TransactionBaseService.transactionManager_
Defined in
packages/medusa/src/services/product.ts:56
Events
▪ Static
Copy to Clipboard Readonly
Copy to Clipboard Events: Object
Copy to Clipboard
Type declaration
Name | Type |
---|---|
CREATED Copy to Clipboard | string Copy to Clipboard |
DELETED Copy to Clipboard | string Copy to Clipboard |
UPDATED Copy to Clipboard | string Copy to Clipboard |
Defined in
packages/medusa/src/services/product.ts:72
IndexName
▪ Static
Copy to Clipboard Readonly
Copy to Clipboard IndexName: "products"
Copy to Clipboard
Defined in
packages/medusa/src/services/product.ts:71
Methods
addOption
▸ addOption(productId
Copy to Clipboard, optionTitle
Copy to Clipboard): Promise
Copy to Clipboard<Product
Copy 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
Name | Type | Description |
---|---|---|
productId Copy to Clipboard | string Copy to Clipboard | the product to apply the new option to |
optionTitle Copy to Clipboard | string Copy to Clipboard | the display title of the option, e.g. "Size" |
Returns
Promise
Copy to Clipboard<Product
Copy to Clipboard>
the result of the model update operation
Defined in
packages/medusa/src/services/product.ts:646
atomicPhase_
▸ Protected
Copy to Clipboard atomicPhase_<TResult
Copy to Clipboard, TError
Copy to Clipboard>(work
Copy to Clipboard, isolationOrErrorHandler?
Copy to Clipboard, maybeErrorHandlerOrDontFail?
Copy to Clipboard): Promise
Copy to Clipboard<TResult
Copy 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 |
---|
TResult Copy to Clipboard |
TError Copy to Clipboard |
Parameters
Name | Type | Description |
---|---|---|
work Copy to Clipboard | (transactionManager Copy to Clipboard: EntityManager Copy to Clipboard) => Promise Copy to Clipboard<TResult Copy to Clipboard> | the transactional work to be done |
isolationOrErrorHandler? Copy to Clipboard | IsolationLevel Copy to Clipboard | (error Copy to Clipboard: TError Copy to Clipboard) => Promise Copy to Clipboard<void Copy to Clipboard | TResult Copy to Clipboard> | the isolation level to be used for the work. |
maybeErrorHandlerOrDontFail? Copy to Clipboard | (error Copy to Clipboard: TError Copy to Clipboard) => Promise Copy to Clipboard<void Copy to Clipboard | TResult Copy to Clipboard> | Potential error handler |
Returns
Promise
Copy to Clipboard<TResult
Copy 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): Promise
Copy to Clipboard<number
Copy to Clipboard>
Return the total number of documents in database
Parameters
Name | Type | Description |
---|---|---|
selector Copy to Clipboard | Selector Copy to Clipboard<Product Copy to Clipboard> | the selector to choose products by |
Returns
Promise
Copy to Clipboard<number
Copy to Clipboard>
the result of the count operation
Defined in
packages/medusa/src/services/product.ts:171
create
▸ create(productObject
Copy to Clipboard): Promise
Copy to Clipboard<Product
Copy to Clipboard>
Creates a product.
Parameters
Name | Type | Description |
---|---|---|
productObject Copy to Clipboard | CreateProductInput Copy to Clipboard | the product to create |
Returns
Promise
Copy to Clipboard<Product
Copy to Clipboard>
resolves to the creation result.
Defined in
packages/medusa/src/services/product.ts:383
delete
▸ delete(productId
Copy to Clipboard): Promise
Copy to Clipboard<void
Copy to Clipboard>
Deletes a product from a given product id. The product's associated variants will also be deleted.
Parameters
Name | Type | Description |
---|---|---|
productId Copy to Clipboard | string Copy to Clipboard | the id of the product to delete. Must be castable as an ObjectId |
Returns
Promise
Copy to Clipboard<void
Copy to Clipboard>
empty promise
Defined in
packages/medusa/src/services/product.ts:612
deleteOption
▸ deleteOption(productId
Copy to Clipboard, optionId
Copy to Clipboard): Promise
Copy to Clipboard<void
Copy to Clipboard | Product
Copy to Clipboard>
Delete an option from a product.
Parameters
Name | Type | Description |
---|---|---|
productId Copy to Clipboard | string Copy to Clipboard | the product to delete an option from |
optionId Copy to Clipboard | string Copy to Clipboard | the option to delete |
Returns
Promise
Copy to Clipboard<void
Copy to Clipboard | Product
Copy to Clipboard>
the updated product
Defined in
packages/medusa/src/services/product.ts:811
filterProductsBySalesChannel
▸ filterProductsBySalesChannel(productIds
Copy to Clipboard, salesChannelId
Copy to Clipboard, config?
Copy to Clipboard): Promise
Copy to Clipboard<Product
Copy to Clipboard[]>
Parameters
Name | Type |
---|---|
productIds Copy to Clipboard | string Copy to Clipboard[] |
salesChannelId Copy to Clipboard | string Copy to Clipboard |
config Copy to Clipboard | FindProductConfig Copy to Clipboard |
Returns
Promise
Copy to Clipboard<Product
Copy to Clipboard[]>
Defined in
packages/medusa/src/services/product.ts:306
isProductInSalesChannels
▸ isProductInSalesChannels(id
Copy to Clipboard, salesChannelIds
Copy to Clipboard): Promise
Copy to Clipboard<boolean
Copy to Clipboard>
Check if the product is assigned to at least one of the provided sales channels.
Parameters
Name | Type | Description |
---|---|---|
id Copy to Clipboard | string Copy to Clipboard | product id |
salesChannelIds Copy to Clipboard | string Copy to Clipboard[] | an array of sales channel ids |
Returns
Promise
Copy to Clipboard<boolean
Copy to Clipboard>
Defined in
packages/medusa/src/services/product.ts:361
list
▸ list(selector
Copy to Clipboard, config?
Copy to Clipboard): Promise
Copy to Clipboard<Product
Copy to Clipboard[]>
Lists products based on the provided parameters.
Parameters
Name | Type | Description |
---|---|---|
selector Copy to Clipboard | ProductSelector Copy to Clipboard | an object that defines rules to filter products by |
config Copy to Clipboard | FindProductConfig Copy to Clipboard | object that defines the scope for what should be returned |
Returns
Promise
Copy to Clipboard<Product
Copy to Clipboard[]>
the result of the find operation
Defined in
packages/medusa/src/services/product.ts:117
listAndCount
▸ listAndCount(selector
Copy to Clipboard, config?
Copy to Clipboard): Promise
Copy to Clipboard<[Product
Copy to Clipboard[], number
Copy to Clipboard]>
Lists products based on the provided parameters and includes the count of products that match the query.
Parameters
Name | Type | Description |
---|---|---|
selector Copy to Clipboard | ProductSelector Copy to Clipboard | an object that defines rules to filter products by |
config Copy to Clipboard | FindProductConfig Copy to Clipboard | object that defines the scope for what should be returned |
Returns
Promise
Copy to Clipboard<[Product
Copy to Clipboard[], number
Copy 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): Promise
Copy to Clipboard<ProductTag
Copy to Clipboard[]>
Parameters
Name | Type | Default value |
---|---|---|
count Copy to Clipboard | number Copy to Clipboard | 10 Copy to Clipboard |
Returns
Promise
Copy to Clipboard<ProductTag
Copy to Clipboard[]>
Defined in
packages/medusa/src/services/product.ts:346
listTypes
▸ listTypes(): Promise
Copy to Clipboard<ProductType
Copy to Clipboard[]>
Returns
Promise
Copy to Clipboard<ProductType
Copy to Clipboard[]>
Defined in
packages/medusa/src/services/product.ts:337
prepareListQuery_
▸ Protected
Copy to Clipboard prepareListQuery_(selector
Copy to Clipboard, config
Copy to Clipboard): Object
Copy to Clipboard
Creates a query object to be used for list queries.
Parameters
Name | Type | Description |
---|---|---|
selector Copy to Clipboard | Selector Copy to Clipboard<Product Copy to Clipboard> | FilterableProductProps Copy to Clipboard | the selector to create the query from |
config Copy to Clipboard | FindProductConfig Copy to Clipboard | the config to use for the query |
Returns
Object
Copy to Clipboard
an object containing the query, relations and free-text search param.
Name | Type |
---|---|
q Copy to Clipboard | string Copy to Clipboard |
query Copy to Clipboard | FindWithoutRelationsOptions Copy to Clipboard |
relations Copy to Clipboard | keyof Product Copy to Clipboard[] |
Defined in
packages/medusa/src/services/product.ts:908
reorderVariants
▸ reorderVariants(productId
Copy to Clipboard, variantOrder
Copy to Clipboard): Promise
Copy to Clipboard<Product
Copy to Clipboard>
Parameters
Name | Type |
---|---|
productId Copy to Clipboard | string Copy to Clipboard |
variantOrder Copy to Clipboard | string Copy to Clipboard[] |
Returns
Promise
Copy to Clipboard<Product
Copy to Clipboard>
Defined in
packages/medusa/src/services/product.ts:689
retrieve
▸ retrieve(productId
Copy to Clipboard, config?
Copy to Clipboard): Promise
Copy to Clipboard<Product
Copy to Clipboard>
Gets a product by id. Throws in case of DB Error and if product was not found.
Parameters
Name | Type | Description |
---|---|---|
productId Copy to Clipboard | string Copy to Clipboard | id of the product to get. |
config Copy to Clipboard | FindProductConfig Copy to Clipboard | object that defines what should be included in the query response |
Returns
Promise
Copy to Clipboard<Product
Copy to Clipboard>
the result of the find one operation.
Defined in
packages/medusa/src/services/product.ts:186
retrieveByExternalId
▸ retrieveByExternalId(externalId
Copy to Clipboard, config?
Copy to Clipboard): Promise
Copy to Clipboard<Product
Copy to Clipboard>
Gets a product by external id. Throws in case of DB Error and if product was not found.
Parameters
Name | Type | Description |
---|---|---|
externalId Copy to Clipboard | string Copy to Clipboard | handle of the product to get. |
config Copy to Clipboard | FindProductConfig Copy to Clipboard | details about what to get from the product |
Returns
Promise
Copy to Clipboard<Product
Copy to Clipboard>
the result of the find one operation.
Defined in
packages/medusa/src/services/product.ts:230
retrieveByHandle
▸ retrieveByHandle(productHandle
Copy to Clipboard, config?
Copy to Clipboard): Promise
Copy to Clipboard<Product
Copy to Clipboard>
Gets a product by handle. Throws in case of DB Error and if product was not found.
Parameters
Name | Type | Description |
---|---|---|
productHandle Copy to Clipboard | string Copy to Clipboard | handle of the product to get. |
config Copy to Clipboard | FindProductConfig Copy to Clipboard | details about what to get from the product |
Returns
Promise
Copy to Clipboard<Product
Copy to Clipboard>
the result of the find one operation.
Defined in
packages/medusa/src/services/product.ts:209
retrieveOptionByTitle
▸ retrieveOptionByTitle(title
Copy to Clipboard, productId
Copy to Clipboard): Promise
Copy to Clipboard<undefined
Copy to Clipboard | ProductOption
Copy to Clipboard>
Retrieve product's option by title.
Parameters
Name | Type | Description |
---|---|---|
title Copy to Clipboard | string Copy to Clipboard | title of the option |
productId Copy to Clipboard | string Copy to Clipboard | id of a product |
Returns
Promise
Copy to Clipboard<undefined
Copy to Clipboard | ProductOption
Copy to Clipboard>
product option
Defined in
packages/medusa/src/services/product.ts:792
retrieveVariants
▸ retrieveVariants(productId
Copy to Clipboard, config?
Copy to Clipboard): Promise
Copy to Clipboard<ProductVariant
Copy to Clipboard[]>
Gets all variants belonging to a product.
Parameters
Name | Type | Description |
---|---|---|
productId Copy to Clipboard | string Copy to Clipboard | the id of the product to get variants from. |
config Copy to Clipboard | FindProductConfig Copy to Clipboard | The config to select and configure relations etc... |
Returns
Promise
Copy to Clipboard<ProductVariant
Copy to Clipboard[]>
an array of variants
Defined in
packages/medusa/src/services/product.ts:288
retrieve_
▸ retrieve_(selector
Copy to Clipboard, config?
Copy to Clipboard): Promise
Copy to Clipboard<Product
Copy to Clipboard>
Gets a product by selector. Throws in case of DB Error and if product was not found.
Parameters
Name | Type | Description |
---|---|---|
selector Copy to Clipboard | Selector Copy to Clipboard<Product Copy to Clipboard> | selector object |
config Copy to Clipboard | FindProductConfig Copy to Clipboard | object that defines what should be included in the query response |
Returns
Promise
Copy to Clipboard<Product
Copy to Clipboard>
the result of the find one operation.
Defined in
packages/medusa/src/services/product.ts:252
shouldRetryTransaction_
▸ Protected
Copy to Clipboard shouldRetryTransaction_(err
Copy to Clipboard): boolean
Copy to Clipboard
Parameters
Name | Type |
---|---|
err Copy to Clipboard | Record Copy to Clipboard<string Copy to Clipboard, unknown Copy to Clipboard> | { code Copy to Clipboard: string Copy to Clipboard } |
Returns
boolean
Copy to Clipboard
Inherited from
TransactionBaseService.shouldRetryTransaction_
Defined in
packages/medusa/src/interfaces/transaction-base-service.ts:31
update
▸ update(productId
Copy to Clipboard, update
Copy to Clipboard): Promise
Copy to Clipboard<Product
Copy to Clipboard>
Updates a product. Product variant updates should use dedicated methods,
e.g. addVariant
Copy to Clipboard, etc. The function will throw errors if metadata or
product variant updates are attempted.
Parameters
Name | Type | Description |
---|---|---|
productId Copy to Clipboard | string Copy to Clipboard | the id of the product. Must be a string that can be casted to an ObjectId |
update Copy to Clipboard | UpdateProductInput Copy to Clipboard | an object with the update values. |
Returns
Promise
Copy to Clipboard<Product
Copy to Clipboard>
resolves to the update result.
Defined in
packages/medusa/src/services/product.ts:492
updateOption
▸ updateOption(productId
Copy to Clipboard, optionId
Copy to Clipboard, data
Copy to Clipboard): Promise
Copy to Clipboard<Product
Copy 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
Name | Type | Description |
---|---|---|
productId Copy to Clipboard | string Copy to Clipboard | the product whose option we are updating |
optionId Copy to Clipboard | string Copy to Clipboard | the id of the option we are updating |
data Copy to Clipboard | ProductOptionInput Copy to Clipboard | the data to update the option with |
Returns
Promise
Copy to Clipboard<Product
Copy to Clipboard>
the updated product
Defined in
packages/medusa/src/services/product.ts:735
updateShippingProfile
▸ updateShippingProfile(productIds
Copy to Clipboard, profileId
Copy to Clipboard): Promise
Copy to Clipboard<Product
Copy to Clipboard[]>
Parameters
Name | Type | Description |
---|---|---|
productIds Copy to Clipboard | string Copy to Clipboard | string Copy to Clipboard[] | ID or IDs of the products to update |
profileId Copy to Clipboard | string Copy to Clipboard | Shipping profile ID to update the shipping options with |
Returns
Promise
Copy to Clipboard<Product
Copy to Clipboard[]>
updated shipping options
Defined in
packages/medusa/src/services/product.ts:882
withTransaction
▸ withTransaction(transactionManager?
Copy to Clipboard): ProductService
Copy to Clipboard
Parameters
Name | Type |
---|---|
transactionManager? Copy to Clipboard | EntityManager Copy to Clipboard |
Returns
ProductService
Copy to Clipboard
Inherited from
TransactionBaseService.withTransaction
Defined in
packages/medusa/src/interfaces/transaction-base-service.ts:14