Class: FulfillmentService
Handles Fulfillments
Hierarchy
TransactionBaseService↳
FulfillmentService
Constructors
constructor
• new FulfillmentService(__namedParameters)
Parameters
| Name | Type |
|---|---|
__namedParameters | InjectedDependencies |
Overrides
TransactionBaseService.constructor
Defined in
packages/medusa/src/services/fulfillment.ts:50
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
fulfillmentProviderService_
• Protected Readonly fulfillmentProviderService_: FulfillmentProviderService
Defined in
packages/medusa/src/services/fulfillment.ts:43
fulfillmentRepository_
• Protected Readonly fulfillmentRepository_: typeof FulfillmentRepository
Defined in
packages/medusa/src/services/fulfillment.ts:44
lineItemRepository_
• Protected Readonly lineItemRepository_: typeof LineItemRepository
Defined in
packages/medusa/src/services/fulfillment.ts:46
lineItemService_
• Protected Readonly lineItemService_: LineItemService
Defined in
packages/medusa/src/services/fulfillment.ts:41
manager_
• Protected manager_: EntityManager
Overrides
TransactionBaseService.manager_
Defined in
packages/medusa/src/services/fulfillment.ts:37
productVariantInventoryService_
• Protected Readonly productVariantInventoryService_: ProductVariantInventoryService
Defined in
packages/medusa/src/services/fulfillment.ts:48
shippingProfileService_
• Protected Readonly shippingProfileService_: ShippingProfileService
Defined in
packages/medusa/src/services/fulfillment.ts:42
totalsService_
• Protected Readonly totalsService_: TotalsService
Defined in
packages/medusa/src/services/fulfillment.ts:40
trackingLinkRepository_
• Protected Readonly trackingLinkRepository_: typeof TrackingLinkRepository
Defined in
packages/medusa/src/services/fulfillment.ts:45
transactionManager_
• Protected transactionManager_: undefined | EntityManager
Overrides
TransactionBaseService.transactionManager_
Defined in
packages/medusa/src/services/fulfillment.ts:38
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
cancelFulfillment
▸ cancelFulfillment(fulfillmentOrId): Promise<Fulfillment>
Cancels a fulfillment with the fulfillment provider. Will decrement the fulfillment_quantity on the line items associated with the fulfillment. Throws if the fulfillment has already been shipped.
Parameters
| Name | Type | Description |
|---|---|---|
fulfillmentOrId | string | Fulfillment | the fulfillment object or id. |
Returns
Promise<Fulfillment>
the result of the save operation
Defined in
packages/medusa/src/services/fulfillment.ts:269
createFulfillment
▸ createFulfillment(order, itemsToFulfill, custom?, context?): Promise<Fulfillment[]>
Creates an order fulfillment If items needs to be fulfilled by different provider, we make sure to partition those items, and create fulfillment for those partitions.
Parameters
| Name | Type | Description |
|---|---|---|
order | CreateFulfillmentOrder | order to create fulfillment for |
itemsToFulfill | FulFillmentItemType[] | the items in the order to fulfill |
custom | Partial<Fulfillment> | potential custom values to add |
context | Object | - |
context.locationId? | string | - |
Returns
Promise<Fulfillment[]>
the created fulfillments
Defined in
packages/medusa/src/services/fulfillment.ts:211
createShipment
▸ createShipment(fulfillmentId, trackingLinks?, config?): Promise<Fulfillment>
Creates a shipment by marking a fulfillment as shipped. Adds tracking links and potentially more metadata.
Parameters
| Name | Type | Description |
|---|---|---|
fulfillmentId | string | the fulfillment to ship |
trackingLinks? | { tracking_number: string }[] | tracking links for the shipment |
config | CreateShipmentConfig | potential configuration settings, such as no_notification and metadata |
Returns
Promise<Fulfillment>
the shipped fulfillment
Defined in
packages/medusa/src/services/fulfillment.ts:321
getFulfillmentItems_
▸ getFulfillmentItems_(order, items): Promise<(null | LineItem)[]>
Retrieves the order line items, given an array of items.
Parameters
| Name | Type | Description |
|---|---|---|
order | CreateFulfillmentOrder | the order to get line items from |
items | FulFillmentItemType[] | the items to get |
Returns
Promise<(null | LineItem)[]>
the line items generated by the transformer.
Defined in
packages/medusa/src/services/fulfillment.ts:115
partitionItems_
▸ partitionItems_(shippingMethods, items): FulfillmentItemPartition[]
Parameters
| Name | Type |
|---|---|
shippingMethods | ShippingMethod[] |
items | LineItem[] |
Returns
FulfillmentItemPartition[]
Defined in
packages/medusa/src/services/fulfillment.ts:76
retrieve
▸ retrieve(fulfillmentId, config?): Promise<Fulfillment>
Retrieves a fulfillment by its id.
Parameters
| Name | Type | Description |
|---|---|---|
fulfillmentId | string | the id of the fulfillment to retrieve |
config | FindConfig<Fulfillment> | optional values to include with fulfillmentRepository query |
Returns
Promise<Fulfillment>
the fulfillment
Defined in
packages/medusa/src/services/fulfillment.ts:172
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
validateFulfillmentLineItem_
▸ validateFulfillmentLineItem_(item, quantity): null | LineItem
Checks that a given quantity of a line item can be fulfilled. Fails if the fulfillable quantity is lower than the requested fulfillment quantity. Fulfillable quantity is calculated by subtracting the already fulfilled quantity from the quantity that was originally purchased.
Parameters
| Name | Type | Description |
|---|---|---|
item | undefined | LineItem | the line item to check has sufficient fulfillable quantity. |
quantity | number | the quantity that is requested to be fulfilled. |
Returns
null | LineItem
a line item that has the requested fulfillment quantity set.
Defined in
packages/medusa/src/services/fulfillment.ts:140
withTransaction
▸ withTransaction(transactionManager?): FulfillmentService
Parameters
| Name | Type |
|---|---|
transactionManager? | EntityManager |
Returns
Inherited from
TransactionBaseService.withTransaction
Defined in
packages/medusa/src/interfaces/transaction-base-service.ts:14