<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/pos-ui-extensions-can-now-print-directly-to-hardware-receipt-printers-g6ywjd1t1" -->

---
title: POS UI extensions can now print directly to hardware...
description: Shopify POS UI Extensions 2026-07 introduces the new Printing API (`shopify.printing`), replacing the deprecated `shopify.print`. The API adds `getPrinters()`...
canonical: https://daily.dev/posts/pos-ui-extensions-can-now-print-directly-to-hardware-receipt-printers-g6ywjd1t1
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: POS UI extensions can now print directly to hardware receipt printers | daily.dev
og:description: Shopify POS UI Extensions 2026-07 introduces the new Printing API (`shopify.printing`), replacing the deprecated `shopify.print`. The API adds `getPrinters()`...
og:url: https://daily.dev/posts/pos-ui-extensions-can-now-print-directly-to-hardware-receipt-printers-g6ywjd1t1
og:image: https://api.daily.dev/og/posts/G6YwjD1t1.png
og:image:alt: POS UI extensions can now print directly to hardware receipt printers
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# POS UI extensions can now print directly to hardware receipt printers

**[Shopify Developer changelog](https://daily.dev/sources/shopifychangelog)** · 3 min read · 1 upvotes · 0 comments

## Summary

Shopify POS UI Extensions 2026-07 introduces the new Printing API (`shopify.printing`), replacing the deprecated `shopify.print`. The API adds `getPrinters()` to discover connected hardware receipt printers and `print(src, options?)` to send documents directly to a printer without a system dialog. HTML and images print directly to hardware printers; PDFs must use the system dialog. Hardware printer discovery requires Shopify POS 11.11.0 or later — older versions return an empty array from `getPrinters()`. Developers should handle the empty-array case by falling back to the system print dialog.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://shopify.dev/changelog/pos-ui-extensions-can-now-print-directly-to-hardware-receipt-printers>

## Questions this post answers

### How do I print directly to a hardware receipt printer from a Shopify POS UI extension?

Use the new Printing API introduced in POS UI Extensions 2026-07, accessed via shopify.printing. Call shopify.printing.getPrinters() to discover connected printers, then pass one to shopify.printing.print(src, {printer}) to print without opening the system dialog. Omitting the printer option opens the system print dialog instead, which is required for PDFs since direct printer targeting throws an error for PDF sources.

_Track Shopify API changelog updates like this on daily.dev when building POS printing features._

### Why does shopify.printing.getPrinters() return an empty array even though a receipt printer is paired?

Hardware printer discovery requires Shopify POS version 11.11.0 or later. On earlier POS app versions, getPrinters() returns an empty array regardless of whether a receipt printer is paired to the device. The system print dialog still works normally in that case, so apps should always fall back to it when no printers are returned.

_Developers debugging POS extension quirks can follow platform version requirements on daily.dev._

### Is shopify.print deprecated in Shopify POS UI extensions?

Yes, shopify.print is deprecated as of POS UI Extensions 2026-07, superseded by the new shopify.printing API which adds direct hardware receipt printer support that shopify.print never had. No immediate migration is required; developers only need to switch when they adopt the 2026-07 API version, and earlier API versions remain unaffected.

_daily.dev helps developers stay ahead of deprecations before they force a migration._

## Similar posts on daily.dev

- [POS UI extensions: Developer experience Improvements](https://daily.dev/posts/pos-ui-extensions-developer-experience-improvements-xu8nyto8j) · Shopify Developer changelog · 0 upvotes · 0 comments
- [shopify.app.extensions\(\) in App Bridge now supports POS UI extensions](https://daily.dev/posts/shopify-app-extensions-in-app-bridge-now-supports-pos-ui-extensions-8fxnwsumw) · Shopify Developer changelog · 0 upvotes · 0 comments
- [Revamped POS UI extensions reference](https://daily.dev/posts/revamped-pos-ui-extensions-reference-cfutegdex) · Shopify Developer changelog · 0 upvotes · 0 comments
- [InvoicePrinter 2.5 with QR images and Ruby 3.4 support](https://daily.dev/posts/invoiceprinter-2-5-with-qr-images-and-ruby-3-4-support-sn78yllzb) · RUBYLAND · 0 upvotes · 0 comments
- [I invited strangers to message me through a receipt printer](https://daily.dev/posts/i-invited-strangers-to-message-me-through-a-receipt-printer-x6bdvc5zu) · Hacker News · 0 upvotes · 0 comments

---

Tags: [#javascript](https://daily.dev/tags/javascript), [#ecommerce](https://daily.dev/tags/ecommerce), [#shopify](https://daily.dev/tags/shopify)

[View this post on daily.dev](https://daily.dev/posts/pos-ui-extensions-can-now-print-directly-to-hardware-receipt-printers-g6ywjd1t1)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"POS UI extensions can now print directly to hardware receipt printers","url":"https://daily.dev/posts/pos-ui-extensions-can-now-print-directly-to-hardware-receipt-printers-g6ywjd1t1","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/pos-ui-extensions-can-now-print-directly-to-hardware-receipt-printers-g6ywjd1t1"},"datePublished":"2026-07-27T16:19:03.041Z","dateModified":"2026-09-14T09:18:02.790Z","description":"Shopify POS UI Extensions 2026-07 introduces the new Printing API (`shopify.printing`), replacing the deprecated `shopify.print`. The API adds `getPrinters()`...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/a5b9f0de82c011d79696b4f6b99b7364?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/a5b9f0de82c011d79696b4f6b99b7364?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Shopify Developer changelog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Shopify Developer changelog","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/aefcb5d2c1ca4b45b5d2256b9e2a9cc3","url":"https://daily.dev/sources/shopifychangelog"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/pos-ui-extensions-can-now-print-directly-to-hardware-receipt-printers-g6ywjd1t1","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"javascript,ecommerce,shopify","timeRequired":"PT3M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Shopify Developer changelog","item":"https://daily.dev/sources/shopifychangelog"},{"@type":"ListItem","position":3,"name":"POS UI extensions can now print directly to hardware receipt printers"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/pos-ui-extensions-can-now-print-directly-to-hardware-receipt-printers-g6ywjd1t1#faq","mainEntity":[{"@type":"Question","name":"How do I print directly to a hardware receipt printer from a Shopify POS UI extension?","acceptedAnswer":{"@type":"Answer","text":"Use the new Printing API introduced in POS UI Extensions 2026-07, accessed via shopify.printing. Call shopify.printing.getPrinters() to discover connected printers, then pass one to shopify.printing.print(src, {printer}) to print without opening the system dialog. Omitting the printer option opens the system print dialog instead, which is required for PDFs since direct printer targeting throws an error for PDF sources. Track Shopify API changelog updates like this on daily.dev when building POS printing features."}},{"@type":"Question","name":"Why does shopify.printing.getPrinters() return an empty array even though a receipt printer is paired?","acceptedAnswer":{"@type":"Answer","text":"Hardware printer discovery requires Shopify POS version 11.11.0 or later. On earlier POS app versions, getPrinters() returns an empty array regardless of whether a receipt printer is paired to the device. The system print dialog still works normally in that case, so apps should always fall back to it when no printers are returned. Developers debugging POS extension quirks can follow platform version requirements on daily.dev."}},{"@type":"Question","name":"Is shopify.print deprecated in Shopify POS UI extensions?","acceptedAnswer":{"@type":"Answer","text":"Yes, shopify.print is deprecated as of POS UI Extensions 2026-07, superseded by the new shopify.printing API which adds direct hardware receipt printer support that shopify.print never had. No immediate migration is required; developers only need to switch when they adopt the 2026-07 API version, and earlier API versions remain unaffected. daily.dev helps developers stay ahead of deprecations before they force a migration."}}]}
```

