> ## Documentation Index
> Fetch the complete documentation index at: https://voyant.travel/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect cruises

> Adapt Connect-normalized cruise inventory into a Voyant deployment's cruises adapter boundary, including reserve-mode booking commits.

`@voyant-travel/connect-cruises` adapts Connect-normalized cruise inventory into a Voyant deployment's cruises adapter boundary. It is a bridge for Connect consumers who sell cruises, not supplier-specific cruise connector code.

If you only need general Connect inventory in your catalog, the [Connect adapter](/docs/connect/connect-adapter) already handles cruises through its `getContent` path. Reach for this package when you want a dedicated cruise adapter aligned to the platform's cruises boundary.

## Install

```bash theme={null}
pnpm add @voyant-travel/connect-cruises @voyant-travel/connect-sdk
```

## Create the adapter

```ts theme={null}
import { createConnectCruiseAdapter } from "@voyant-travel/connect-cruises";

export const adapter = createConnectCruiseAdapter({
  connect: {
    apiKey: process.env.VOYANT_API_KEY!,
    operatorId: "op_123",
  },
});
```

## What it provides

* `createConnectCruiseAdapter` to build the adapter.
* A full `SourceRef` shape for connection, provider, and external id identity.
* List, detail, itinerary, ship, and sailing-pricing mappings for the Connect cruise read APIs.
* Reserve-mode booking commit.

## Reserve-mode booking

Cruise bookings are scheduled inventory: you commit a specific sailing, cabin, fare, and occupancy. When Voyant calls `createBooking` without an existing `cabinCategoryRef.quoteId`, the adapter asks Connect to lock the selected sailing, cabin, fare, and occupancy, then confirms the resulting quote through Connect cruise bookings.

You can tune how long a lock is held with the `quoteTtlHours` option.

## Helpers and types

Helpers: `passengerCountFromConnectOccupancy(occupancy)` and `connectFareComponentAmount(component)`. The `ConnectCruisesNotImplementedError` is thrown for cruise endpoints Connect does not yet expose.

Key types: `ConnectCruiseAdapter`, `ConnectCruiseAdapterOptions`, `ConnectCruiseSourceRef`, `ConnectExternalCruise`, `ConnectExternalSailing`, `ConnectExternalShip`, `ConnectExternalPriceRow`, `ConnectExternalBookingInput`, `ConnectExternalBookingResult`.

## Next steps

<CardGroup cols={2}>
  <Card title="Cruises module" icon="ship" href="/docs/platform/modules">
    The platform's cruise modeling.
  </Card>

  <Card title="Connect adapter" icon="puzzle-piece" href="/docs/connect/connect-adapter">
    The general-purpose catalog source adapter.
  </Card>
</CardGroup>
