# Debugging Discover how you can debug your POS UI Extensions. ## Overview APIs and components will report if they receive parameters of an unexpected type. For further debugging, you can use `console.log` to print any additional information in the console. ### APIs If an API receives an incorrect parameter, it won't attempt to perform the action and it will `throw` an error instead. This error can be viewed either by implementing a `try/catch` block or by using the Chrome console. ### Components If a component is given an incorrect parameter, the extension will be replaced with a non-descriptive user interface that indicates an issue has occurred. In case the extension is running locally, the developer will also see the exact error displayed as a toast message. **In the future we plan to modify this behavior to display the error in the Chrome console instead, aligning with the API approach.** ## Debugging on Android This section covers how to view POS UI Extension logs and errors on Android devices. ### Requirements - The extension needs to be running on a [development store](/docs/apps/tools/development-stores) in the POS app. Debugging is only available on development stores. You can create a development store from the Partner Portal, or you can use an existing development store for debugging purposes. ![Development store](/assets/api/pos/debug-development-store.png) - You've set up an Android Studio emulator, or you have an Android device available with the POS app installed. If you use an Android device, you can follow the [Chrome developer documentation](https://developer.chrome.com/docs/devtools/remote-debugging/) to set up a device for debugging purposes. ### Android 1. Connect the Android device to your computer or launch the Android emulator. 2. Make sure the POS UI Extension is running on the POS app. 3. Using Google Chrome, navigate to chrome://inspect. 4. The UI Extension sandbox should appear on the list as "Shopify UI Extensions Internal" 5. Click the inspect button. This should open a DevTools window, where you will be able to interact with the console, and view `console.log` statements in your code along with inspecting the network activity. ### Demo The following demo shows how to debug a POS UI Extension on Android by using the Chrome dev tools. The example extension code has `console.log` statements when the SmartGrid tile is pressed to open modal. ![Debugging demo](/assets/api/pos/debug-ui-extension.gif) ## Debugging on iOS This section covers how to view POS UI Extension logs and errors on iOS devices. ### Requirements - The extension needs to be running on a [development store](/docs/apps/tools/development-stores) in the POS app. Debugging is only available on development stores. You can create a development store from the Partner Portal, or you can use an existing development store for debugging purposes. ![Development store](/assets/api/pos/debug-development-store.png) - You have an iOS device available with the POS app installed. Please follow the [Safari documentation](https://support.apple.com/en-ca/guide/safari/sfri20948/mac) to set up dev tooling. ### iOS 1. Connect the iOS device to your computer. 2. Make sure the POS UI Extension is running on the POS app. 3. Using Safari on your computer, click the 'Develop' menu in the top toolbar. 4. You should see your iOS device appear there. Select it. A new menu will appear, and you can then select the load.html context. 5. This should open a new window, where you will be able to interact with the console, and view `console.log` statements in your code along with inspecting the network activity. ### Demo The following demo shows ow to debug a POS UI Extension on iOS by using the Safari dev tools. The example extension code has `console.log` statements that appear when we open the Safari dev tools. ![Debugging demo](/assets/api/pos/debug-ui-extension-ios.gif) ## References - [Action API](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/apis/action-api.txt): The Action API allows an action extension to modally present its corresponding modal target. - [Cart API](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/apis/cart-api.txt): The Cart API enables UI Extensions to manage and interact with POS cart contents, such as discounts, line items, and customer details. It provides a comprehensive set of functions for adding and removing items, alongside a subscribable object that keeps the UI Extension updated with real-time changes to the cart. - [Connectivity API](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/apis/connectivity-api.txt): The Connectivity API enables POS UI extensions to retrieve device connectivity information, such as whether the device has an internet connection. - [Device API](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/apis/device-api.txt): The Device API allows the UI Extension to retrieve device information including the device name and ID. - [Locale API](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/apis/locale-api.txt): The Locale API allows the extension to retrieve the merchant's locale. - [Navigation API](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/apis/navigation-api.txt): The Navigation API enables POS UI extension to navigate between screens. - [Order API](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/apis/order-api.txt): The Order API provides an extension with data about the current order. - [ProductSearch API](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/apis/productsearch-api.txt): The ProductSearch API gives extensions access to the native product search and fetching functionality of Shopify POS. The interface provides numerous functions to search for products by query, or to fetch the details of one or more products or product variants. - [Scanner API](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/apis/scanner-api.txt): The Scanner API enables an extension to access scanner data and available scanning sources supported by the device. - [Session API](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/apis/session-api.txt): The Session API contains the information about the current user session, and allows to fetch a fresh session token for communication with your apps backend service. - [Toast API](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/apis/toast-api.txt): The Toast API allows the display of a Toast component. - [ActionItem](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/actionitem.txt): The `ActionItem` provides a tappable surface on the specified extension target as an entry point to an extension. Note that the text displayed on this `ActionItem` is dependent on the description of the extension. - [Badge](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/badge.txt): Badges are used to inform merchants of the status of an item or action that’s been taken. - [Banner](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/banner.txt): A banner informs merchants about important changes or persistent conditions. Use if you need to communicate to merchants in a prominent way, without blocking other actions. - [Button](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/button.txt): Buttons enable the merchant to initiate actions, like "add", "save", or "next". - [CameraScanner](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/camerascanner.txt): The camera scanner uses the devices camera to scan and decode barcodes or QR codes. It displays a live feed with guidance markers for alignment and triggers actions within the app upon successful recognition. - [DateField](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/datefield.txt): A component that enables users to open a dialog and select a date through a text input. - [DatePicker](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/datepicker.txt): A component used to select a date through a dialog. - [Dialog](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/dialog.txt): A dialog is a high-priority, intentionally disruptive message that requires action from the merchant before they can continue using POS. - [EmailField](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/emailfield.txt): Use an email field to conveniently and accurately capture merchant email addresses. - [FormattedTextField](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/formattedtextfield.txt): Use a formatted text field when you require additional functionality such as the text field input type or a custom validator. - [Icon](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/icon.txt): A component that renders an icon from the POS asset catalog. - [Image](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/image.txt): The image component displays an image to a merchant in Shopify POS. - [List](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/list.txt): The list is a scrollable component in which the list rows are rendered. - [Navigator](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/navigator.txt): A component used to navigate between different screens. - [NumberField](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/numberfield.txt): Use a number field to conveniently and accurately capture numerical values. - [PinPad](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/pinpad.txt): A component used to authenticate or identify individuals through a standarized number pad. - [RadioButtonList](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/radiobuttonlist.txt): A radio button list lets merchants select from a given set of options. - [Screen](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/screen.txt): A component used in the root of a modal extension to define a screen. - [ScrollView](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/scrollview.txt): The ScrollView component allows content that doesn’t fully fit on screen to scroll. Typically, the ScrollView component serves as the root component of a Screen. - [SearchBar](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/searchbar.txt): The search bar lets merchants enter search queries for objects throughout the app. - [Section](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/section.txt): A component used to group other components together in a card-like UI. Usually, sections will be used inside a ScrollView. - [SegmentedControl](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/segmentedcontrol.txt): The segmented control lets the merchant easily switch between different lists or views on the same page. - [Selectable](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/selectable.txt): The selectable component allows you to wrap any non-interactive UI component to make it selectable. - [Spacing](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/spacing.txt): Set of spacing constants to be used in the UI Extensions components library. - [Stack](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/stack.txt): A container for other components that allows them to be stacked horizontally or vertically. When building complex UIs, this will be your primary building block. - [Stepper](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/stepper.txt): A component used for increasing or decreasing quantities. - [Text](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/text.txt): Text can be rendered in different sizes and colors in order to structure content. - [TextArea](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/textarea.txt): Use a text input to allow merchants to input or modify multiline text. - [TextField](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/textfield.txt): Use a text field to allow merchants to enter or edit text. If you want to specify the kind of input, then use a formatted text field. - [Tile](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/tile.txt): Tiles are customizable buttons that allow staff to complete actions quickly. Think of them as shortcuts--adding a 10% discount to an order, for example. Tiles provide contextual information and let merchants quickly access workflows, actions, and information from the smart grid and the top of detail pages. They’re dynamic and can change based on surrounding context, such as what’s in the cart. - [TimeField](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/timefield.txt): A component that enables users to open a dialog and select a time through a text input. - [TimePicker](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/components/timepicker.txt): A component used to select a time through a dialog. - [pos.home.modal.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/targets/smart-grid/pos-home-modal-render.txt): A full-screen extension target that renders when a `pos.home.tile.render` target calls for it - [pos.home.tile.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/targets/smart-grid/pos-home-tile-render.txt): A static extension target that renders as a smart grid tile - [pos.purchase.post.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/targets/post-purchase/pos-purchase-post-action-menu-item-render.txt): A static extension target that renders as a menu item on the post-purchase screen - [pos.purchase.post.action.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-04/targets/post-purchase/pos-purchase-post-action-render.txt): A full-screen extension target that renders when a `pos.purchase.post.action.menu-item.render` target calls for it - [Action API](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/apis/action-api.txt): The Action API allows an action extension to modally present its corresponding modal target. ### Supporting targets - [pos.home.tile.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-tile-render) - [pos.purchase.post.action.menu-item.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-menu-item-render) - [pos.order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-menu-item-render) - [pos.product-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-menu-item-render) - [pos.customer-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-menu-item-render) - [pos.draft-order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-menu-item-render) - [Cart API](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/apis/cart-api.txt): The Cart API enables UI Extensions to manage and interact with POS cart contents, such as discounts, line items, and customer details. It provides a comprehensive set of functions for adding and removing items, alongside a subscribable object that keeps the UI Extension updated with real-time changes to the cart. ### Supporting targets - [pos.home.tile.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-tile-render) - [pos.home.modal.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-modal-render) - [pos.product-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-menu-item-render) - [pos.product-details.action.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-render) - [pos.customer-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-menu-item-render) - [pos.customer-details.action.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-render) - [pos.order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-menu-item-render) - [pos.order-details.action.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-render) - [pos.draft-order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-menu-item-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-render) - [Connectivity API](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/apis/connectivity-api.txt): The Connectivity API enables POS UI extensions to retrieve device connectivity information, such as whether the device has an internet connection. - [Customer API](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/apis/customer-api.txt): The customer API provides an extension with data about the current customer. ### Supporting targets - [pos.customer-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-menu-item-render) - [pos.customer-details.action.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-render) - [Device API](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/apis/device-api.txt): The Device API allows the UI Extension to retrieve device information including the device name and ID. - [Draft Order API](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/apis/draft-order-api.txt): The Draft Order API provides an extension with data about the current draft order. ### Supporting targets - [pos.draft-order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-menu-item-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-render) - [Locale API](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/apis/locale-api.txt): The Locale API allows the extension to retrieve the merchant's locale. - [Navigation API](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/apis/navigation-api.txt): The Navigation API enables POS UI extension to navigate between screens. ### Supporting targets - [pos.home.modal.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-modal-render) - [pos.purchase.post.action.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-render) - [pos.product-details.action.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-render) - [pos.order-details.action.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-render) - [pos.customer-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-menu-item-render) - [Order API](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/apis/order-api.txt): The Order API provides an extension with data about the current order. ### Supporting targets - [pos.purchase.post.action.menu-item.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-menu-item-render) - [pos.purchase.post.action.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-render) - [pos.order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-menu-item-render) - [pos.order-details.action.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-render) - [Product API](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/apis/product-api.txt): The Product API provides an extension with data about the current Product. ### Supporting targets - [pos.product-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-menu-item-render) - [pos.product-details.action.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-render) - [ProductSearch API](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/apis/productsearch-api.txt): The ProductSearch API gives extensions access to the native product search and fetching functionality of Shopify POS. The interface provides numerous functions to search for products by query, or to fetch the details of one or more products or product variants. - [Scanner API](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/apis/scanner-api.txt): The Scanner API enables an extension to access scanner data and available scanning sources supported by the device. ### Supporting targets - [pos.home.modal.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-modal-render) - [pos.purchase.post.action.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-render) - [pos.product-details.action.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-render) - [pos.order-details.action.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-render) - [pos.customer-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-menu-item-render) - [Session API](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/apis/session-api.txt): The Session API contains the information about the current user session, and allows to fetch a fresh session token for communication with your apps backend service. - [Toast API](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/apis/toast-api.txt): The Toast API allows the display of a Toast component. - [ActionItem](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/actionitem.txt): The `ActionItem` provides a tappable surface on the specified extension target as an entry point to an extension. Note that the text displayed on this `ActionItem` is dependent on the description of the extension. - [Badge](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/badge.txt): Badges are used to inform merchants of the status of an item or action that’s been taken. - [Banner](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/banner.txt): A banner informs merchants about important changes or persistent conditions. Use if you need to communicate to merchants in a prominent way, without blocking other actions. - [Button](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/button.txt): Buttons enable the merchant to initiate actions, like "add", "save", or "next". - [CameraScanner](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/camerascanner.txt): The camera scanner uses the devices camera to scan and decode barcodes or QR codes. It displays a live feed with guidance markers for alignment and triggers actions within the app upon successful recognition. - [DateField](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/datefield.txt): A component that enables users to open a dialog and select a date through a text input. - [DatePicker](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/datepicker.txt): A component used to select a date through a dialog. - [Dialog](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/dialog.txt): A dialog is a high-priority, intentionally disruptive message that requires action from the merchant before they can continue using POS. - [EmailField](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/emailfield.txt): Use an email field to conveniently and accurately capture merchant email addresses. - [FormattedTextField](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/formattedtextfield.txt): Use a formatted text field when you require additional functionality such as the text field input type or a custom validator. - [Icon](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/icon.txt): A component that renders an icon from the POS asset catalog. - [Image](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/image.txt): The image component displays an image to a merchant in Shopify POS. - [List](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/list.txt): The list is a scrollable component in which the list rows are rendered. - [Navigator](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/navigator.txt): A component used to navigate between different screens. - [NumberField](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/numberfield.txt): Use a number field to conveniently and accurately capture numerical values. - [PinPad](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/pinpad.txt): A component used to authenticate or identify individuals through a standarized number pad. - [RadioButtonList](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/radiobuttonlist.txt): A radio button list lets merchants select from a given set of options. - [Screen](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/screen.txt): A component used in the root of a modal extension to define a screen. - [ScrollView](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/scrollview.txt): The ScrollView component allows content that doesn’t fully fit on screen to scroll. Typically, the ScrollView component serves as the root component of a Screen. - [SearchBar](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/searchbar.txt): The search bar lets merchants enter search queries for objects throughout the app. - [Section](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/section.txt): A component used to group other components together in a card-like UI. Usually, sections will be used inside a ScrollView. - [SegmentedControl](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/segmentedcontrol.txt): The segmented control lets the merchant easily switch between different lists or views on the same page. - [Selectable](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/selectable.txt): The selectable component allows you to wrap any non-interactive UI component to make it selectable. - [Spacing](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/spacing.txt): Set of spacing constants to be used in the UI Extensions components library. - [Stack](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/stack.txt): A container for other components that allows them to be stacked horizontally or vertically. When building complex UIs, this will be your primary building block. - [Stepper](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/stepper.txt): A component used for increasing or decreasing quantities. - [Text](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/text.txt): Text can be rendered in different sizes and colors in order to structure content. - [TextArea](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/textarea.txt): Use a text input to allow merchants to input or modify multiline text. - [TextField](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/textfield.txt): Use a text field to allow merchants to enter or edit text. If you want to specify the kind of input, then use a formatted text field. - [Tile](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/tile.txt): Tiles are customizable buttons that allow staff to complete actions quickly. Think of them as shortcuts--adding a 10% discount to an order, for example. Tiles provide contextual information and let merchants quickly access workflows, actions, and information from the smart grid and the top of detail pages. They’re dynamic and can change based on surrounding context, such as what’s in the cart. - [TimeField](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/timefield.txt): A component that enables users to open a dialog and select a time through a text input. - [TimePicker](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/components/timepicker.txt): A component used to select a time through a dialog. - [pos.customer-details.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/targets/customer-details/pos-customer-details-action-menu-item-render.txt): A static extension target that renders as a menu item on the customer details screen - [pos.customer-details.action.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/targets/customer-details/pos-customer-details-action-render.txt): A full-screen extension target that renders when a `pos.customer-details.action.menu-item.render` target calls for it - [pos.draft-order-details.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/targets/draft-order-details/pos-draft-order-details-action-menu-item-render.txt): A static extension target that renders as a menu item on the draft order details screen - [pos.draft-order-details.action.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/targets/draft-order-details/pos-draft-order-details-action-render.txt): A full-screen extension target that renders when a `pos.draft-order-details.action.render` target calls for it - [pos.home.modal.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/targets/smart-grid/pos-home-modal-render.txt): A full-screen extension target that renders when a `pos.home.tile.render` target calls for it - [pos.home.tile.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/targets/smart-grid/pos-home-tile-render.txt): A static extension target that renders as a smart grid tile - [pos.order-details.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/targets/order-details/pos-order-details-action-menu-item-render.txt): A static extension target that renders as a menu item on the order details screen - [pos.order-details.action.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/targets/order-details/pos-order-details-action-render.txt): A full-screen extension target that renders when a `pos.order-details.action.menu-item.render` target calls for it - [pos.product-details.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/targets/product-details/pos-product-details-action-menu-item-render.txt): A static extension target that renders as a menu item on the product details screen - [pos.product-details.action.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/targets/product-details/pos-product-details-action-render.txt): A full-screen extension target that renders when a `pos.product-details.action.menu-item.render` target calls for it - [pos.purchase.post.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/targets/post-purchase/pos-purchase-post-action-menu-item-render.txt): A static extension target that renders as a menu item on the post-purchase screen - [pos.purchase.post.action.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-07/targets/post-purchase/pos-purchase-post-action-render.txt): A full-screen extension target that renders when a `pos.purchase.post.action.menu-item.render` target calls for it - [Action API](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/apis/action-api.txt): The Action API allows an action extension to modally present its corresponding modal target. #### Supporting targets - [pos.home.tile.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-tile-render) - [pos.purchase.post.action.menu-item.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-menu-item-render) - [pos.purchase.post.block.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-block-render) - [pos.order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-menu-item-render) - [pos.order-details.block.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-block-render) - [pos.product-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-menu-item-render) - [pos.customer-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-menu-item-render) - [pos.customer-details.block.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-block-render) - [pos.draft-order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-menu-item-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-block-render) - [Cart API](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/apis/cart-api.txt): The Cart API enables UI Extensions to manage and interact with POS cart contents, such as discounts, line items, and customer details. It provides a comprehensive set of functions for adding and removing items, alongside a subscribable object that keeps the UI Extension updated with real-time changes to the cart. #### Supporting targets - [pos.home.tile.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-tile-render) - [pos.home.modal.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-modal-render) - [pos.product-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-menu-item-render) - [pos.product-details.action.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-render) - [pos.customer-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-menu-item-render) - [pos.customer-details.action.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-render) - [pos.customer-details.block.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-block-render) - [pos.order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-menu-item-render) - [pos.order-details.action.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-render) - [pos.order-details.block.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-block-render) - [pos.draft-order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-menu-item-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-block-render) - [Connectivity API](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/apis/connectivity-api.txt): The Connectivity API enables POS UI extensions to retrieve device connectivity information, such as whether the device has an internet connection. - [Customer API](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/apis/customer-api.txt): The customer API provides an extension with data about the current customer. #### Supporting targets - [pos.customer-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-menu-item-render) - [pos.customer-details.action.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-render) - [pos.customer-details.block.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-block-render) - [Device API](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/apis/device-api.txt): The Device API allows the UI Extension to retrieve device information including the device name and ID. - [Draft Order API](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/apis/draft-order-api.txt): The Draft Order API provides an extension with data about the current draft order. #### Supporting targets - [pos.draft-order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-menu-item-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-block-render) - [Locale API](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/apis/locale-api.txt): The Locale API allows the extension to retrieve the merchant's locale. - [Navigation API](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/apis/navigation-api.txt): The Navigation API enables POS UI extension to navigate between screens. #### Supporting targets - [pos.home.modal.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-modal-render) - [pos.purchase.post.action.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-render) - [pos.product-details.action.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-render) - [pos.order-details.action.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-render) - [pos.customer-details.action.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-render) - [Order API](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/apis/order-api.txt): The Order API provides an extension with data about the current order. #### Supporting targets - [pos.purchase.post.action.menu-item.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-menu-item-render) - [pos.purchase.post.action.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-render) - [pos.purchase.post.block.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-block-render) - [pos.order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-menu-item-render) - [pos.order-details.action.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-render) - [pos.order-details.block.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-block-render) - [Product API](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/apis/product-api.txt): The Product API provides an extension with data about the current Product. #### Supporting targets - [pos.product-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-menu-item-render) - [pos.product-details.action.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-render) - [ProductSearch API](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/apis/productsearch-api.txt): The ProductSearch API gives extensions access to the native product search and fetching functionality of Shopify POS. The interface provides numerous functions to search for products by query, or to fetch the details of one or more products or product variants. - [Scanner API](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/apis/scanner-api.txt): The Scanner API enables an extension to access scanner data and available scanning sources supported by the device. #### Supporting targets - [pos.home.modal.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-modal-render) - [pos.purchase.post.action.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-render) - [pos.product-details.action.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-render) - [pos.order-details.action.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-render) - [pos.customer-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-menu-item-render) - [Session API](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/apis/session-api.txt): The Session API contains the information about the current user session, and allows to fetch a fresh session token for communication with your apps backend service. - [Toast API](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/apis/toast-api.txt): The Toast API allows the display of a Toast component. - [ActionItem](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/actionitem.txt): ActionItem has been deprecated. Please use the [Button Component](/docs/api/pos-ui-extensions/components/) instead. The ActionItem provides a tappable surface on the specified extension target as an entry point to an extension. Note that the text displayed on this 'ActionItem' is dependent on the description of the extension. - [Badge](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/badge.txt): Badges are used to inform merchants of the status of an item or action that’s been taken. - [Banner](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/banner.txt): A banner informs merchants about important changes or persistent conditions. Use if you need to communicate to merchants in a prominent way, without blocking other actions. - [Button](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/button.txt): Buttons enable the merchant to initiate actions, like "add", "save", or "next". - [CameraScanner](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/camerascanner.txt): The camera scanner uses the devices camera to scan and decode barcodes or QR codes. It displays a live feed with guidance markers for alignment and triggers actions within the app upon successful recognition. - [DateField](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/datefield.txt): A component that enables users to open a dialog and select a date through a text input. - [DatePicker](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/datepicker.txt): A component used to select a date through a dialog. - [Dialog](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/dialog.txt): A dialog is a high-priority, intentionally disruptive message that requires action from the merchant before they can continue using POS. - [EmailField](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/emailfield.txt): Use an email field to conveniently and accurately capture merchant email addresses. - [FormattedTextField](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/formattedtextfield.txt): Use a formatted text field when you require additional functionality such as the text field input type or a custom validator. - [Icon](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/icon.txt): A component that renders an icon from the POS asset catalog. - [Image](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/image.txt): The image component displays an image to a merchant in Shopify POS. - [List](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/list.txt): The list is a scrollable component in which the list rows are rendered. - [Navigator](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/navigator.txt): A component used to navigate between different screens. - [NumberField](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/numberfield.txt): Use a number field to conveniently and accurately capture numerical values. - [POSBlock](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/posblock.txt): The `POSBlock` provides a surface on the specified extension target as an entry point to an extension. Note that the title displayed on this `POSBlock` is dependent on the description of the extension. - [POSBlockRow](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/posblockrow.txt): Renders a `POSBlockRow` in a `POSBlock`. - [PinPad](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/pinpad.txt): A component used to authenticate or identify individuals through a standarized number pad. - [RadioButtonList](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/radiobuttonlist.txt): A radio button list lets merchants select from a given set of options. - [Screen](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/screen.txt): A component used in the root of a modal extension to define a screen. - [ScrollView](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/scrollview.txt): The ScrollView component allows content that doesn’t fully fit on screen to scroll. Typically, the ScrollView component serves as the root component of a Screen. - [SearchBar](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/searchbar.txt): The search bar lets merchants enter search queries for objects throughout the app. - [Section](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/section.txt): A component used to group other components together in a card-like UI. Usually, sections will be used inside a ScrollView. - [SectionHeader](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/sectionheader.txt): A heading style text component with an optional divider line to structure content. - [SegmentedControl](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/segmentedcontrol.txt): The segmented control lets the merchant easily switch between different lists or views on the same page. - [Selectable](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/selectable.txt): The selectable component allows you to wrap any non-interactive UI component to make it selectable. - [Spacing](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/spacing.txt): Set of spacing constants to be used in the UI Extensions components library. - [Stack](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/stack.txt): A container for other components that allows them to be stacked horizontally or vertically. When building complex UIs, this will be your primary building block. - [Stepper](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/stepper.txt): A component used for increasing or decreasing quantities. - [Text](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/text.txt): Text can be rendered in different sizes and colors in order to structure content. - [TextArea](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/textarea.txt): Use a text input to allow merchants to input or modify multiline text. - [TextField](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/textfield.txt): Use a text field to allow merchants to enter or edit text. If you want to specify the kind of input, then use a formatted text field. - [Tile](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/tile.txt): Tiles are customizable buttons that allow staff to complete actions quickly. Think of them as shortcuts--adding a 10% discount to an order, for example. Tiles provide contextual information and let merchants quickly access workflows, actions, and information from the smart grid and the top of detail pages. They’re dynamic and can change based on surrounding context, such as what’s in the cart. - [TimeField](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/timefield.txt): A component that enables users to open a dialog and select a time through a text input. - [TimePicker](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/components/timepicker.txt): A component used to select a time through a dialog. - [pos.customer-details.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/targets/customer-details/pos-customer-details-action-menu-item-render.txt): A static extension target that renders as a menu item on the customer details screen - [pos.customer-details.action.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/targets/customer-details/pos-customer-details-action-render.txt): A full-screen extension target that renders when a `pos.customer-details.action.menu-item.render` target calls for it - [pos.customer-details.block.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/targets/customer-details/pos-customer-details-block-render.txt): Renders a custom section within customer details screen - [pos.draft-order-details.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/targets/draft-order-details/pos-draft-order-details-action-menu-item-render.txt): A static extension target that renders as a menu item on the draft order details screen - [pos.draft-order-details.action.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/targets/draft-order-details/pos-draft-order-details-action-render.txt): A full-screen extension target that renders when a `pos.draft-order-details.action.render` target calls for it - [pos.draft-order-details.block.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/targets/draft-order-details/pos-draft-order-details-block-render.txt): Renders a custom section within the native draft order details screen - [pos.home.modal.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/targets/smart-grid/pos-home-modal-render.txt): A full-screen extension target that renders when a `pos.home.tile.render` target calls for it - [pos.home.tile.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/targets/smart-grid/pos-home-tile-render.txt): A static extension target that renders as a smart grid tile - [pos.order-details.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/targets/order-details/pos-order-details-action-menu-item-render.txt): A static extension target that renders as a menu item on the order details screen - [pos.order-details.action.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/targets/order-details/pos-order-details-action-render.txt): A full-screen extension target that renders when a `pos.order-details.action.menu-item.render` target calls for it - [pos.order-details.block.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/targets/order-details/pos-order-details-block-render.txt): Renders a custom section within the native order details screen - [pos.product-details.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/targets/product-details/pos-product-details-action-menu-item-render.txt): A static extension target that renders as a menu item on the product details screen - [pos.product-details.action.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/targets/product-details/pos-product-details-action-render.txt): A full-screen extension target that renders when a `pos.product-details.action.menu-item.render` target calls for it - [pos.product-details.block.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/targets/product-details/pos-product-details-block-render.txt): Renders a custom section within the product details screen - [pos.purchase.post.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/targets/post-purchase/pos-purchase-post-action-menu-item-render.txt): A static extension target that renders as a menu item on the post-purchase screen - [pos.purchase.post.action.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/targets/post-purchase/pos-purchase-post-action-render.txt): A full-screen extension target that renders when a `pos.purchase.post.action.menu-item.render` target calls for it - [pos.purchase.post.block.render](https://shopify.dev/docs/api/pos-ui-extensions/2024-10/targets/post-purchase/pos-purchase-post-block-render.txt): Renders a custom section within the native post purchase screen - [Action API](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/apis/action-api.txt): The Action API allows an action extension to modally present its corresponding modal target. #### Supporting targets - [pos.home.tile.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-tile-render) - [pos.purchase.post.action.menu-item.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-menu-item-render) - [pos.purchase.post.block.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-block-render) - [pos.order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-menu-item-render) - [pos.order-details.block.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-block-render) - [pos.product-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-menu-item-render) - [pos.customer-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-menu-item-render) - [pos.customer-details.block.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-block-render) - [pos.draft-order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-menu-item-render) - [pos.draft-order-details.block.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-block-render) - [Cart API](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/apis/cart-api.txt): The Cart API enables UI Extensions to manage and interact with POS cart contents, such as discounts, line items, and customer details. It provides a comprehensive set of functions for adding and removing items, alongside a subscribable object that keeps the UI Extension updated with real-time changes to the cart. #### Supporting targets - [pos.home.tile.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-tile-render) - [pos.home.modal.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-modal-render) - [pos.product-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-menu-item-render) - [pos.product-details.action.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-render) - [pos.customer-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-menu-item-render) - [pos.customer-details.action.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-render) - [pos.customer-details.block.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-block-render) - [pos.order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-menu-item-render) - [pos.order-details.action.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-render) - [pos.order-details.block.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-block-render) - [pos.draft-order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-menu-item-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-render) - [pos.draft-order-details.block.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-block-render) - [Connectivity API](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/apis/connectivity-api.txt): The Connectivity API enables POS UI extensions to retrieve device connectivity information, such as whether the device has an internet connection. - [Customer API](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/apis/customer-api.txt): The customer API provides an extension with data about the current customer. #### Supporting targets - [pos.customer-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-menu-item-render) - [pos.customer-details.action.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-render) - [pos.customer-details.block.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-block-render) - [Device API](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/apis/device-api.txt): The Device API allows the UI Extension to retrieve device information including the device name and ID. - [Draft Order API](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/apis/draft-order-api.txt): The Draft Order API provides an extension with data about the current draft order. #### Supporting targets - [pos.draft-order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-menu-item-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-render) - [pos.draft-order-details.block.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-block-render) - [Locale API](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/apis/locale-api.txt): The Locale API allows the extension to retrieve the merchant's locale. - [Navigation API](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/apis/navigation-api.txt): The Navigation API enables POS UI extension to navigate between screens. #### Supporting targets - [pos.home.modal.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-modal-render) - [pos.purchase.post.action.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-render) - [pos.product-details.action.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-render) - [pos.order-details.action.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-render) - [pos.customer-details.action.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-render) - [Order API](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/apis/order-api.txt): The Order API provides an extension with data about the current order. #### Supporting targets - [pos.purchase.post.action.menu-item.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-menu-item-render) - [pos.purchase.post.action.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-render) - [pos.purchase.post.block.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-block-render) - [pos.order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-menu-item-render) - [pos.order-details.action.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-render) - [pos.order-details.block.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-block-render) - [Print API](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/apis/print-api.txt): The Print API enables document printing through the device's native print dialog (such as AirPrint on iOS or the system print dialog on Android). This API is designed for printing documents to standard printers, and does not support direct printing to receipt printers. - [Product API](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/apis/product-api.txt): The Product API provides an extension with data about the current Product. #### Supporting targets - [pos.product-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-menu-item-render) - [pos.product-details.action.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-render) - [ProductSearch API](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/apis/productsearch-api.txt): The ProductSearch API gives extensions access to the native product search and fetching functionality of Shopify POS. The interface provides numerous functions to search for products by query, or to fetch the details of one or more products or product variants. - [Scanner API](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/apis/scanner-api.txt): The Scanner API enables an extension to access scanner data and available scanning sources supported by the device. #### Supporting targets - [pos.home.modal.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-modal-render) - [pos.purchase.post.action.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-render) - [pos.product-details.action.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-render) - [pos.order-details.action.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-render) - [pos.customer-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-menu-item-render) - [Session API](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/apis/session-api.txt): The Session API contains the information about the current user session, and allows to fetch a fresh session token for communication with your apps backend service. - [Toast API](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/apis/toast-api.txt): The Toast API allows the display of a Toast component. - [Badge](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/badge.txt): Badges are used to inform merchants of the status of an item or action that’s been taken. - [Banner](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/banner.txt): A banner informs merchants about important changes or persistent conditions. Use if you need to communicate to merchants in a prominent way, without blocking other actions. - [Box](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/box.txt): A box component is a container that can be used to group and display content in a consistent manner. - [Button](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/button.txt): Buttons enable the merchant to initiate actions, like "add", "save", or "next". - [CameraScanner](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/camerascanner.txt): The camera scanner uses the devices camera to scan and decode barcodes or QR codes. It displays a live feed with guidance markers for alignment and triggers actions within the app upon successful recognition. - [DateField](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/datefield.txt): A component that enables users to open a dialog and select a date through a text input. - [DatePicker](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/datepicker.txt): A component used to select a date through a dialog. - [Dialog](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/dialog.txt): A dialog is a high-priority, intentionally disruptive message that requires action from the merchant before they can continue using POS. - [EmailField](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/emailfield.txt): Use an email field to conveniently and accurately capture merchant email addresses. - [FormattedTextField](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/formattedtextfield.txt): Use a formatted text field when you require additional functionality such as the text field input type or a custom validator. - [Icon](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/icon.txt): A component that renders an icon from the POS asset catalog. - [Image](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/image.txt): The image component displays an image to a merchant in Shopify POS. - [List](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/list.txt): The list is a scrollable component in which the list rows are rendered. - [Navigator](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/navigator.txt): A component used to navigate between different screens. - [NumberField](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/numberfield.txt): Use a number field to conveniently and accurately capture numerical values. - [POSBlock](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/posblock.txt): The `POSBlock` provides a surface on the specified extension target as an entry point to an extension. Note that the title displayed on this `POSBlock` is dependent on the description of the extension. - [POSBlockRow](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/posblockrow.txt): Renders a `POSBlockRow` in a `POSBlock`. - [PinPad](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/pinpad.txt): A component used to authenticate or identify individuals through a standarized number pad. - [PrintPreview](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/printpreview.txt): A component that displays a preview of a printable document. > Note: > This component must be a direct child of the Screen component and cannot be nested inside any other component. - [RadioButtonList](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/radiobuttonlist.txt): A radio button list lets merchants select from a given set of options. - [Screen](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/screen.txt): A component used in the root of a modal extension to define a screen. - [ScrollView](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/scrollview.txt): The ScrollView component allows content that doesn’t fully fit on screen to scroll. Typically, the ScrollView component serves as the root component of a Screen. - [SearchBar](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/searchbar.txt): The search bar lets merchants enter search queries for objects throughout the app. - [Section](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/section.txt): A component used to group other components together in a card-like UI. Usually, sections will be used inside a ScrollView. - [SectionHeader](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/sectionheader.txt): A heading style text component with an optional divider line to structure content. - [SegmentedControl](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/segmentedcontrol.txt): The segmented control lets the merchant easily switch between different lists or views on the same page. - [Selectable](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/selectable.txt): The selectable component allows you to wrap any non-interactive UI component to make it selectable. - [Spacing](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/spacing.txt): Set of spacing constants to be used in the UI Extensions components library. - [Stack](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/stack.txt): A container for other components that allows them to be stacked horizontally or vertically. When building complex UIs, this will be your primary building block. Stacks always wrap the content to the next column or row. - [Stepper](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/stepper.txt): A component used for increasing or decreasing quantities. - [Text](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/text.txt): Text can be rendered in different sizes and colors in order to structure content. By default, `Text` will always stretch to fill the width of the container, but it can be wrapped in a `Box` to limit its width to what it needs. When the width of `Text` reaches its limit, the `string` will automatically wrap to the next line. - [TextArea](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/textarea.txt): Use a text input to allow merchants to input or modify multiline text. - [TextField](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/textfield.txt): Use a text field to allow merchants to enter or edit text. If you want to specify the kind of input, then use a formatted text field. - [Tile](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/tile.txt): Tiles are customizable buttons that allow staff to complete actions quickly. Think of them as shortcuts--adding a 10% discount to an order, for example. Tiles provide contextual information and let merchants quickly access workflows, actions, and information from the smart grid and the top of detail pages. They’re dynamic and can change based on surrounding context, such as what’s in the cart. - [TimeField](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/timefield.txt): A component that enables users to open a dialog and select a time through a text input. - [TimePicker](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/components/timepicker.txt): A component used to select a time through a dialog. - [pos.customer-details.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/targets/customer-details/pos-customer-details-action-menu-item-render.txt): A static extension target that renders as a menu item on the customer details screen - [pos.customer-details.action.render](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/targets/customer-details/pos-customer-details-action-render.txt): A full-screen extension target that renders when a `pos.customer-details.action.menu-item.render` target calls for it - [pos.customer-details.block.render](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/targets/customer-details/pos-customer-details-block-render.txt): Renders a custom section within customer details screen - [pos.draft-order-details.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/targets/draft-order-details/pos-draft-order-details-action-menu-item-render.txt): A static extension target that renders as a menu item on the draft order details screen - [pos.draft-order-details.action.render](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/targets/draft-order-details/pos-draft-order-details-action-render.txt): A full-screen extension target that renders when a `pos.draft-order-details.action.render` target calls for it - [pos.draft-order-details.block.render](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/targets/draft-order-details/pos-draft-order-details-block-render.txt): Renders a custom section within the native draft order details screen - [pos.home.modal.render](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/targets/smart-grid/pos-home-modal-render.txt): A full-screen extension target that renders when a `pos.home.tile.render` target calls for it - [pos.home.tile.render](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/targets/smart-grid/pos-home-tile-render.txt): A static extension target that renders as a smart grid tile - [pos.order-details.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/targets/order-details/pos-order-details-action-menu-item-render.txt): A static extension target that renders as a menu item on the order details screen - [pos.order-details.action.render](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/targets/order-details/pos-order-details-action-render.txt): A full-screen extension target that renders when a `pos.order-details.action.menu-item.render` target calls for it - [pos.order-details.block.render](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/targets/order-details/pos-order-details-block-render.txt): Renders a custom section within the native order details screen - [pos.product-details.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/targets/product-details/pos-product-details-action-menu-item-render.txt): A static extension target that renders as a menu item on the product details screen - [pos.product-details.action.render](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/targets/product-details/pos-product-details-action-render.txt): A full-screen extension target that renders when a `pos.product-details.action.menu-item.render` target calls for it - [pos.product-details.block.render](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/targets/product-details/pos-product-details-block-render.txt): Renders a custom section within the product details screen - [pos.purchase.post.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/targets/post-purchase/pos-purchase-post-action-menu-item-render.txt): A static extension target that renders as a menu item on the post-purchase screen - [pos.purchase.post.action.render](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/targets/post-purchase/pos-purchase-post-action-render.txt): A full-screen extension target that renders when a `pos.purchase.post.action.menu-item.render` target calls for it - [pos.purchase.post.block.render](https://shopify.dev/docs/api/pos-ui-extensions/2025-01/targets/post-purchase/pos-purchase-post-block-render.txt): Renders a custom section within the native post purchase screen - [Action API](https://shopify.dev/docs/api/pos-ui-extensions/unstable/apis/action-api.txt): The Action API allows an action extension to modally present its corresponding modal target. #### Supporting targets - [pos.home.tile.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-tile-render) - [pos.purchase.post.action.menu-item.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-menu-item-render) - [pos.purchase.post.block.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-block-render) - [pos.order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-menu-item-render) - [pos.order-details.block.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-block-render) - [pos.product-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-menu-item-render) - [pos.customer-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-menu-item-render) - [pos.customer-details.block.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-block-render) - [pos.draft-order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-menu-item-render) - [pos.draft-order-details.block.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-block-render) - [Cart API](https://shopify.dev/docs/api/pos-ui-extensions/unstable/apis/cart-api.txt): The Cart API enables UI Extensions to manage and interact with POS cart contents, such as discounts, line items, and customer details. It provides a comprehensive set of functions for adding and removing items, alongside a subscribable object that keeps the UI Extension updated with real-time changes to the cart. #### Supporting targets - [pos.home.tile.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-tile-render) - [pos.home.modal.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-modal-render) - [pos.product-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-menu-item-render) - [pos.product-details.action.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-render) - [pos.customer-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-menu-item-render) - [pos.customer-details.action.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-render) - [pos.customer-details.block.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-block-render) - [pos.order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-menu-item-render) - [pos.order-details.action.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-render) - [pos.order-details.block.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-block-render) - [pos.draft-order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-menu-item-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-render) - [pos.draft-order-details.block.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-block-render) - [Connectivity API](https://shopify.dev/docs/api/pos-ui-extensions/unstable/apis/connectivity-api.txt): The Connectivity API enables POS UI extensions to retrieve device connectivity information, such as whether the device has an internet connection. - [Customer API](https://shopify.dev/docs/api/pos-ui-extensions/unstable/apis/customer-api.txt): The customer API provides an extension with data about the current customer. #### Supporting targets - [pos.customer-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-menu-item-render) - [pos.customer-details.action.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-render) - [pos.customer-details.block.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-block-render) - [Device API](https://shopify.dev/docs/api/pos-ui-extensions/unstable/apis/device-api.txt): The Device API allows the UI Extension to retrieve device information including the device name and ID. - [Draft Order API](https://shopify.dev/docs/api/pos-ui-extensions/unstable/apis/draft-order-api.txt): The Draft Order API provides an extension with data about the current draft order. #### Supporting targets - [pos.draft-order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-menu-item-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-render) - [pos.draft-order-details.block.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-block-render) - [Locale API](https://shopify.dev/docs/api/pos-ui-extensions/unstable/apis/locale-api.txt): The Locale API allows the extension to retrieve the merchant's locale. - [Navigation API](https://shopify.dev/docs/api/pos-ui-extensions/unstable/apis/navigation-api.txt): The Navigation API enables POS UI extension to navigate between screens. #### Supporting targets - [pos.home.modal.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-modal-render) - [pos.purchase.post.action.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-render) - [pos.product-details.action.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-render) - [pos.order-details.action.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-render) - [pos.customer-details.action.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-render) - [Order API](https://shopify.dev/docs/api/pos-ui-extensions/unstable/apis/order-api.txt): The Order API provides an extension with data about the current order. #### Supporting targets - [pos.purchase.post.action.menu-item.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-menu-item-render) - [pos.purchase.post.action.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-render) - [pos.purchase.post.block.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-block-render) - [pos.order-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-menu-item-render) - [pos.order-details.action.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-render) - [pos.order-details.block.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-block-render) - [Print API](https://shopify.dev/docs/api/pos-ui-extensions/unstable/apis/print-api.txt): The Print API enables document printing through the device's native print dialog (such as AirPrint on iOS or the system print dialog on Android). This API is designed for printing documents to standard printers, and does not support direct printing to receipt printers. - [Product API](https://shopify.dev/docs/api/pos-ui-extensions/unstable/apis/product-api.txt): The Product API provides an extension with data about the current Product. #### Supporting targets - [pos.product-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-menu-item-render) - [pos.product-details.action.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-render) - [ProductSearch API](https://shopify.dev/docs/api/pos-ui-extensions/unstable/apis/productsearch-api.txt): The ProductSearch API gives extensions access to the native product search and fetching functionality of Shopify POS. The interface provides numerous functions to search for products by query, or to fetch the details of one or more products or product variants. - [Scanner API](https://shopify.dev/docs/api/pos-ui-extensions/unstable/apis/scanner-api.txt): The Scanner API enables an extension to access scanner data and available scanning sources supported by the device. #### Supporting targets - [pos.home.modal.render](/docs/api/pos-ui-extensions/targets/smart-grid/pos-home-modal-render) - [pos.purchase.post.action.render](/docs/api/pos-ui-extensions/targets/post-purchase/pos-purchase-post-action-render) - [pos.product-details.action.render](/docs/api/pos-ui-extensions/targets/product-details/pos-product-details-action-render) - [pos.order-details.action.render](/docs/api/pos-ui-extensions/targets/order-details/pos-order-details-action-render) - [pos.draft-order-details.action.render](/docs/api/pos-ui-extensions/targets/draft-order-details/pos-draft-order-details-action-render) - [pos.customer-details.action.menu-item.render](/docs/api/pos-ui-extensions/targets/customer-details/pos-customer-details-action-menu-item-render) - [Session API](https://shopify.dev/docs/api/pos-ui-extensions/unstable/apis/session-api.txt): The Session API contains the information about the current user session, and allows to fetch a fresh session token for communication with your apps backend service. - [Toast API](https://shopify.dev/docs/api/pos-ui-extensions/unstable/apis/toast-api.txt): The Toast API allows the display of a Toast component. - [Badge](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/badge.txt): Badges are used to inform merchants of the status of an item or action that’s been taken. - [Banner](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/banner.txt): A banner informs merchants about important changes or persistent conditions. Use if you need to communicate to merchants in a prominent way, without blocking other actions. - [Box](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/box.txt): A box component is a container that can be used to group and display content in a consistent manner. - [Button](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/button.txt): Buttons enable the merchant to initiate actions, like "add", "save", or "next". - [CameraScanner](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/camerascanner.txt): The camera scanner uses the devices camera to scan and decode barcodes or QR codes. It displays a live feed with guidance markers for alignment and triggers actions within the app upon successful recognition. - [DateField](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/datefield.txt): A component that enables users to open a dialog and select a date through a text input. - [DatePicker](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/datepicker.txt): A component used to select a date through a dialog. - [Dialog](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/dialog.txt): A dialog is a high-priority, intentionally disruptive message that requires action from the merchant before they can continue using POS. - [EmailField](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/emailfield.txt): Use an email field to conveniently and accurately capture merchant email addresses. - [FormattedTextField](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/formattedtextfield.txt): Use a formatted text field when you require additional functionality such as the text field input type or a custom validator. - [Icon](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/icon.txt): A component that renders an icon from the POS asset catalog. - [Image](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/image.txt): The image component displays an image to a merchant in Shopify POS. - [List](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/list.txt): The list is a scrollable component in which the list rows are rendered. - [Navigator](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/navigator.txt): A component used to navigate between different screens. - [NumberField](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/numberfield.txt): Use a number field to conveniently and accurately capture numerical values. - [POSBlock](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/posblock.txt): The `POSBlock` provides a surface on the specified extension target as an entry point to an extension. Note that the title displayed on this `POSBlock` is dependent on the description of the extension. - [POSBlockRow](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/posblockrow.txt): Renders a `POSBlockRow` in a `POSBlock`. - [PinPad](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/pinpad.txt): A component used to authenticate or identify individuals through a standarized number pad. - [PrintPreview](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/printpreview.txt): A component that displays a preview of a printable document. > Note: > This component must be a direct child of the Screen component and cannot be nested inside any other component. - [RadioButtonList](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/radiobuttonlist.txt): A radio button list lets merchants select from a given set of options. - [Screen](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/screen.txt): A component used in the root of a modal extension to define a screen. - [ScrollView](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/scrollview.txt): The ScrollView component allows content that doesn’t fully fit on screen to scroll. Typically, the ScrollView component serves as the root component of a Screen. - [SearchBar](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/searchbar.txt): The search bar lets merchants enter search queries for objects throughout the app. - [Section](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/section.txt): A component used to group other components together in a card-like UI. Usually, sections will be used inside a ScrollView. - [SectionHeader](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/sectionheader.txt): A heading style text component with an optional divider line to structure content. - [SegmentedControl](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/segmentedcontrol.txt): The segmented control lets the merchant easily switch between different lists or views on the same page. - [Selectable](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/selectable.txt): The selectable component allows you to wrap any non-interactive UI component to make it selectable. - [Spacing](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/spacing.txt): Set of spacing constants to be used in the UI Extensions components library. - [Stack](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/stack.txt): A container for other components that allows them to be stacked horizontally or vertically. When building complex UIs, this will be your primary building block. Stacks always wrap the content to the next column or row. - [Stepper](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/stepper.txt): A component used for increasing or decreasing quantities. - [Text](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/text.txt): Text can be rendered in different sizes and colors in order to structure content. By default, `Text` will always stretch to fill the width of the container, but it can be wrapped in a `Box` to limit its width to what it needs. When the width of `Text` reaches its limit, the `string` will automatically wrap to the next line. - [TextArea](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/textarea.txt): Use a text input to allow merchants to input or modify multiline text. - [TextField](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/textfield.txt): Use a text field to allow merchants to enter or edit text. If you want to specify the kind of input, then use a formatted text field. - [Tile](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/tile.txt): Tiles are customizable buttons that allow staff to complete actions quickly. Think of them as shortcuts--adding a 10% discount to an order, for example. Tiles provide contextual information and let merchants quickly access workflows, actions, and information from the smart grid and the top of detail pages. They’re dynamic and can change based on surrounding context, such as what’s in the cart. - [TimeField](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/timefield.txt): A component that enables users to open a dialog and select a time through a text input. - [TimePicker](https://shopify.dev/docs/api/pos-ui-extensions/unstable/components/timepicker.txt): A component used to select a time through a dialog. - [pos.cart-update.event.observe](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/cart-details/pos-cart-update-event-observe.txt): An event extension target that observes cart updates - [pos.cash-tracking-session-cancel.event.observe](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/cash-tracking/pos-cash-tracking-session-cancel-event-observe.txt): An event extension target that observes when cash tracking session is canceled - [pos.cash-tracking-session-complete.event.observe](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/cash-tracking/pos-cash-tracking-session-complete-event-observe.txt): An event extension target that observes when cash tracking session completes - [pos.cash-tracking-session-start.event.observe](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/cash-tracking/pos-cash-tracking-session-start-event-observe.txt): An event extension target that observes when cash tracking session starts - [pos.customer-details.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/customer-details/pos-customer-details-action-menu-item-render.txt): A static extension target that renders as a menu item on the customer details screen - [pos.customer-details.action.render](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/customer-details/pos-customer-details-action-render.txt): A full-screen extension target that renders when a `pos.customer-details.action.menu-item.render` target calls for it - [pos.customer-details.block.render](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/customer-details/pos-customer-details-block-render.txt): Renders a custom section within customer details screen - [pos.draft-order-details.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/draft-order-details/pos-draft-order-details-action-menu-item-render.txt): A static extension target that renders as a menu item on the draft order details screen - [pos.draft-order-details.action.render](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/draft-order-details/pos-draft-order-details-action-render.txt): A full-screen extension target that renders when a `pos.draft-order-details.action.render` target calls for it - [pos.draft-order-details.block.render](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/draft-order-details/pos-draft-order-details-block-render.txt): Renders a custom section within the native draft order details screen - [pos.home.modal.render](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/smart-grid/pos-home-modal-render.txt): A full-screen extension target that renders when a `pos.home.tile.render` target calls for it - [pos.home.tile.render](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/smart-grid/pos-home-tile-render.txt): A static extension target that renders as a smart grid tile - [pos.order-details.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/order-details/pos-order-details-action-menu-item-render.txt): A static extension target that renders as a menu item on the order details screen - [pos.order-details.action.render](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/order-details/pos-order-details-action-render.txt): A full-screen extension target that renders when a `pos.order-details.action.menu-item.render` target calls for it - [pos.order-details.block.render](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/order-details/pos-order-details-block-render.txt): Renders a custom section within the native order details screen - [pos.prepare-receipt.event.inject](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/post-purchase/pos-prepare-receipt-event-inject.txt): An event extension target that observes completed transactions and permits the addition of supplementary lines to the receipt. - [pos.product-details.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/product-details/pos-product-details-action-menu-item-render.txt): A static extension target that renders as a menu item on the product details screen - [pos.product-details.action.render](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/product-details/pos-product-details-action-render.txt): A full-screen extension target that renders when a `pos.product-details.action.menu-item.render` target calls for it - [pos.product-details.block.render](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/product-details/pos-product-details-block-render.txt): Renders a custom section within the product details screen - [pos.purchase.post.action.menu-item.render](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/post-purchase/pos-purchase-post-action-menu-item-render.txt): A static extension target that renders as a menu item on the post-purchase screen - [pos.purchase.post.action.render](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/post-purchase/pos-purchase-post-action-render.txt): A full-screen extension target that renders when a `pos.purchase.post.action.menu-item.render` target calls for it - [pos.purchase.post.block.render](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/post-purchase/pos-purchase-post-block-render.txt): Renders a custom section within the native post purchase screen - [pos.transaction-complete.event.observe](https://shopify.dev/docs/api/pos-ui-extensions/unstable/targets/post-purchase/pos-transaction-complete-event-observe.txt): An event extension target that observes completed transactions