Version 2025-07 is the last API version to support React-based UI components. Later versions use web components, native UI elements with built-in accessibility, better performance, and consistent styling with Shopify's design system. Check out the migration guide to upgrade your extension.
Print API
The Print API enables document printing functionality in your POS UI extension. Use this API to trigger the native print dialog for your documents.
Supported document types:
- HTML documents (
.html,.htm) - Best printing experience with full CSS styling, embedded images, and complex layouts. Use for receipts, invoices, and formatted reports. - Text files (
.txt,.csv) - Plain text with basic content and tabular data support. Use for simple receipts and data exports. - Image files (
.png,.jpg,.jpeg,.gif,.bmp,.webp) - Common web formats with format-specific optimizations. Use for logos, charts, QR codes, and barcodes. - PDF files (
.pdf) - Behavior varies by platform: prints directly on iOS/desktop, but downloads to external viewer on Android. Use for complex documents and compliance requirements.
Supported targets
- pos.
cart. line-item-details. action. menu-item. render - pos.
cart. line-item-details. action. render - pos.
customer-details. action. menu-item. render - pos.
customer-details. action. render - pos.
customer-details. block. render - pos.
draft-order-details. action. menu-item. render - pos.
draft-order-details. action. render - pos.
draft-order-details. block. render - pos.
exchange. post. action. menu-item. render - pos.
exchange. post. action. render - pos.
exchange. post. block. render - pos.
home. modal. render - pos.
home. tile. render - pos.
order-details. action. menu-item. render - pos.
order-details. action. render - pos.
order-details. block. render - pos.
product-details. action. menu-item. render - pos.
product-details. action. render - pos.
product-details. block. render - pos.
purchase. post. action. menu-item. render - pos.
purchase. post. action. render - pos.
purchase. post. block. render - pos.
return. post. action. menu-item. render - pos.
return. post. action. render - pos.
return. post. block. render
Supported targets
- pos.
cart. line-item-details. action. menu-item. render - pos.
cart. line-item-details. action. render - pos.
customer-details. action. menu-item. render - pos.
customer-details. action. render - pos.
customer-details. block. render - pos.
draft-order-details. action. menu-item. render - pos.
draft-order-details. action. render - pos.
draft-order-details. block. render - pos.
exchange. post. action. menu-item. render - pos.
exchange. post. action. render - pos.
exchange. post. block. render - pos.
home. modal. render - pos.
home. tile. render - pos.
order-details. action. menu-item. render - pos.
order-details. action. render - pos.
order-details. block. render - pos.
product-details. action. menu-item. render - pos.
product-details. action. render - pos.
product-details. block. render - pos.
purchase. post. action. menu-item. render - pos.
purchase. post. action. render - pos.
purchase. post. block. render - pos.
return. post. action. menu-item. render - pos.
return. post. action. render - pos.
return. post. block. render
Anchor to PropertiesProperties
The Print API object enables document printing functionality in your POS UI extension. Access the following properties on the API object to trigger the native print dialog for your documents.
- Anchor to printprintprint(src: string) => Promise<void>(src: string) => Promise<void>requiredrequired
Triggers a print dialog for the specified document source. The
print()method accepts either:- A relative path that will be appended to your app's application_url
- A full URL to your app's backend that will be used to return the document to print
Returns a promise that resolves when content is ready and the native print dialog appears. Use for printing custom documents, receipts, labels, or reports.
Anchor to Best practicesBest practices
- Handle printing errors gracefully: Implement proper error handling for print operations, including network failures, unsupported document types, or printer connectivity issues.
- Optimize documents for printing: Design your printable documents with appropriate sizing, margins, and formatting that work well with printers and standard paper sizes.
- Provide user feedback: Give users clear feedback about print operations, including loading states, success confirmations, and error messages when printing fails.
Anchor to LimitationsLimitations
- PDF printing on Android devices requires downloading the file and using an external application, which may interrupt the user workflow.
- Print operations depend on device printer connectivity and configuration, which may not be available in all POS setups.
- Document formatting and appearance may vary depending on the printer type, paper size, and device capabilities.