# `catalog.product.setDigital` Set a product's digital/shipping posture: requiresShipping, delivered digital content, withdrawal exception. - **scope**: `catalog:write` - **storefront-visible** (bumps the catalog generation): no - **destructive**: no ## Payload | field | type | required | notes | |---|---|---|---| | `id` | string (/^prd_[a-zA-Z0-9]{1,32}$/) | yes | | | `requiresShipping` | boolean | yes | | | `digitalContent` | string (≤10000 chars) \| null | no | | | `withdrawalException` | string (/^[a-z_]{2,40}$/) \| null | no | | | `deliveryMode` | "shared" \| "pool" | no | | ### JSON Schema ```json { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "id": { "type": "string", "pattern": "^prd_[a-zA-Z0-9]{1,32}$" }, "requiresShipping": { "type": "boolean" }, "digitalContent": { "anyOf": [ { "type": "string", "minLength": 1, "maxLength": 10000 }, { "type": "null" } ] }, "withdrawalException": { "anyOf": [ { "type": "string", "pattern": "^[a-z_]{2,40}$" }, { "type": "null" } ] }, "deliveryMode": { "type": "string", "enum": [ "shared", "pool" ] } }, "required": [ "id", "requiresShipping" ], "additionalProperties": false } ```