POS UPDATE

POS 11.5 固定割引の端数計算が変更

1セント以内の誤差が生じる可能性あり。API 2026-04以前は対応不要

POS ~ 11.4ライン合計に割引適用$5.00 ÷ 3個 → $5.00POS 11.5~単価ごとに割引適用$1.67 × 3個 → $5.01

Shopify POS バージョン 11.5 より、固定金額の行アイテム割引(Fixed Amount)の内部計算方式が変更されます。これまでライン全体へ一括適用していた割引を、単価ベースで計算してから合算する方式に切り替えます。数量で割り切れない金額では最大1セント(現地通貨の最小単位)のずれが生じる場合があります。パーセンテージ割引は今回の変更対象外です。

1変更内容:Before / After 図解

BEFORE(~11.4)$5.00割引 ÷ 3個ライン合計へ $5.00 を直接適用合計割引 = $5.00端数なし / 常に指定額と一致(ただし単価の整合性は保証されない)AFTER(11.5~)$5.00割引 ÷ 3個 → $1.67/個$1.67 × 3 = $5.01 を適用合計割引 = $5.01端数あり(最大1セントの誤差)単価レベルで整合性が担保される

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

課題
3点購入で500円均一の固定割引を設定しているが、POS 11.5以降に合計がわずかにずれると疑問を持たれる
打ち手
レシートや割引明細に「割引は単価ベースで計算されます」と説明文を追加し、顧客への事前周知を行う
効果
端数によるクレームを未然に防ぎ、キャッシャー業務のスムーズな運用を維持できる
技術メモ
Cart API の setLineItemDiscount へ渡す値はこれまでどおりライン合計額でよい。変換はPOSシステムが自動処理する
課題
POSアプリ拡張でバンドル割引を実装しており、数量✕単価の計算結果をレシートに表示している
打ち手
表示ロジックを「合計割引額」ではなく「単価×数量」で再計算するよう更新する(POS 11.5リリースに合わせて検証)
効果
POS内部の計算値と表示値のずれをなくし、棚卸しや会計連携の精度を高める
技術メモ
将来のAPIバージョンでは FixedAmount を渡す際に単価ベースの金額が必須となる予定。詳細はリリース時にアナウンスされる
課題
複数SKUを一括割引する際に bulkSetLineItemDiscounts を利用しており、金額検証テストが失敗するか心配
打ち手
テスト用の期待値を「ライン合計額 ±1セント」の範囲で許容するよう修正し、整数割り切れケースと端数ケースの両方をカバーするテストケースを追加する
効果
CI/CDパイプラインでの誤検知を防ぎ、リリース後の安定稼働を確保できる
技術メモ
API バージョン 2026-04 以前を使用している拡張機能は今すぐの対応は不要。将来バージョンで対応が必要になる時期は改めて案内される

3技術者が押さえるべきポイント

項目 内容 対応要否
対象割引タイプ 固定金額(FixedAmount)のみ
パーセンテージ割引 変更なし 対応不要
Cart API の渡し方 引き続きライン合計額を渡せばよい。POS側が自動変換する 対応不要(現時点)
端数の最大誤差 最大1セント(現地通貨の最小単位) 表示ロジック要確認
API 2026-04以前の拡張機能 今すぐ対応不要 対応不要(現時点)
将来のAPIバージョン 単価ベースの金額を直接渡す必要が生じる予定(詳細は未発表) リリース時に確認
🔍 補足:影響を受けないケース
  • 割引額が数量で割り切れる場合(例:$6.00 ÷ 3 = $2.00)→ 合計は変わらない
  • パーセンテージ割引を使用している全てのケース
  • 1点のみの行アイテムに固定割引を適用している場合
POS 11.5 の固定金額割引は単価ベース計算に移行し、最大1セントの端数が生じる可能性があるため、Cart API への渡し方は変えずに表示ロジックと単体テストの許容値を確認することを推奨します。

Source: https://shopify.dev/changelog/minor-rounding-change-for-custom-line-item-discounts-in-pos-115 | 公開日: 2026年4月27日