Skip to content

get-fulfillment-options

Method: POST
Path: /carts/fulfillment-options

Tags: Carts

Summary

Retrieve fulfillment options

Description

Returns available fulfillment options for a cart and delivery pincode. The summary object indicates collect_available, deliver_available, and recommended_fulfillment_type. Use the collect array for Click & Collect store locations and deliver for delivery details.

Storefront SDK Usage

SDK Method: sdk.cart.getFulfillmentOptions()

Example:

typescript
const { data, error } = await sdk.cart.getFulfillmentOptions({
  cart_id: "cart_01H9XYZ12345ABCDE",
  fulfillment_type: "delivery" // optional: "delivery" | "collect-in-store"
});

if (error) {
  console.error("Failed to get fulfillment options:", error.message);
} else {
  // Check summary information
  console.log("Collect available:", data.summary.collect_available);
  console.log("Deliver available:", data.summary.deliver_available);
  console.log("Recommended fulfillment type:", data.summary.recommended_fulfillment_type);

  // Access collect options
  if (data.collect && data.collect.length > 0) {
    console.log("Available stores for collection:");
    data.collect.forEach(store => {
      console.log(`${store.name} - ${store.distance_km}km away, ETA: ${store.collect_eta_minutes} minutes`);
    });
  }

  // Access delivery options (with shipments)
  if (data.deliver && data.deliver.is_serviceable) {
    console.log("Available shipments and shipping methods:");
    data.deliver.shipments.forEach(shipment => {
      console.log(`Shipment ${shipment.id}:`);
      console.log(`  Items: ${shipment.items.length}`);
      shipment.shipping_methods.forEach(method => {
        console.log(`  - ${method.name}: ${method.shipping_amount}, ${method.estimated_delivery_days} days`);
        // Access courier companies for auto shipping methods
        if (method.courier_companies) {
          method.courier_companies.forEach(courier => {
            console.log(`    Courier: ${courier.name} - ${courier.shipping_amount}, ${courier.estimated_delivery_days} days`);
          });
        }
      });
    });
  }
}

TypeScript Definition

typescript
"get-fulfillment-options": {
        parameters: {
            query?: never;
            header?: never;
            path?: never;
            cookie?: never;
        };
        requestBody: {
            content: {
                "application/json": components["schemas"]["CartBasedFulfillmentOption"];
            };
        };
        responses: {
            /** @description OK */
            200: {
                headers: {
                    [name: string]: unknown;
                };
                content: {
                    "application/json": {
                        message: string;
                        success: boolean;
                        content: {
                            summary: {
                                collect_available: boolean;
                                deliver_available: boolean;
                                /** @enum {unknown} */
                                recommended_fulfillment_type: "collect-in-store" | "delivery";
                                recommended_store?: components["schemas"]["CollectInStore"];
                            };
                            collect?: components["schemas"]["CollectInStore"][];
                            deliver?: components["schemas"]["DeliveryOption"];
                        };
                    };
                };
            };
            400: components["responses"]["BadRequest"];
            401: components["responses"]["Unauthorized"];
            404: components["responses"]["NotFound"];
        };
    };

Component References

ReferenceResolves To
components["schemas"]["CartBasedFulfillmentOption"]CartBasedFulfillmentOption
components["schemas"]["CollectInStore"]CollectInStore
components["schemas"]["DeliveryOption"]DeliveryOption
components["responses"]["BadRequest"]BadRequest
components["responses"]["Unauthorized"]Unauthorized
components["responses"]["NotFound"]NotFound

Request Body

Content Types: application/json

Responses

200

OK

400

Bad request

401

Not authorized for given operation on the Resource

404

Requested resource not found

OpenAPI Definition

json
{
  "tags": [
    "Carts"
  ],
  "operationId": "get-fulfillment-options",
  "summary": "Retrieve fulfillment options",
  "description": "Returns available fulfillment options for a cart and delivery pincode. The `summary` object indicates `collect_available`, `deliver_available`, and `recommended_fulfillment_type`. Use the `collect` array for Click & Collect store locations and `deliver` for delivery details.",
  "externalDocs": {
    "url": "https://llm-docs.commercengine.io/storefront/operations/get-fulfillment-options",
    "description": "API reference for the get-fulfillment-options operation"
  },
  "parameters": [],
  "requestBody": {
    "description": "",
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/CartBasedFulfillmentOption"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "OK",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "message",
              "success",
              "content"
            ],
            "properties": {
              "message": {
                "type": "string"
              },
              "success": {
                "type": "boolean"
              },
              "content": {
                "properties": {
                  "summary": {
                    "type": "object",
                    "properties": {
                      "collect_available": {
                        "type": "boolean"
                      },
                      "deliver_available": {
                        "type": "boolean"
                      },
                      "recommended_fulfillment_type": {
                        "enum": [
                          "collect-in-store",
                          "delivery"
                        ]
                      },
                      "recommended_store": {
                        "$ref": "#/components/schemas/CollectInStore"
                      }
                    },
                    "required": [
                      "collect_available",
                      "deliver_available",
                      "recommended_fulfillment_type"
                    ]
                  },
                  "collect": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/CollectInStore"
                    }
                  },
                  "deliver": {
                    "$ref": "#/components/schemas/DeliveryOption"
                  }
                },
                "required": [
                  "summary"
                ],
                "type": "object"
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/BadRequest"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  },
  "security": [
    {
      "Authorization": []
    }
  ],
  "x-speakeasy-group": "carts",
  "x-speakeasy-ignore": false,
  "x-speakeasy-name-override": "fulfillmentOptions"
}

Auto-generated from OpenAPI spec and TypeScript definitions

Last updated: