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

# .select()

> Choose which fields to return

```javascript theme={null}
openbridge.products.list().select(fields)
openbridge.products.get(handle).select(fields)
```

Limits which fields to include in the response. Use this to optimize performance by reducing payload size.

<Info>By default, **all fields** are returned. Use `.select()` only when you want to optimize by fetching fewer fields.</Info>

## Parameters

| Param    | Type                                                 | Required | Description       |
| -------- | ---------------------------------------------------- | -------- | ----------------- |
| `fields` | [`ProductField[]`](/api/types/products#productfield) | Yes      | Fields to include |

## Available Fields

| Field                 | Type                                                                       |
| --------------------- | -------------------------------------------------------------------------- |
| `id`                  | `string`                                                                   |
| `handle`              | `string`                                                                   |
| `title`               | `string`                                                                   |
| `description`         | `string`                                                                   |
| `descriptionHtml`     | `string`                                                                   |
| `availableForSale`    | `boolean`                                                                  |
| `featuredImage`       | [`ShopifyImage`](/api/types/shared#shopifyimage)                           |
| `images`              | [`ShopifyImage[]`](/api/types/shared#shopifyimage)                         |
| `priceRange`          | [`ShopifyPriceRange`](/api/types/shared#shopifypricerange)                 |
| `compareAtPriceRange` | [`ShopifyPriceRange`](/api/types/shared#shopifypricerange)                 |
| `options`             | [`ShopifyProductOption[]`](/api/types/products#shopifyproductoption)       |
| `variants`            | [`ShopifyProductVariant[]`](/api/types/products#shopifyproductvariant)     |
| `sellingPlanGroups`   | [`ShopifySellingPlanGroup[]`](/api/types/products#shopifysellingplangroup) |
| `productType`         | `string`                                                                   |
| `vendor`              | `string`                                                                   |
| `tags`                | `string[]`                                                                 |
| `createdAt`           | `string`                                                                   |
| `updatedAt`           | `string`                                                                   |
| `publishedAt`         | `string`                                                                   |
| `onlineStoreUrl`      | `string`                                                                   |
| `seo`                 | [`ShopifySeo`](/api/types/shared#shopifyseo)                               |

## Returns

`ProductsQueryBuilder` (chainable)

## Examples

### Minimal fields

```javascript theme={null}
const { items } = await openbridge.products
    .list()
    .select(['id', 'title', 'handle'])
```

### For product cards

```javascript theme={null}
const { items } = await openbridge.products
    .list()
    .select([
        'title',
        'handle',
        'priceRange',
        'featuredImage',
        'availableForSale'
    ])
```

### For product page

```javascript theme={null}
const product = await openbridge.products
    .get('product-handle')
    .select([
        'title',
        'descriptionHtml',
        'images',
        'priceRange',
        'compareAtPriceRange',
        'options',
        'variants',
        'vendor'
    ])
```

### For variant selector

```javascript theme={null}
const product = await openbridge.products
    .get('product-handle')
    .select(['options', 'variants'])
```
