POS EXTENSIONS

POS UI拡張がリアクティブストレージに対応|shopify.storage.current 解説

ポーリング不要。ストレージの変更を自動検知して画面をリアルタイム更新

BackgroundTargetloyalty_points = 520Smart GridTile Target自動更新 → 520pt 表示shopify.storage.current

このアップデートはPOS UI拡張を開発するShopifyパートナー・開発者が対象です。API バージョン 2026-10 以降から利用可能になり、同一POSデバイス上の複数の拡張ターゲット間でストレージ値の変更を自動検知・リアルタイム反映できるようになりました。既存の拡張機能への変更は不要です。

1Before / After:何が変わったのか

BEFOREBackground Target が書き込みStorage.set('loyalty_points', 520)Tile が定期ポーリングで読み取りsetInterval → Storage.get() を繰り返す⚠ タイムラグ・無駄な読み取りカスタムポーリングロジックが必要AFTER (2026-10〜)Background Target が書き込みStorage.set('loyalty_points', 520)シグナルが変更を自動検知・通知shopify.storage.current['loyalty_points']✓ 即時反映・ポーリング不要リアクティブシグナルで自動更新

2shopify.storage.current の仕組み

Storage API.set() / .remove()(書き込み・削除は既存APIのまま)shopify.storage.current読み取り専用リアクティブシグナル(各キーに対応)初期値は undefined(非同期ロード)同一デバイス上の他ターゲット変更を自動受信subscribe / 購読

3業務に活かせる具体ユースケース

課題
バックグラウンドで取得したロイヤルティポイントをスマートグリッドタイルに即時反映したい
打ち手
バックグラウンドターゲットが Storage.set('loyalty_points', value) で書き込み、スマートグリッドタイルが shopify.storage.current['loyalty_points'] を購読して自動更新する
効果
ポーリングなしでポイント残高を常に最新状態に保ち、スタッフが正確な情報で接客できる
技術メモ
API バージョン 2026-10 以降が必要。初期ロード中は undefined になるため、ローディング表示などのハンドリングが必須
課題
複数の拡張ターゲットが同じカート情報を参照しており、一方が更新したタイミングで他方に反映が遅れる
打ち手
カート関連データをストレージに書き込む側は既存の Storage.set() を使い、参照する側は shopify.storage.current でシグナル購読に切り替える
効果
カスタムポーリングロジックを排除してコードをシンプル化し、表示タイムラグを解消できる
技術メモ
書き込み・削除は従来どおり既存の Storage API メソッドを使用する点に注意
課題
スタッフ認証ステータスなど、複数ターゲットが参照するフラグを同期させたい
打ち手
認証完了時に Storage.set('auth_status', 'verified') を実行し、各ターゲットが shopify.storage.current['auth_status'] を購読して状態を自動反映する
効果
認証状態の不整合によるUXの乱れを防止。追加のメッセージング実装が不要になる
技術メモ
同一POSデバイス上の同一拡張機能の他ターゲットへの変更のみが検知対象。デバイスをまたいだ同期は対象外

4技術者向けポイント

項目 内容
対象 API バージョン 2026-10 以降。それ以前のバージョンでは shopify.storage.current は使用不可
シグナルの性質 各ストレージキーが読み取り専用のリアクティブシグナルとして公開される。値の読み取りと変更購読が可能
書き込み・削除 引き続き既存の Storage API メソッド(.set() / .remove())を使用する。current からの書き込みはできない
初期値の注意 ストレージ値は非同期でロードされるため、シグナルの初期値は undefined。キーが存在しない場合も同様。必ずハンドリングすること
適用範囲 同一POSデバイス上の同一拡張機能の複数ターゲット間のみ。異なるデバイス・異なる拡張機能への反映は対象外
既存拡張への影響 破壊的変更なし。既存の Storage API は変更なしで継続動作する。移行作業は任意

shopify.storage.current を採用することで、POS上の複数拡張ターゲット間のデータ同期をポーリングレスなリアクティブ設計に刷新し、開発工数削減とリアルタイムUX向上を同時に実現できます。

Source: https://shopify.dev/changelog/pos-ui-extensions-now-support-reactive-storage-access | 公開日: 2026年10月22日