Skip to main content

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

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?

optional description: string | RawDraftContentState

User-facing description of the print option.

Provides context and instructions about the print area, helping users understand capabilities and constraints.


fullScreenView?

optional fullScreenView: boolean

If true, the print editor will open in full-screen mode. Provides more space for detailed design work.


generateCroppedView?

optional generateCroppedView: boolean

If true, it will generate cropped image alongside texture. It will be PNG with transparency cropped to fit mask


image?

optional image: string

Path to a currently selected image. References the image file to be applied as the main design element.


images?

optional images: PrintOnDemandImage[]

User-uploaded or selected images in the design. Contains all image assets that have been added to the print.


layers?

optional layers: 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?

optional opaque: 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?

optional openAs: 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?

optional showQuality: 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?

optional visibility-code: string

Visibility code that determines when this print option is available. Used for conditional display based on other selected options.