--- title: Upgrading to 2025-10 description: > This guide describes how to upgrade your point-of-sale UI extension to API version `2025-10` and adopt [Polaris](/beta/next-gen-dev-platform/polaris) web components. source_url: html: 'https://shopify.dev/docs/apps/build/pos/upgrading-to-2025-10' md: 'https://shopify.dev/docs/apps/build/pos/upgrading-to-2025-10.md' --- ExpandOn this page * [Update API version](https://shopify.dev/docs/apps/build/pos/upgrading-to-2025-10.md#update-api-version) * [Adjust package dependencies](https://shopify.dev/docs/apps/build/pos/upgrading-to-2025-10.md#adjust-package-dependencies) * [Type​Script configuration](https://shopify.dev/docs/apps/build/pos/upgrading-to-2025-10.md#typescript-configuration) * [Upgrade the Shopify CLI](https://shopify.dev/docs/apps/build/pos/upgrading-to-2025-10.md#upgrade-the-shopify-cli) * [Optional ESLint configuration](https://shopify.dev/docs/apps/build/pos/upgrading-to-2025-10.md#optional-eslint-configuration) * [Migrate API calls](https://shopify.dev/docs/apps/build/pos/upgrading-to-2025-10.md#migrate-api-calls) * [Migrate hooks](https://shopify.dev/docs/apps/build/pos/upgrading-to-2025-10.md#migrate-hooks) * [Migrate to Polaris web components](https://shopify.dev/docs/apps/build/pos/upgrading-to-2025-10.md#migrate-to-polaris-web-components) * [Polaris web components mapping](https://shopify.dev/docs/apps/build/pos/upgrading-to-2025-10.md#polaris-web-components-mapping) # Upgrading to 2025-10 This guide describes how to upgrade your point-of-sale UI extension to API version `2025-10` and adopt [Polaris](https://shopify.dev/beta/next-gen-dev-platform/polaris) web components. *** ## Update API version Set the API version to `2025-10` in `shopify.extension.toml` to use Polaris web components. ### shopify.​extension.​toml ```toml api_version = "2025-10" [[extensions]] name = "your-extension" handle = "your-extension" type = "ui_extension" # Contents of your existing file... ``` *** ## Adjust package dependencies As of `2025-10`, Shopify recommends Preact for UI extensions. Update the dependencies in your `package.json` file and re-install. ### New dependencies with Preact ##### package.​json ```json { "dependencies": { "preact": "^10.10.x", "@preact/signals": "^2.3.x", "@shopify/ui-extensions": "2025.10.x" } } ``` ### Previous dependencies with React ##### package.​json ```json { "dependencies": { "react": "^18.0.0", "@shopify/ui-extensions": "2025.4.x", "@shopify/ui-extensions-react": "2025.4.x", "react-reconciler": "0.29.0" }, "devDependencies": { "@types/react": "^18.0.0" } } ``` ### Previous dependencies with Java​Script ##### package.​json ```json { "dependencies": { "@shopify/ui-extensions": "2025.4.x" } } ``` *** ## Type​Script configuration Get full IntelliSense and auto-complete support by adding a config file for your extension at `extensions/{extension-name}/tsconfig.json`. You do **not** need to change your app's root `tsconfig.json` file. ### New tsconfig.​json ```json { "compilerOptions": { "jsx": "react-jsx", "jsxImportSource": "preact", "target": "ES2020", "checkJs": true, "allowJs": true, "moduleResolution": "node", "esModuleInterop": true } } ``` ### Old tsconfig.​json ```json { "compilerOptions": { "jsx": "react-jsx" }, "include": ["./src"] } ``` *** ## Upgrade the Shopify CLI The new CLI adds support for building 2025-10 extensions. The `shopify app dev` command runs your app and also generates a `shopify.d.ts` file in your extension directory, adding support for the new global `shopify` object. ### Support new global shopify object ```bash # Upgrade to latest version of the CLI npm install -g @shopify/cli # Run the app to generate the type definition file shopify app dev ``` *** ## Optional ESLint configuration If your app is using ESLint, update your configuration to include the new global `shopify` object. ### .​eslintrc.​cjs ```js module.exports = { globals: { shopify: 'readonly', }, }; ``` *** ## Migrate API calls Instead of accessing APIs from a callback parameter, access them from the global `shopify` object. Here's an example of migrating API calls. ### New API calls in Preact ##### Preact ```tsx import '@shopify/ui-extensions/preact'; import {render} from 'preact'; export default function extension() { render(, document.body); } function Extension() { return Print; } async function onButtonClick() { await shopify.print.print('documents/test-print'); console.log('print completed'); } ``` ### Previous API calls in React ##### React ```tsx import { reactExtension, Button, useApi, } from '@shopify/ui-extensions-react/point-of-sale'; export default reactExtension('pos.home.modal.render', () => ); function Extension() { const api = useApi(); async function onButtonClick(isChecked) { await api.print.print('documents/test-print'); console.log('print completed'); } return