Update Fulfillment Order Delivery Method

Switches the delivery method of a fulfillment order between DELIVERY, COLLECTION, and DIGITAL, and updates the corresponding address and schedule in a single call.

Behaviour

Depending on the new delivery_method, the request body fields are interpreted as follows:

New delivery_method address is set as scheduled_from/scheduled_to are set as
DELIVERY delivery_address delivery_schedule
COLLECTION customer_collection_address customer_collection_schedule
DIGITAL not used not used

Switching to a new delivery method will clear the address and schedule fields associated with the previous method.

Use Cases

  • Convert an online order from home delivery to a click-and-collect pickup at a store.
  • Switch a fulfillment order from COLLECTION back to DELIVERY if the customer changes their mind.
  • Mark a fulfillment order as DIGITAL when no physical delivery is required.

Constraints

This endpoint cannot be called on fulfillment orders that have already started processing (e.g., shipments created, items fulfilled). Use unfulfill or cancel flows first if you need to change the method on an in-progress FO.

SecurityOAuth2-Production or OAuth2-Demo
Request
path Parameters
orderReference
required
string

The order reference (order_id or partner_order_reference based on the key parameter).

fulfillmentOrderId
required
string

The unique identifier of the fulfillment order.

query Parameters
key
string
Default: "order_id"

Specifies which reference type is being used for the order reference.

Enum: "order_id" "partner_order_reference"
header Parameters
x-api-key
required
string

Your Carriyo API key for authentication.

tenant-id
required
string

Your unique tenant identifier in Carriyo.

Content-Type
string
Default: application/json
Request Body schema: application/json
required
delivery_method
required
string (Delivery Method)

How the order is delivered to the customer:

  • DELIVERY — Standard delivery to the customer's address (uses delivery_address and delivery_schedule).
  • COLLECTION — Customer collects the order from a specified location (uses customer_collection_address and customer_collection_schedule).
  • DIGITAL — No physical delivery; the order is fulfilled digitally.
Enum: "DELIVERY" "COLLECTION" "DIGITAL"
object (Address)

The new address for the fulfillment order.

  • For DELIVERY: the new delivery address.
  • For COLLECTION: the new customer collection address.
  • For DIGITAL: not required.
scheduled_from
string <date-time>

Start of the new scheduled window (delivery or customer-collection, depending on delivery_method).

scheduled_to
string <date-time>

End of the new scheduled window.

delivery_type
string

The delivery service level (e.g., standard, express). Only applicable when delivery_method is DELIVERY.

Responses
200

Delivery method updated successfully.

400

Invalid request or fulfillment order is not in a state that allows this update.

404

Order or fulfillment order not found.

patch/orders/{orderReference}/fulfillment-orders/{fulfillmentOrderId}/update-delivery-method
Request samples
application/json
{
  • "delivery_method": "DELIVERY",
  • "address": {
    },
  • "scheduled_from": "2019-08-24T14:15:22Z",
  • "scheduled_to": "2019-08-24T14:15:22Z",
  • "delivery_type": "string"
}
Response samples
application/json
{
  • "tenant": "string",
  • "order_id": "string",
  • "merchant": "string",
  • "partner_order_reference": "string",
  • "language": "string",
  • "order_date": "2019-08-24T14:15:22Z",
  • "sales_channel": "string",
  • "creation_source": {
    },
  • "update_source": {
    },
  • "carriyo_metadata": [
    ],
  • "status": "open",
  • "auto_allocation_failed": true,
  • "cancellation_reason": "CUSTOMER_CANCELLATION",
  • "billing_address": {
    },
  • "customer": {
    },
  • "customer_key": "string",
  • "payment": {
    },
  • "redacted": true,
  • "taxes_included": true,
  • "duties_included": true,
  • "discount_applications": [
    ],
  • "line_items": [
    ],
  • "fulfillment_orders": [
    ],
  • "shipping_lines": [
    ],
  • "error_details": [
    ],
  • "creation_date": "2019-08-24T14:15:22Z",
  • "update_date": "2019-08-24T14:15:22Z"
}