# tys.products.update()

> Replaces the SKU, name and category (all three required).

Source: https://docs.tryyoursize.com/reference/node/products-update/

*Method* · `@tryyoursize/node`

Replaces the SKU, name and category (all three required).

```ts
update(idOrSku: string, input: ProductInput, options?: RequestOptions): Promise<Product>
```

## Parameters

- **`idOrSku`** (`string`, required): The product's TryYourSize ID or your SKU (URL-encoded for you, so `TEE/01` works).
- **`input`** (`ProductInput`, required)
  - **`external_id`** (`string`, required)
  - **`name`** (`string`, required)
  - **`category`** (`GarmentCategory`, required): The garment type; it sets which POMs are needed.
- **`options`** (`RequestOptions`, optional)

## Returns

`Promise<Product>`: The updated product.

## Example

**Node.js**

```ts
await tys.products.update("TEE-001", { external_id: "TEE-001", name: "Basic tee (organic)", category: "tshirt" });
```

**Python**

```python
tys.products.update("TEE-001", external_id="TEE-001", name="Basic tee (organic)", category="tshirt")
```

**cURL**

```bash
curl -X PATCH https://api.tryyoursize.com/v1/products/TEE-001 \
  -H "Authorization: Bearer $TRYYOURSIZE_SECRET_KEY" \
  -H "TYS-Version: 2026-10-25" \
  -H "Content-Type: application/json" \
  -d '{"external_id":"TEE-001","name":"Basic tee (organic)","category":"tshirt"}'
```

## See also

- [products.update (HTTP API)](https://docs.tryyoursize.com/api/reference/operations/updatecatalogproduct.md)
