# Catalog Item Details

For every item presented in the `Catalog` you can fetch details such as locations, contact information, prices and etc using the following method.

{% tabs %}
{% tab title="iOS" %}

```swift
let catalogItem = catalog.groups[0].items[0]
Traveler.fetchCatalogItemDetails(catalogItem) { (details, error) in

}
```

Alternatively you can use the delegate pattern

```swift
Traveler.fetchCatalogItemDetails(catalogItem, delegate: self)
```

```swift
extension MyViewController: CatalogItemDetailsFetchDelegate {
    func catalogItemDetailsFetchDidSucceedWith(_ result: CatalogItemDetails) }
    
    }
    
    func catalogItemDetailsFetchDidFailWith(_ error: Error) {
    
    }
}
```

It is recommended that you display the details of this item in a modal. The UI SDK ships with a storyboard for your convenience (`CatalogItem.storyboard`) so that if you wish to use our recommended flows from here all the way to making a booking, you can simply just use it as a reference in your own storybaords inside Xcode's Interface Builder. If you are not using storyboards, you can always instantiate the flow via code like below.

```swift
let storyboard = UIStoryboard(name: "CatalogItem", bundle: Bundle(for: CatalogItemViewController.self))
if let vc = storyboard.instantiateInitialViewController() {
    present(vc, animated: true)
}
```

{% endtab %}

{% tab title="Android" %}

```java
Traveler.fetchCatalogItemDetails(catalogItem, new CatalogItemDetailsCallback() {
    @Override
    void onCatalogItemDetailsSuccess(CatalogItemDetails catalog) {
    
    }
    
    @Override
    void onCatalogItemDetailsError(Error error) {
    
    }
});
```

It is recommended that you display the details of this item in a separate Activity. The UI SDK ships with an Activity for your convenience (`CatalogItemDetailsActivity`) so that if you wish to use our recommended flows from here all the way to making a booking, you can simply just start that activity inside yours using the designated Intent like below

```java
Intent i = TravelerUI.getCatalogItemDetailsIntent(catalogItem, this);
startActivity(i);
```

{% endtab %}
{% endtabs %}

&#x20;If you choose to use our recommended flow for the details screen and onwards, you can stop right here as our UI SDK will handle the rest all the way to booking and placing an order; however if you like to implement your own cusom UI and flow, you will be required to make a few more calls and collect more information from your user.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.guestlogix.io/traveler/mobile-sdks/stripe-payment-sdk/catalog-item-details.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
