I'll output the complete HTML directly, since the file write wasn't approved. (Note: the corrupted sibling file `260427_returns-and-exchanges-in-cart-for-pos.html` I flagged earlier still has the stray fences/postamble baked in — worth cleaning separately.)
固定額(FixedAmount)のライン項目割引が、内部的に per-unit(1個あたり)で計算されるようになる。現行 API(2026-04 以前)は今まで通り合計額を渡せば POS が自動変換。ただし割り切れない金額では最大 1 セントの合計差が出ることがある。
数量がいくつでも、ライン項目の合計に対して固定額をまとめて差し引いていた。
割引額を数量で割り、per-unit 単位で適用する。合計はほぼ同じだが、割り切れない時だけ誤差が出る。
setLineItemDiscount / bulkSetLineItemDiscounts に FixedAmount タイプで ライン項目の合計割引額をこれまで通り渡すと、POS システムが per-unit への変換を自動で処理する。
カスタムの固定額ライン項目割引が per-unit 計算に。割り切れない金額で合計が変わりうる。
%指定の割引は計算方法に変更なし。今回の対象は固定額のみ。
setLineItemDiscount単一ライン項目への固定額割引。合計額を渡せば POS が per-unit へ変換。
bulkSetLineItemDiscounts複数ライン項目へ一括で固定額割引。こちらも合計額の指定方法は据え置きでよい。
| 渡す割引額(合計) | 数量 | 1個あたり(per-unit) | 実際の合計 | 差 |
|---|---|---|---|---|
| $5.00 | 3個 | $5.00 ÷ 3 = $1.67(端数を丸め) | $5.01 | +$0.01 |
| $6.00 | 3個 | $6.00 ÷ 3 = $2.00(割り切れる) | $6.00 | ±0 |
※ 1 行目は記事に示された例。2 行目は「割り切れる場合は差が出ない」という記事の記述を補足するための対比。
拡張機能側の対応は不要。これまで通りライン項目の合計割引額を渡せば、POS が per-unit 変換を肩代わりする。
拡張機能が per-unit の割引額を直接渡す必要が出てくる。具体的な対象バージョンや時期はリリースが近づいたら案内予定(現時点では記載なし)。
拡張機能が固定額のライン割引で使っている Cart API バージョンを点検する。
該当すれば改修不要。合計額を渡す現行実装を維持してよい。
割り切れない金額のテストを用意し、将来バージョンの per-unit 直接指定に備える。
per-unit 化されるのは fixed-amount のライン割引だけ。パーセンテージ割引の計算は従来どおりで影響しない。
2026-04 以前なら対応不要。合計割引額を渡す実装のまま、POS が per-unit へ自動変換する。
割引額が数量で割り切れない時のみ、合計が最大 1 セント(現地通貨の最小単位)ずれうる。割り切れれば差は出ない。
今後の API バージョンでは拡張機能側が per-unit の割引額を直接渡す方針へ。対象版数・時期は現時点で記載なし。
影響を受けるのは Cart API の setLineItemDiscount / bulkSetLineItemDiscounts を FixedAmount タイプで使う実装。レシートや会計突合で 1 セント差が起こりうる前提でテストを組む。詳細は Cart API リファレンス参照。
setLineItemDiscount / bulkSetLineItemDiscounts を FixedAmount で使う実装はそのまま。将来バージョン更新時に per-unit 対応を計画に入れる。