# EditCollectionInput

input type

Edit-input for a Collection. Every field optional, at least ONE required; supplied fields REPLACE, omitted fields are preserved. A supplied predicate replaces WHOLESALE (it can never be cleared — a dynamic collection always carries one) and is re-gated per ref exactly like create; excludedProductIds replaces wholesale (an empty list releases); sortMode replaces (never cleared — it has a birth default). collectionType is NOT editable (immutable at birth). The dynamic-only fields are REFUSED on a STATIC collection (the NAMED cross-type gate, RC-h).

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `caption` | [String](/types/#scalars) | no | No further notes. |
| `code` | [String](/types/#scalars) | no | No further notes. |
| `predicate` | [CollectionPredicateInput](/types/CollectionPredicateInput/) | no | The replacement predicate (wholesale; ≥1 axis) — dynamic collections only. |
| `excludedProductIds` | [ID](/types/#scalars) `[ID!]` | no | The replacement exclusion list (wholesale; an empty list releases) — dynamic only. |
| `sortMode` | [String](/types/#scalars) | no | The replacement sort mode (canned) — dynamic only. |

## Used by

- [updateCollection](/reference/collection/updateCollection/)
