Skip to main content
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

string
required
The merchant’s domain (e.g. staging.luma.gift)
string
required
Device authentication token for session identification
string
required
Target shipment identifier
string
required
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 address
  • SCHEDULED_DELIVERY - Date/time-specific delivery
  • PICKUP_IN_STORE - Customer pickup at store location (if supported)
Important: Only fulfillment types listed in the shipment’s fulfillment_type_options array are valid. Attempting to set an unsupported fulfillment type will result in an error.
string
Required when fulfillment_type is PICKUP_IN_STORE. Store location identifier.

Response

Returns the updated shopping cart with the new fulfillment configuration.
array
Array of shipments with updated fulfillment typeShipment Properties:
  • shipment_id (string): Unique shipment identifier
  • fulfillment_type (object): Current fulfillment configuration
    • id (string): Fulfillment type identifier
    • name (string): Display name
    • description (string): Detailed description
  • fulfillment_type_options (array): Available fulfillment types for this shipment
  • shipping_method_options (array): Updated shipping methods based on new fulfillment type
  • selected_location (object): Store location details (for PICKUP_IN_STORE)
object
Updated shipping costs after fulfillment change
object
Updated cart total including new shipping costs

Important Notes

  • You can only set fulfillment types that are listed in the shipment’s fulfillment_type_options array
  • Changing fulfillment type clears previous selections including dates, time slots, and shipping methods
  • The cart automatically recalculates pricing based on the new fulfillment method
  • Not all merchants support all fulfillment types - check fulfillment_type_options first

State Transitions

Examples

First, Check Available Options

Always check what fulfillment types are available for a shipment before attempting to set one:

Setting Fulfillment Type

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

Next Steps

After setting the fulfillment type:
  1. Check available options: Review fulfillment_type_options in the shipment to see what’s supported
  2. For SHIP_TO_ADDRESS: Set shipping method
  3. For SCHEDULED_DELIVERY: Get availability then set date/time
  4. For PICKUP_IN_STORE: Configure pickup location (if supported by merchant)

Error Codes