Shipment Configuration
Set Fulfillment Type
Changes the fulfillment method for a specific shipment to one of the available options
POST
Set Fulfillment Type
Switch between fulfillment types at the shipment level. Each shipment exposes its available fulfillment types in the
fulfillment_type_options array, and only these values can be set.Default Selection: Firmly automatically selects a default fulfillment type when the cart is created. You only need to call this endpoint if you want to change from the default selection.
Request
The merchant’s domain (e.g. staging.luma.gift)
Device authentication token for session identification
Target shipment identifier
New fulfillment method. Must be one of the values from
fulfillment_type_options in the shipment object.Common values include:SHIP_TO_ADDRESS- Standard shipping to customer addressSCHEDULED_DELIVERY- Date/time-specific deliveryPICKUP_IN_STORE- Customer pickup at store location (if supported)
fulfillment_type_options array are valid. Attempting to set an unsupported fulfillment type will result in an error.Required when
fulfillment_type is PICKUP_IN_STORE. Store location identifier.Response
Returns the updated shopping cart with the new fulfillment configuration.Array of shipments with updated fulfillment typeShipment Properties:
shipment_id(string): Unique shipment identifierfulfillment_type(object): Current fulfillment configurationid(string): Fulfillment type identifiername(string): Display namedescription(string): Detailed description
fulfillment_type_options(array): Available fulfillment types for this shipmentshipping_method_options(array): Updated shipping methods based on new fulfillment typeselected_location(object): Store location details (for PICKUP_IN_STORE)
Updated shipping costs after fulfillment change
Updated cart total including new shipping costs
Important Notes
State Transitions
| From → To | Cleared Fields | New Options |
|---|---|---|
Any → SHIP_TO_ADDRESS | selected_location, selected_date, selected_time_slot | Standard shipping methods |
Any → SCHEDULED_DELIVERY | selected_location, selected_date, selected_time_slot | Scheduled delivery methods |
Any → PICKUP_IN_STORE | selected_date, selected_time_slot | Pickup-specific options |
Examples
First, Check Available Options
Always check what fulfillment types are available for a shipment before attempting to set one:Setting Fulfillment Type
Standard Shipping Response
Standard Shipping Response
Scheduled Delivery Response
Scheduled Delivery Response
Store Pickup Response
Store Pickup Response
V2 Multi-Shipment Features
Unlike V1 where fulfillment was cart-level, V2 enables each shipment to have its own fulfillment method. This supports scenarios like:
- Heavy items with scheduled delivery while small items ship standard
- Some items for pickup, others for delivery
- Different delivery dates for different shipments
Common Scenarios
- Mixed Fulfillment
- Multi-Location Pickup
Next Steps
After setting the fulfillment type:- Check available options: Review
fulfillment_type_optionsin the shipment to see what’s supported For SHIP_TO_ADDRESS: Set shipping methodFor SCHEDULED_DELIVERY: Get availability then set date/timeFor PICKUP_IN_STORE: Configure pickup location (if supported by merchant)
Error Codes
| Code | Description |
|---|---|
| 400 | Invalid fulfillment type or missing required fields |
| 401 | Invalid authentication token |
| 404 | Shipment or location not found |
| 422 | Unprocessable entity data |
Previous
Set Shipping MethodSelects a shipping method for a specific shipment and recalculates cart totals
Next
Set Fulfillment Type