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

# Edit Product Basic Info

> Update a claimed product's identity fields (name, brand, description, manufacturer, origin, etc.) — the programmatic equivalent of the dashboard product-edit page.

Programmatic equivalent of the dashboard's `products/<gtin>/edit/` page.

## When to use

* A brand owner needs to update the name, brand, description, manufacturer,
  country of origin, net content, usage instructions, canonical product-page
  URL, primary language, or category of a product they've already claimed.

## Auth

`X-API-Key` header or OAuth token with `products:write` scope. The caller
must be an `OWNER`, `MANAGER`, or `EDITOR` on the organization that owns the
GTIN.

## Flow

```
PATCH /products/api/v1/products/{gtin}
```

Every field is optional — only fields explicitly present in the request body
are written; omit a field (or send it as `null`) to leave it unchanged.

| Field                    | Notes                                                                 |
| ------------------------ | --------------------------------------------------------------------- |
| `product_name`           | Display name as marketed on packaging.                                |
| `brand`                  | Looked up by name under the caller's org; created if no match.        |
| `description`            | Long-form description.                                                |
| `manufacturer`           | Looked up by name; created if no match.                               |
| `country_of_origin`      | ISO 3166-1 alpha-2.                                                   |
| `net_content`            | Free-text (e.g. `"340g"`).                                            |
| `usage_instructions`     | Directions for use.                                                   |
| `brand_product_page_url` | Absolute URL of the brand's canonical page.                           |
| `primary_language`       | ISO 639-1.                                                            |
| `category_id`            | `ProductCategory` UUID.                                               |
| `metadata`               | Stripe-style semantics — empty string deletes a key, `{}` clears all. |

Returns `200` with the updated `ProductOut`, `403` if the caller lacks the
required role, `404` if the GTIN isn't owned by the caller's organization,
`422` for a banned consumer date-label phrase (AB 660) in a free-text field.

## Related skills

Dimensions/weight, GPC classification, and ingredients are separate fields on
the same `PATCH` endpoint — see `edit-product-dimensions`,
`edit-product-classification`, and `edit-product-ingredients`. Images,
nutrition, documents, and videos are separate resource families on the
Dashboard API — see their respective skills.
