Upgrading to 2025-10
This guide describes how to upgrade your point-of-sale UI extension to API version 2025-10 and adopt Polaris web components.
Anchor to Update API versionUpdate API version
Set the API version to 2025-10 in shopify.extension.toml to use Polaris web components.
Anchor to Adjust package dependenciesAdjust package dependencies
As of 2025-10, Shopify recommends Preact for UI extensions. Update the dependencies in your package.json file and re-install.
Anchor to New dependencies with PreactNew dependencies with Preact
Anchor to package.jsonpackage. json
Anchor to Previous dependencies with ReactPrevious dependencies with React
Anchor to package.jsonpackage. json
Anchor to Previous dependencies with JavaScriptPrevious dependencies with Java Script
Anchor to package.jsonpackage. json
Anchor to TypeScript configurationType 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.
Anchor to New tsconfig.jsonNew tsconfig. json
Anchor to Old tsconfig.jsonOld tsconfig. json
Anchor to Upgrade the Shopify CLIUpgrade 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.
Anchor to Support new global shopify objectSupport new global shopify object
Anchor to Optional ESLint configurationOptional ESLint configuration
If your app is using ESLint, update your configuration to include the new global shopify object.
Anchor to Migrate API callsMigrate 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.
Anchor to New API calls in PreactNew API calls in Preact
Anchor to PreactPreact
Anchor to Previous API calls in ReactPrevious API calls in React
Anchor to ReactReact
Anchor to Previous API calls in JavaScriptPrevious API calls in Java Script
Anchor to JavaScriptJava Script
Anchor to Migrate hooksMigrate hooks
If you had previously been using React hooks, import those same hooks from a new Preact-specific package. Here's an example of migrating hooks.
Anchor to New hooks in PreactNew hooks in Preact
Anchor to Previous hooks in ReactPrevious hooks in React
Anchor to Migrate to Polaris web componentsMigrate to Polaris web components
Polaris web components are exposed as custom HTML elements. Update your React or JavaScript components to custom elements.
Anchor to New components in PreactNew components in Preact
Anchor to Previous components in ReactPrevious components in React
Anchor to Previous components in JavaScriptPrevious components in Java Script
Anchor to Polaris web components mappingPolaris web components mapping
| Legacy Component | Polaris Web Component | Migration Notes |
|---|---|---|
Badge | Badge | Available |
Banner | Banner | Available |
Box | Box | Available |
Button | Button | Available |
CameraScanner | CameraScanner | Coming soon |
DateField | DateField | Available |
DatePicker | DatePicker | Available |
DatePicker | DateSpinner | Available, Replaces DatePicker.inputMode="spinner" |
Dialog | Modal | Available |
EmailField | EmailField | Available |
Heading | Heading | Available |
Icon | Icon | Available, more icons coming soon. |
Image | Image | Available |
List | VirtualizedList | Coming soon |
Navigator | Removed. | |
NumberField | NumberField | Available |
PinPad | Coming soon | |
POSBlock | POSBlock | Available |
POSBlockRow | Replaced by POSBlock | |
POSReceiptBlock | Replaced by POSBlock | |
PrintPreview | DocumentPreview | Coming soon |
QRCode | QRCode | Coming soon |
RadioButtonList | ChoiceList | Available |
Screen | Page | Available |
ScrollView | ScrollBox | Available |
SearchBar | SearchField | Available |
Section | Section | Available |
SectionHeader | Use Section.heading | |
SegmentedControl | Tabs/Tab | Coming soon |
Selectable | Clickable | Available |
Stack | Stack | Available |
Stepper | NumberField | Use NumberField with stepper controls |
Text | Text | Available |
TextArea | TextArea | Available |
TextField | TextField | Available |
Tile | Tile | Available |
TimeField | TimeField | Available |
TimePicker | TimePicker | Available |