# Getting started with POS UI extensions Learn how to prepare your development environment to start building POS UI extensions. ## What you'll learn In this tutorial, you'll learn how to do the following tasks: - Generate a POS UI extension using Shopify CLI. - Run the local extension in your development store. - Test your app in Shopify POS. ## Requirements - Create a [development store](/docs/apps/tools/development-stores). - Install or migrate to [Shopify CLI version 3.0 or higher](/docs/apps/tools/cli). - Create an [app](/docs/apps/getting-started/create). - Embed [your app in Shopify POS](/docs/apps/pos/getting-started#embed-your-in-app-in-shopify-pos). ## Step 1: Generate a POS UI Extension 1. Navigate to your app directory. 2. Ensure Shopify CLI is using the most up to date versions. 3. Generate your POS UI extension template. 4. Select `POS UI` under the Point-of-Sale menu. 5. Give your extension a working name. 6. Select the programming language that you want to work in. ### Generate a POS UI Extension ```bash shopify upgrade shopify app generate extension ``` ## Step 2: Run the local extension in your development store After you create your extension, you can [start a local development server](/docs/apps/getting-started/create#step-2-start-a-local-development-server) so that you can run your extension in your development store. When you start the server, Shopify CLI uses [Cloudflare](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/do-more-with-tunnels/trycloudflare/) to create a secure tunnel. Cloudflare gives your app extension a unique URL. 1. Install your project's dependencies using the command from your package manager of choice. 2. Start your local server for your extension in the app directory. 3. Follow the prompts to associate your extension with your app and development store. Your development server should now be running. ![Local Development Server Example](/assets/apps/pos/ui-ext-dev-server-console.png) To learn more about the processes that execute when you run `dev`, refer to the list of [Shopify CLI commands](/docs/api/shopify-cli/app/app-dev). ### Install dependencies and start a local development server ```bash npm i shopify app dev ``` ```bash yarn shopify app dev ``` ## Step 3: Install your app and preview your extension You can install your app and preview your extension in Shopify POS from the developer console. 1. With your server running, press `p` to open the developer console. 2. To preview your extension, select the **View mobile** button. This generates a deep link or QR code. 3. Using a mobile device with the Shopify POS app installed, scan the QR code. This opens Shopify POS on your device and installs the extension in preview mode. If your extension's URL changes, you will need to re-add the smart grid extension tile. > Tip: > If you're using Android and your extension isn't loading, then refer to the [troubleshooting guide](/docs/apps/pos/ui-extensions/troubleshooting). ![The developer console showing a POS UI extension](/assets/apps/pos/ui-ext-dev-console.png) ## Updating You can refer to the [list of the available POS UI Extension versions](/docs/api/pos-extensions/ui-extensions-reference/versions) to see if you are using the latest one. Merchants can manage their POS UI extensions across locations from the POS channel. You can direct merchants to this capability in your merchant facing communication: `https://admin.shopify.com/store/{shop}/apps/point-of-sale-channel/settings/pos-ui-extensions` ## Next steps - Follow along with an [example discount extension](/docs/api/pos-ui-extensions/example-discount-extension). - Explore the full [reference of Shopify retail APIs and components](/docs/api/pos-ui-extensions) that you can use for your POS UI extension. - Learn how to [deploy and release an app extension](/docs/apps/deployment/app-versions). ## 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