Interface: PrintOnDemandOption
Advanced print-on-demand configuration for customizable printed products.
PrintOnDemandOption enables sophisticated print customization capabilities, allowing users to upload images, position graphics, and create personalized designs that are applied to products through digital printing processes. This configuration defines print areas, quality settings, design constraints, and the complete parameters needed for production-ready print files.
This interface is essential for products offering custom printing services, from apparel and promotional items to packaging and signage. It balances creative freedom with production requirements to ensure printable, high-quality results.
The print-on-demand system supports multi-layer compositions, allowing background images, user uploads, and masks to create complex designs while respecting printable area constraints.
Example
// T-shirt with custom front print area
{
materialId: "front-print-area",
maxLogos: 3,
textureSize: 2048,
mobileTextureSize: 1024,
unit: "in",
width: 12,
height: 16,
resolution: 300,
layers: [
{ id: "background", src: "shirt-template.png" },
{ id: "print-mask", src: "print-area.png", printAreaMask: true }
]
}
Extends
Record<string,unknown>
Indexable
[key: string]: unknown
Properties
accept
accept:
string[]
List of file extensions that are accepted for upload. Restricts the types of images users can upload (e.g., ['jpg', 'png', 'svg']).
arTextureSize
arTextureSize:
number
The resolution of the texture used for print preview in AR experiences. Optimized for AR performance and visual quality.
code
code:
string
Configuration code for this print option. Used in generating the complete product code when this option is selected.
conversionSettings
conversionSettings:
object[]
Settings for image conversion and processing. Controls how uploaded images are processed before printing.
key
key:
string
value
value:
string
description?
optionaldescription:string|RawDraftContentState
User-facing description of the print option.
Provides context and instructions about the print area, helping users understand capabilities and constraints.
fullScreenView?
optionalfullScreenView:boolean
If true, the print editor will open in full-screen mode.
Provides more space for detailed design work.
generateCroppedView?
optionalgenerateCroppedView:boolean
If true, it will generate cropped image alongside texture. It will be PNG with transparency cropped to fit mask
image?
optionalimage:string
Path to a currently selected image. References the image file to be applied as the main design element.
images?
optionalimages:PrintOnDemandImage[]
User-uploaded or selected images in the design. Contains all image assets that have been added to the print.
layers?
optionallayers:PrintOnDemandLayer[]
Background and printable area layers for the design. Defines the visual structure of the print canvas.
materialId
materialId:
string
Target material ID for print application.
Identifies the specific 3D model material/surface where the custom print will be applied. This links the print configuration to the correct area of the product model.
maxLogos
maxLogos:
number
Maximum number of images allowed in the design.
Limits design complexity and ensures printable results. Higher limits provide more creative freedom but may impact performance and production costs.
measurementType
measurementType:
MeasurementUnitType
Unit of measurement for the print area ("mm", "in", etc.). Defines how real-world dimensions are expressed.
mobileTextureSize
mobileTextureSize:
number
The resolution of the texture used for print preview on mobile devices. Typically lower than desktop to conserve memory on mobile devices.
opaque?
optionalopaque:boolean
If true, the print material is opaque and blocks the underlying material.
If false, the print may have transparent areas showing the base material.
openAs?
optionalopenAs:PrintOnDemandOpenAsType
Specifies how the editor should be opened (e.g., "modal", "inline"). Controls the UI presentation of the print editor.
realHeight
realHeight:
number
Actual height of the printable area in the specified measurement units. Represents the physical size of the print area on the product.
realWidth
realWidth:
number
Actual width of the printable area in the specified measurement units. Represents the physical size of the print area on the product.
requiredDPI
requiredDPI:
number
Minimum dots-per-inch resolution required for acceptable print quality. Used to validate uploaded images and warn about low-resolution assets.
showQuality?
optionalshowQuality:boolean
If true, quality indicators will be shown for uploaded images.
Provides visual feedback about image resolution suitability.
textureSize
textureSize:
number
The resolution of the texture used for print preview on desktop devices. Higher values create sharper previews but require more memory.
visibility-code?
optionalvisibility-code:string
Visibility code that determines when this print option is available. Used for conditional display based on other selected options.