# `PolarExpress.Schemas.CustomerProduct`
[🔗](https://github.com/jeffhuen/polar_express/blob/main/lib/polar_express/schemas/customer_product.ex#L2)

CustomerProduct

Schema of a product for customer portal.

# `t`

```elixir
@type t() :: %PolarExpress.Schemas.CustomerProduct{
  benefits: term(),
  created_at: term(),
  description: term(),
  id: term(),
  is_archived: term(),
  is_recurring: term(),
  medias: term(),
  modified_at: term(),
  name: term(),
  organization_id: term(),
  prices: term(),
  recurring_interval: term(),
  recurring_interval_count: term(),
  trial_interval: term(),
  trial_interval_count: term(),
  visibility: term()
}
```

* `benefits` - The benefits granted by the product.
* `created_at` - Creation timestamp of the object. Format: date-time.
* `description` - The description of the product. Nullable.
* `id` - The ID of the object. Format: uuid4.
* `is_archived` - Whether the product is archived and no longer available.
* `is_recurring` - Whether the product is a subscription.
* `medias` - The medias associated to the product.
* `modified_at` - Last modification timestamp of the object. Nullable.
* `name` - The name of the product.
* `organization_id` - The ID of the organization owning the product. Format: uuid4.
* `prices` - List of available prices for this product.
* `recurring_interval` - The recurring interval of the product. If `None`, the product is a one-time purchase. Nullable.
* `recurring_interval_count` - Number of interval units of the subscription. If this is set to 1 the charge will happen every interval (e.g. every month), if set to 2 it will be every other month, and so on. None for one-time products. Nullable.
* `trial_interval` - The interval unit for the trial period. Nullable.
* `trial_interval_count` - The number of interval units for the trial period. Nullable.
* `visibility` - The visibility of the product.

# `schema_name`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
