@deliverart/sdk-js-delivery
v2.16.4
Published
Deliverart JavaScript SDK for Delivery Management
Readme
@deliverart/sdk-js-delivery
Delivery management package for the DeliverArt JavaScript SDK.
Installation
npm install @deliverart/sdk-js-delivery @deliverart/sdk-js-core
# or
pnpm add @deliverart/sdk-js-delivery @deliverart/sdk-js-coreExported Types
Models
DeliveryDeliveryDetailsDeliveryStopWritableDeliveryDeliveryPositionDeliveryPositionDetailsWritableDeliveryPositionDeliveryFeeDeliveryFeeDetailsDeliveryFeeListItemWritableCreateDeliveryFeeWritableUpdateDeliveryFee
IRI Types
DeliveryIri-/deliveries/:idDeliveryNullableIri- nullable delivery IRIDeliveryPositionIri-/deliveries/positions/:idDeliveryPositionNullableIri- nullable delivery position IRI
Deliveries
CreateDelivery
Create a delivery for an existing bundle.
import { CreateDelivery } from '@deliverart/sdk-js-delivery'
const delivery = await sdk.call(
new CreateDelivery({
bundle: '/bundles/123e4567-e89b-12d3-a456-426614174000',
deliveryUser: '/users/123e4567-e89b-12d3-a456-426614174001',
}),
)CreateDeliveryInput
bundle: BundleIrirequireddeliveryUser?: UserNullableIrioptional
Response: DeliveryDetails
DeliveryDetails now includes courier-facing run fields:
runStatetotalStopspendingStopsCountcompletedStopsCountcanFinishstopspendingStopssuggestedNextStopcurrentStop
runState can be:
not_startedawaiting_stop_selectiondelivering_stopready_to_finishfinished
DeliveryStop contains:
orderIddisplayIdsequenceplannedplannedSequenceetawindowStartwindowEnddeliveredAtcurrent
GetDeliveries
Get paginated deliveries.
import { GetDeliveries } from '@deliverart/sdk-js-delivery'
const deliveries = await sdk.call(
new GetDeliveries({
query: {
'bundle.id': '123e4567-e89b-12d3-a456-426614174000',
deliveryUser: '/users/123e4567-e89b-12d3-a456-426614174001',
'exists[startedAt]': true,
'order[createdAt]': 'desc',
page: 1,
},
}),
)Main query params
'bundle.id'?: string | string[]deliveryUser?: string | UserIri | Array<string | UserIri>currentOrder?: string | OrderIri | Array<string | OrderIri>'exists[startedAt]'?: boolean'exists[endedAt]'?: boolean'order[createdAt]'?: 'asc' | 'desc''order[updatedAt]'?: 'asc' | 'desc''order[startedAt]'?: 'asc' | 'desc''order[endedAt]'?: 'asc' | 'desc'page?: number
Response: Paginated<Delivery>
GetDeliveriesFromUser
Get deliveries assigned to a user.
import { GetDeliveriesFromUser } from '@deliverart/sdk-js-delivery'
const deliveries = await sdk.call(
new GetDeliveriesFromUser('123e4567-e89b-12d3-a456-426614174001', {
query: {
'exists[endedAt]': false,
page: 1,
},
}),
)Response: Paginated<Delivery>
GetDeliveryDetails
import { GetDeliveryDetails } from '@deliverart/sdk-js-delivery'
const delivery = await sdk.call(new GetDeliveryDetails('123e4567-e89b-12d3-a456-426614174002'))Response: DeliveryDetails
GetDeliveryDetailsFromBundle
import { GetDeliveryDetailsFromBundle } from '@deliverart/sdk-js-delivery'
const delivery = await sdk.call(
new GetDeliveryDetailsFromBundle('123e4567-e89b-12d3-a456-426614174000'),
)Response: DeliveryDetails
UpdateDelivery
Update the assigned courier.
import { UpdateDelivery } from '@deliverart/sdk-js-delivery'
const updated = await sdk.call(
new UpdateDelivery('123e4567-e89b-12d3-a456-426614174002', {
deliveryUser: '/users/123e4567-e89b-12d3-a456-426614174003',
}),
)UpdateDeliveryInput
deliveryUser?: UserNullableIri
Response: DeliveryDetails
Delivery Lifecycle Requests
import {
DeliverCurrentOrder,
EndDelivery,
StartDelivery,
StartDeliveryOrder,
} from '@deliverart/sdk-js-delivery'
await sdk.call(new StartDelivery('123e4567-e89b-12d3-a456-426614174002'))
await sdk.call(
new StartDeliveryOrder(
'123e4567-e89b-12d3-a456-426614174002',
'123e4567-e89b-12d3-a456-426614174004',
),
)
await sdk.call(new DeliverCurrentOrder('123e4567-e89b-12d3-a456-426614174002'))
await sdk.call(new EndDelivery('123e4567-e89b-12d3-a456-426614174002'))Available requests
StartDeliveryStartDeliveryOrderDeliverCurrentOrderEndDeliveryDeleteDelivery
Delivery Positions
CreateDeliveryPosition
import { CreateDeliveryPosition } from '@deliverart/sdk-js-delivery'
const position = await sdk.call(
new CreateDeliveryPosition({
delivery: '/deliveries/123e4567-e89b-12d3-a456-426614174002',
positionData: {
lat: 45.470664,
lng: 9.19554,
},
}),
)CreateDeliveryPositionInput
delivery: DeliveryIrirequiredpositionData: { lat: number; lng: number }required
Response: DeliveryPositionDetails
GetDeliveryPositions
Get paginated delivery positions.
import { GetDeliveryPositions } from '@deliverart/sdk-js-delivery'
const positions = await sdk.call(
new GetDeliveryPositions({
query: {
'order[createdAt]': 'asc',
page: 1,
},
}),
)Response: Paginated<DeliveryPosition>
GetDeliveryPositionsFromDelivery
import { GetDeliveryPositionsFromDelivery } from '@deliverart/sdk-js-delivery'
const positions = await sdk.call(
new GetDeliveryPositionsFromDelivery('123e4567-e89b-12d3-a456-426614174002', {
query: {
'order[createdAt]': 'asc',
},
}),
)Response: DeliveryPosition[]
GetDeliveryPositionDetails
import { GetDeliveryPositionDetails } from '@deliverart/sdk-js-delivery'
const position = await sdk.call(
new GetDeliveryPositionDetails('123e4567-e89b-12d3-a456-426614174005'),
)Response: DeliveryPositionDetails
Delivery Fees
Delivery fees are discriminated by type.
CreateDeliveryFee
import { CreateDeliveryFee } from '@deliverart/sdk-js-delivery'
const fee = await sdk.call(
new CreateDeliveryFee({
pointOfSale: '/point_of_sales/123e4567-e89b-12d3-a456-426614174006',
type: 'distance',
amount: '3.0000',
taxRate: 10,
settings: {
min: 0,
max: 5000,
},
}),
)Supported variants
type: 'amount'withsettings: { min: number; max: number }type: 'distance'withsettings: { min: number; max: number }type: 'postal_code'withsettings: { values: string[] }
GetDeliveryFees
import { GetDeliveryFees } from '@deliverart/sdk-js-delivery'
const fees = await sdk.call(
new GetDeliveryFees({
query: {
type: ['distance', 'postal_code'],
'order[createdAt]': 'desc',
page: 1,
},
}),
)Response: Paginated<DeliveryFeeListItem>
GetDeliveryFeesFromPointOfSale
import { GetDeliveryFeesFromPointOfSale } from '@deliverart/sdk-js-delivery'
const fees = await sdk.call(
new GetDeliveryFeesFromPointOfSale('123e4567-e89b-12d3-a456-426614174006', {
query: {
type: 'distance',
},
}),
)Response: DeliveryFeeListItem[]
UpdateDeliveryFee
import { UpdateDeliveryFee } from '@deliverart/sdk-js-delivery'
const updated = await sdk.call(
new UpdateDeliveryFee('123e4567-e89b-12d3-a456-426614174007', {
type: 'distance',
amount: '4.0000',
settings: {
min: 0,
max: 7000,
},
}),
)UpdateDeliveryFeeInput
- requires
type - all other fields are partial within the selected variant
License
MIT
