開発者向けの変更です。
POS が確かめられないカートの変更は、エラーになります
対象は、POS UI extensions の API バージョン 2026-10。
Cart API のカート操作が、Shopify POS の確認を待つ形に変わります。
掲載は2026年10月7日、開発者向けの Changelog。
出典: Shopify developer changelog「Cart mutations reject unconfirmed writes in POS UI extensions 2026-10」2026年10月7日
https://shopify.dev/changelog/cart-mutations-reject-unconfirmed-writes-in-pos-ui-extensions-2026-10
- Version: 2026-10
- Flags: Breaking API Change / Action required
- Surfaces: API
- Affected APIs: POS Extensions
In POS UI extensions API version 2026-10, Cart API mutations reject when Shopify POS doesn’t confirm that the cart changed. In earlier versions these mutations resolve whether or not POS applied the write.
(POS UI extensions の API バージョン 2026-10 では、Shopify POS がカートの変更を確認しないとき、Cart API のミューテーションは reject します。これまでのバージョンでは、POS が書き込みを反映したかどうかに関係なく、これらのミューテーションは resolve していました)
これまでは、反映されてもされなくても「成功」で返っていました。
いまは、消えた変更に気づけません
公式は、いまの問題をこう書いています。
Earlier API versions resolve the mutation regardless of that result, so an app can’t tell an applied write from a dropped one, and an app can show a fee or a discount as applied when the cart never changed.
(これまでの API バージョンは、結果に関係なくミューテーションを resolve するので、アプリは反映された書き込みと落ちた書き込みを見分けられず、カートが変わっていないのに、手数料や割引を適用済みと表示することがあります)
A dropped cart write is silent today. Rejection turns that silent data loss into an error at the call site, where an app can retry, surface a message to the staff, or roll back its own state.
(いまは、落ちたカートの書き込みは何も知らせません。reject にすることで、その静かなデータの消失が呼び出した場所でのエラーになり、アプリはやり直す、スタッフにメッセージを出す、自分の状態を戻す、のいずれかができます)
アプリが打てる手は、3つ。
- やり直す
- スタッフにメッセージを出す
- アプリの側の状態を戻す
reject するカート操作は、次のとおりです
2026-10 で reject するのは、次のミューテーションです。
bulkCartUpdateremoveLineItemapplyCartDiscountaddCartCodeDiscountremoveAllDiscountssetCustomerremoveCustomeraddLineItemPropertiesbulkAddLineItemPropertiesremoveLineItemPropertiessetLineItemDiscountbulkSetLineItemDiscountsremoveLineItemDiscountaddLineItemSellingPlanremoveLineItemSellingPlanupdateLineItemQuantity— 2026-10 で新しく入り、最初から reject する
エラーの理由は2通りです
確認できなかった書き込みは、2つのメッセージのどちらかで返ります。
POS refused the cart update. The cart was not changed.
(POS がカートの更新を断りました。カートは変わっていません)
公式の例は、レジ担当が支払いの画面に進んだ後。カートの編集ができる状態に戻れば、やり直しで通ることがあります。
POS could not confirm the cart update. The outcome is unknown and a partial write is possible. Read the cart before you retry.
(POS はカートの更新を確認できませんでした。結果は不明で、一部だけ書き込まれた可能性があります。やり直す前にカートを読んでください)
ほかの理由でも reject は起きます。公式の例は、割引の値が正しくない場合と、顧客が無い場合です。
影響は、2026-10 に上げた拡張機能だけです
切り替えはストアごとではなく、拡張機能ごと。
The change applies per extension, based on the API version the extension declares, not per store.
(この変更は、ストアごとではなく、拡張機能が宣言する API バージョンに基づいて、拡張機能ごとに適用されます)
Apps on 2026-07 and earlier keep the current behavior with no changes.
(2026-07 以前のアプリは、何も変わらず今の動きのままです)
すでに try / catch や .catch() で囲んでいるアプリは、確認できなかった書き込みのときにその処理が走ります。
備えずに上げると、処理が途中で止まることがあります
公式の注意書きは、次のとおり。
Calls that previously resolved now reject. If a rejection isn’t caught, the rest of your handler doesn’t run, including any UI you render after the write and any cleanup such as clearing a loading state.
(これまで resolve していた呼び出しが reject するようになります。reject を受け止めないと、ハンドラの残りは実行されず、書き込みの後に描く UI や、読み込み中の表示を消すような後始末も走りません)
Apps that bump without handling rejection will see handlers stop at the first unconfirmed write, which can leave a spinner on screen or skip a confirmation step.
(reject に備えずに上げたアプリは、最初の確認できなかった書き込みでハンドラが止まり、画面に読み込み中の表示が残ったり、確認の手順が飛ばされたりすることがあります)
開発者がやることは、先に備えてから上げることです
公式の手順は2段。
- 拡張機能が呼ぶすべてのカート操作に、reject への備えを足す
- そのあとで
api_version = "2026-10"にする
If you can’t migrate immediately, keep the extension on 2026-07 or earlier. Those versions aren’t affected, and you can bump after the handling is in place.
(すぐに移行できないなら、拡張機能を 2026-07 以前のままにしてください。それらのバージョンは影響を受けず、備えができてから上げられます)
2026-07 は、API のバージョン管理のサポート期間が終わるまで使えます。
🔴 公式に書かれていないこと
- 2026-07 のサポートがいつ終わるかは、この Changelog には書かれていません。書かれているのは “until it reaches the end of its support window under API versioning” だけです
- どの POS アプリ・拡張機能が影響を受けるかの一覧は書かれていません
- 手数料や割引の表示のずれが、実際の店でどれだけ起きていたかは書かれていません
- スタッフに見せるメッセージの文面や画面は書かれていません。コード例の中の文言はアプリ側の例です
- 日本のストアで使えるか・使えるプランの条件は書かれていません
- 関連ドキュメント(Cart API・2026-10 のリリースノート・API versioning)のリンクの先は、本記事では読んでいません
- 🔴 本記事は日本のストアで確認していません。上の記載が無いことをもって「影響がある」とも「影響がない」とも書きません
POS のアプリを使う店がやること
- POS の画面で割引・顧客・数量を扱うアプリを使っている店は、提供元に 2026-10 への対応予定を聞く
- 自社で POS UI extensions を作っている場合は、カート操作の呼び出しに reject への備えがあるかを見直す
- 備えができるまでは、拡張機能を 2026-07 以前のままにしておける
🔵 上の手順はキクシル編集部の整理で、公式の記載ではありません。
出典
- Shopify developer changelog「Cart mutations reject unconfirmed writes in POS UI extensions 2026-10」2026年10月7日
https://shopify.dev/changelog/cart-mutations-reject-unconfirmed-writes-in-pos-ui-extensions-2026-10
上記の Shopify 公式の情報だけを一次情報として使っています。
次の事項は「未確認」として扱い、推測で補っていません。
- 2026-07 のサポートの終わりの日付
- 影響を受けるアプリの一覧
- 表示のずれが実際に起きていた頻度
- スタッフに見えるメッセージと画面
- 日本のストアでの提供の有無とプランの条件

