# Recommendation

> The shopper's recommended size for one product, in the store's own size labels.

Source: https://docs.tryyoursize.com/reference/ios/recommendation-type/

*Type* · `TryYourSize (Swift)`

The shopper's recommended size for one product, in the store's own size labels.

## Properties

- **`product`** (`String`, required)
- **`status`** (`Status`, required)
- **`size`** (`String?`, required): The recommended size in the store's label (its size map), or nil.
- **`studioSize`** (`String?`, required): The same size as entered in TryYourSize Studio, or nil.
- **`wearableSizes`** (`[String]?`, required): Sizes that can be worn on this body, in the store's labels (when simulated).

## Example

**Swift**

```swift
let rec = try await tys.recommendation(for: "SKU-123")
if rec.status == .ready, let size = rec.size { selectedSize = size }
```

**Kotlin**

```kotlin
lifecycleScope.launch {
    val rec = tys.recommendation("SKU-123")
    if (rec.status == Recommendation.Status.READY) selected = rec.size
}
```

**React Native**

```tsx
const rec = await getRecommendation("SKU-123");
if (rec.status === "ready") setSize(rec.size);
```

**Flutter**

```dart
final rec = await tys.recommendation('SKU-123');
if (rec.status == RecommendationStatus.ready) setState(() => size = rec.size);
```

## Notes

`status`: `.ready` (`size` is set), `.computing`, `.noSize` (`"none"` on the web: no size can be worn), `.signedOut`, `.unavailable`.
