Skip to main content
Skip to main content

FulfillmentService

internal.internal.FulfillmentService

Fulfillment Provider interface Fullfillment provider plugin services should extend the AbstractFulfillmentService from this file

Implemented by

Methods

calculatePrice

calculatePrice(optionData, data, cart): Promise<number>

Used to calculate a price for a given shipping option.

Parameters

optionDataShippingOptionDataRequired
cartCartRequired

Returns

Promise<number>

PromisePromise<number>Required

canCalculate

canCalculate(data): Promise<boolean>

Used to determine if a shipping option can have a calculated price

Parameters

dataShippingOptionDataRequired

Returns

Promise<boolean>

PromisePromise<boolean>Required

cancelFulfillment

cancelFulfillment(fulfillmentData): Promise<any>

Cancel a fulfillment using data from the fulfillment

Parameters

fulfillmentDataFulfillmentProviderDataRequired

Returns

Promise<any>

PromisePromise<any>Required

createFulfillment

createFulfillment(data, items, order, fulfillment): Promise<FulfillmentProviderData>

Create a fulfillment using data from shipping method, line items, and fulfillment. All from the order. The returned value of this method will populate the fulfillment.data field.

Parameters

dataShippingMethodDataRequired
itemsLineItem[]Required
orderOrderRequired
fulfillmentFulfillmentRequired

Returns

Promise<FulfillmentProviderData>

PromisePromise<FulfillmentProviderData>Required

createReturn

createReturn(returnOrder): Promise<Record<string, unknown>>

Used to create a return order. Should return the data necessary for future operations on the return; in particular the data may be used to receive documents attached to the return.

Parameters

returnOrderCreateReturnTypeRequired

Returns

Promise<Record<string, unknown>>

PromisePromise<Record<string, unknown>>Required

getFulfillmentDocuments

getFulfillmentDocuments(data): Promise<any>

Used to retrieve documents associated with a fulfillment.

Parameters

Returns

Promise<any>

PromisePromise<any>Required

getFulfillmentOptions

getFulfillmentOptions(): Promise<any[]>

Called before a shipping option is created in Admin. The method should return all of the options that the fulfillment provider can be used with, and it is here the distinction between different shipping options are enforced. For example, a fulfillment provider may offer Standard Shipping and Express Shipping as fulfillment options, it is up to the store operator to create shipping options in Medusa that are offered to the customer.

Returns

Promise<any[]>

PromisePromise<any[]>Required

getIdentifier

getIdentifier(): string

Return a unique identifier to retrieve the fulfillment plugin provider

Returns

string

stringstring

getReturnDocuments

getReturnDocuments(data): Promise<any>

Used to retrieve documents related to a return order.

Parameters

dataRecord<string, unknown>Required

Returns

Promise<any>

PromisePromise<any>Required

getShipmentDocuments

getShipmentDocuments(data): Promise<any>

Used to retrieve documents related to a shipment.

Parameters

dataRecord<string, unknown>Required

Returns

Promise<any>

PromisePromise<any>Required

retrieveDocuments

retrieveDocuments(fulfillmentData, documentType): Promise<any>

Parameters

fulfillmentDataFulfillmentProviderDataRequired
documentType"label" | "invoice"Required

Returns

Promise<any>

PromisePromise<any>Required

validateFulfillmentData

validateFulfillmentData(optionData, data, cart): Promise<Record<string, unknown>>

Called before a shipping method is set on a cart to ensure that the data sent with the shipping method is valid. The data object may contain extra data about the shipment such as an id of a drop point. It is up to the fulfillment provider to enforce that the correct data is being sent through.

Parameters

optionDataShippingOptionDataRequired
cartCartRequired

Returns

Promise<Record<string, unknown>>

PromisePromise<Record<string, unknown>>Required
the data to populate cart.shipping_methods.$.data this is usually important for future actions like generating shipping labels

validateOption

validateOption(data): Promise<boolean>

Called before a shipping option is created in Admin. Use this to ensure that a fulfillment option does in fact exist.

Parameters

dataShippingOptionDataRequired

Returns

Promise<boolean>

PromisePromise<boolean>Required
Was this section helpful?