changedInput schema / properties / payload / oneOf
Previous value: -[
- {
- "allOf": [
- {
- "description": "Request to create a product. The shape is discriminated by the `type` field.",
- "properties": {
- "type": {
- "type": "string"
- }
- },
- "required": [
- "type"
- ],
- "title": "Create Product Request",
- "type": "object"
- },
- {
- "properties": {
- "colors": {
- "description": "Colors to render. Defaults to all available product colors when omitted. Values not offered by the product are ignored; the request is rejected with 400 if none of the supplied colors are available.",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "description": {
- "description": "Product description",
- "type": "string"
- },
- "name": {
- "description": "Product name",
- "type": "string"
- },
- "productTemplateId": {
- "description": "Id of the product template to render the design onto, from `GET /open-api/v1.0/product-templates`.",
- "type": "string"
- },
- "profitMargin": {
- "description": "Profit margin in USD applied on top of the base cost.",
- "type": "number"
- },
- "publishOnCreate": {
- "description": "Publish the product immediately on creation. Defaults to false (product stays hidden).",
- "type": "boolean"
- },
- "regions": {
- "description": "Design regions to place on the product. Each region references a registered media image by id (register it via `POST /open-api/v1.0/media/images` and pass the returned id as `imageId`).",
- "items": {
- "description": "A product region paired with the registered media image to render on it.",
- "properties": {
- "imageId": {
- "description": "Id of a registered media-library image to render on the region. Register the image first via `POST /open-api/v1.0/media/images` and pass the returned id here.",
- "type": "string"
- },
- "placementId": {
- "description": "Placement to target when `placementStrategy` is `PLACEMENT_ID`. Required for that strategy and ignored by the others.",
- "type": "string"
- },
- "placementStrategy": {
- "description": "How the image is placed on the region. Defaults to `AUTO` when omitted, and takes precedence over `placementId`/`fillAllPlacements`.\n- `AUTO` — let the renderer decide using the product's automation defaults (its preferred placement, or fill-all for products like mugs/stickers).\n- `FILL_ALL` — apply the image to every placement in the region.\n- `FULL_REGION` — render the image across the full region, skipping the preferred placement.\n- `PLACEMENT_ID` — target the single placement named by `placementId` (required for this strategy).",
- "enum": [
- "AUTO",
- "FILL_ALL",
- "FULL_REGION",
- "PLACEMENT_ID"
- ],
- "type": "string"
- },
- "region": {
- "description": "Name of the product region to place the image on, e.g. `front` or `back`.",
- "type": "string"
- }
- },
- "required": [
- "imageId",
- "region"
- ],
- "title": "Product Design Region",
- "type": "object"
- },
- "type": "array"
- },
- "sizes": {
- "description": "Sizes to include. Defaults to all available product sizes when omitted. Values not offered by the product are ignored; the request is rejected with 400 if none of the supplied sizes are available. When both colors and sizes are supplied, the request is also rejected with 400 if no requested color/size combination is an available variant.",
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "type": "object"
- },
- {
- "properties": {
- "type": {
- "const": "design"
- }
- },
- "type": "object"
- }
- ],
- "description": "Create a product by running the design pipeline: renders each region's registered image into mockups and creates a purchasable product. The product is created hidden unless `publishOnCreate` is true.",
- "required": [
- "name",
- "productTemplateId",
- "regions",
- "type"
- ],
- "title": "Create Design Product Request"
- },
- {
- "allOf": [
- {
- "description": "Request to create a product. The shape is discriminated by the `type` field.",
- "properties": {
- "type": {
- "type": "string"
- }
- },
- "required": [
- "type"
- ],
- "title": "Create Product Request",
- "type": "object"
- },
- {
- "properties": {
- "description": {
- "description": "Product description",
- "type": "string"
- },
- "name": {
- "description": "Product name",
- "type": "string"
- },
- "price": {
- "description": "Price set by the creator, in USD.",
- "type": "number"
- },
- "publishOnCreate": {
- "description": "Publish the product immediately on creation. Defaults to false (product stays hidden).",
- "type": "boolean"
- }
- },
- "type": "object"
- },
- {
- "properties": {
- "type": {
- "const": "digital"
- }
- },
- "type": "object"
- }
- ],
- "description": "Create a digital product with a creator-set price in USD and digital fulfillment. Attach files and images via the /products/{productId}/digital-files and /products/{productId}/images endpoints.",
- "required": [
- "description",
- "name",
- "price",
- "type"
- ],
- "title": "Create Digital Product Request"
- }
-]New value: +[
+ {
+ "allOf": [
+ {
+ "$ref": "#/$defs/Create_Product_Request"
+ },
+ {
+ "properties": {
+ "colors": {
+ "description": "Colors to render. Defaults to all available product colors when omitted. Values not offered by the product are ignored; the request is rejected with 400 if none of the supplied colors are available.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "description": {
+ "description": "Product description",
+ "type": "string"
+ },
+ "name": {
+ "description": "Product name",
+ "type": "string"
+ },
+ "productTemplateId": {
+ "description": "Id of the product template to render the design onto, from `GET /open-api/v1.0/product-templates`.",
+ "type": "string"
+ },
+ "profitMargin": {
+ "description": "Profit margin in USD applied on top of the base cost.",
+ "type": "number"
+ },
+ "publishOnCreate": {
+ "description": "Publish the product immediately on creation. Defaults to false (product stays hidden).",
+ "type": "boolean"
+ },
+ "regions": {
+ "description": "Design regions to place on the product. Each region references a registered media image by id (register it via `POST /open-api/v1.0/media/images` and pass the returned id as `imageId`).",
+ "items": {
+ "description": "A product region paired with the registered media image to render on it.",
+ "properties": {
+ "imageId": {
+ "description": "Id of a registered media-library image to render on the region. Register the image first via `POST /open-api/v1.0/media/images` and pass the returned id here.",
+ "type": "string"
+ },
+ "placementId": {
+ "description": "Placement to target when `placementStrategy` is `PLACEMENT_ID`. Required for that strategy and ignored by the others.",
+ "type": "string"
+ },
+ "placementStrategy": {
+ "description": "How the image is placed on the region. Defaults to `AUTO` when omitted, and takes precedence over `placementId`/`fillAllPlacements`.\n- `AUTO` — let the renderer decide using the product's automation defaults (its preferred placement, or fill-all for products like mugs/stickers).\n- `FILL_ALL` — apply the image to every placement in the region.\n- `FULL_REGION` — render the image across the full region, skipping the preferred placement.\n- `PLACEMENT_ID` — target the single placement named by `placementId` (required for this strategy).",
+ "enum": [
+ "AUTO",
+ "FILL_ALL",
+ "FULL_REGION",
+ "PLACEMENT_ID"
+ ],
+ "type": "string"
+ },
+ "region": {
+ "description": "Name of the product region to place the image on, e.g. `front` or `back`.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "imageId",
+ "region"
+ ],
+ "title": "Product Design Region",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "sizes": {
+ "description": "Sizes to include. Defaults to all available product sizes when omitted. Values not offered by the product are ignored; the request is rejected with 400 if none of the supplied sizes are available. When both colors and sizes are supplied, the request is also rejected with 400 if no requested color/size combination is an available variant.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "properties": {
+ "type": {
+ "const": "design"
+ }
+ },
+ "type": "object"
+ }
+ ],
+ "description": "Create a product by running the design pipeline: renders each region's registered image into mockups and creates a purchasable product. The product is created hidden unless `publishOnCreate` is true.",
+ "required": [
+ "name",
+ "productTemplateId",
+ "regions",
+ "type"
+ ],
+ "title": "Create Design Product Request"
+ },
+ {
+ "allOf": [
+ {
+ "$ref": "#/$defs/Create_Product_Request"
+ },
+ {
+ "properties": {
+ "description": {
+ "description": "Product description",
+ "type": "string"
+ },
+ "name": {
+ "description": "Product name",
+ "type": "string"
+ },
+ "price": {
+ "description": "Price set by the creator, in USD.",
+ "type": "number"
+ },
+ "publishOnCreate": {
+ "description": "Publish the product immediately on creation. Defaults to false (product stays hidden).",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "properties": {
+ "type": {
+ "const": "digital"
+ }
+ },
+ "type": "object"
+ }
+ ],
+ "description": "Create a digital product with a creator-set price in USD and digital fulfillment. Attach files and images via the /products/{productId}/digital-files and /products/{productId}/images endpoints.",
+ "required": [
+ "description",
+ "name",
+ "price",
+ "type"
+ ],
+ "title": "Create Digital Product Request"
+ }
+]