# レジでのクーポン適用

Pro 機能

レジでのクーポン適用には [WCPOS Pro](/ja/getting-started/pro-license.md) が必要です。無料ユーザーは[クーポン](/ja/coupons/.md)画面をぼかし表示のプレビューとして確認できますが、カート内の**クーポンを追加**アクションは無効になっています。

このページではレジでのワークフロー（クーポンの検索、適用、複数クーポンの併用、エラーへの対処）について説明します。クーポンの種類、設定、バリデーションルールについては[クーポン](/ja/coupons/.md)を、キャッシャーがその場で作成するアドホック割引については[カート割引](/ja/pos/cart/discounts.md)を参照してください。

## クーポン追加の流れ[​](#the-add-coupon-flow "クーポン追加の流れへの直接リンク")

カートの明細行の下に**クーポンを追加**ボタンがあります。タップすると小さな入力欄が開き、コードを入力するか検索できます。

1. カート内の**クーポンを追加**をタップ
2. 入力を始めると、同期済みのすべてのクーポン（コードと説明）を横断検索できます
3. 候補リストからクーポンを選択するか、コードを最後まで入力して **Enter** を押します

クーポンはローカルに同期されたデータに対して即座に検証されます。サーバーへの往復通信は発生しません。割引はカート合計に反映されます。その後カートの内容を変更した場合（商品の追加、数量の変更、顧客の変更など）、割引は自動的に再計算されます。

<!-- -->

コード入力と検索

コードを知っているレジ担当者（例：「SUMMER10」）は、コードを入力して Enter を押すだけで適用できます。これが最も速い方法です。検索機能は、顧客が印刷されたクーポンを持参したがスタッフが正確なコードを覚えていない場合や、顧客名でロイヤルティ割引を探す場合に便利です。

## カート内のクーポンピル[​](#coupon-pills-in-the-cart "カート内のクーポンピルへの直接リンク")

適用されたクーポンはそれぞれ、合計金額のすぐ上に小さな**ピル**として表示されます。ピルにはクーポンの説明（説明が設定されていない場合はコード）と割引額が表示されます。ピルの **×** をタップするとそのクーポンが削除され、カート合計が即座に再計算されます。

<!-- -->

複数のクーポンが適用されている場合、ピルは縦に並びます。表示順は追加された順序であり、この順序は[順次割引](#sequential-discounts)に影響します。

レシートのラベル

ピルのテキストはレシートにも印刷されます。生のクーポンコードよりもわかりやすいラベルを表示したい場合（例：\*「LOYAL10」*ではなく*「ロイヤルティ割引」\*など）、`WP Admin → Marketing → Coupons`でクーポンの**説明**フィールドを設定してください。WCPOS は説明が設定されている場合、それを割引ラベルとして使用します。

## 順次割引[​](#sequential-discounts "順次割引への直接リンク")

1つの注文に複数のクーポンを適用できます。WooCommerceはクーポンを**順次**処理します。各クーポンは元のカート合計ではなく、前のクーポン適用後の小計に対して割引を計算します。

### 計算例[​](#worked-example "計算例への直接リンク")

カート小計: **$100.00**

| ステップ | クーポン                       | 計算        | 累計       |
| -------- | ------------------------------ | ----------- | ---------- |
| 1        | `LOYAL10`（10%オフ）           | $100 × 0.90 | **$90.00** |
| 2        | `WELCOME5`（カートから$5オフ） | $90 − $5    | **$85.00** |
| 3        | `EXTRA20`（20%オフ）           | $85 × 0.80  | **$68.00** |

適用順序によって最終金額が変わります。10%クーポンを2枚重ねると、元の金額に対して20%オフではなく19%オフになります。2枚目の10%は既に割引された合計に適用されるためです。

### クーポンを併用できない場合[​](#when-coupons-can-t-stack "クーポンを併用できない場合への直接リンク")

WooCommerceで**個別利用のみ**に設定されたクーポンは、他のクーポンとの併用ができません。`SUMMER25`が個別利用に設定されている場合:

* `SUMMER25` を先に適用 → 他のクーポンを追加すると *「このクーポンは他のクーポンと併用できません。」* と表示されます。
* 他のクーポンを先に適用 → `SUMMER25` を追加すると同じメッセージが表示されます。

競合するクーポンを削除してから、もう一方を適用してください。

### 固定商品割引クーポン[​](#fixed-product-coupons "固定商品割引クーポンへの直接リンク")

**固定商品割引**クーポン（例：*Tシャツ1点につき$2引き*）は、一致する明細項目のみを割引対象とし、他のクーポンの小計には影響しません。割合カート割引クーポンとの併用は安全で、結果も予測どおりです。

## クーポンの削除[​](#removing-a-coupon "クーポンの削除への直接リンク")

* クーポンタグの **×** をタップすると、そのクーポンのみが削除されます。
* カートのクリア（**その他**メニュー → *カートをクリア*）を実行すると、適用済みのすべてのクーポンが削除されます。
* 商品制限付きクーポンの唯一の対象商品である明細項目を削除すると、そのクーポンは自動的に削除され、「クーポンを削除しました：対象商品がありません」という短いトーストメッセージが表示されます。

## バリデーションエラーとその解決方法[​](#validation-errors-and-how-to-resolve-them "バリデーションエラーとその解決方法への直接リンク")

POS は WooCommerce と同じバリデーション規則を適用します。完全なリストについては[バリデーションの仕組み](/ja/coupons/.md#how-validation-works)を参照してください。クーポンが拒否されると、レジ担当者に具体的なメッセージが表示されます：

| メッセージ                                            | 意味                                                                                       | 対処方法                                                                                                                                                                       |
| ----------------------------------------------------- | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| *"Coupon does not exist"*                             | 同期済みデータにコードが見つかりませんでした。                                             | スペルを確認してください。WP Admin でクーポンを作成した直後の場合は、[クーポン](/ja/coupons/.md)画面から同期を実行してください（同期アイコンを長押しして**クリアして更新**）。 |
| *"This coupon has expired"*                           | 本日の日付がクーポンの有効期限を過ぎています。                                             | WP Admin で有効期限を延長するか、別のコードを使用してください。                                                                                                                |
| *"Usage limit reached"*                               | クーポンの全体使用回数の上限に達しています。                                               | WP Admin で上限を引き上げるか、別のコードを使用してください。                                                                                                                  |
| *"Customer has already used this coupon"*             | 選択した顧客がユーザーごとの使用回数上限を超えています。                                   | 顧客を切り替えるか、ユーザーごとの上限を引き上げてください。                                                                                                                   |
| *"Minimum spend not reached"*                         | カートの小計がクーポンの最低利用金額を下回っています。                                     | 商品を追加するか、別のコードを使用してください。                                                                                                                               |
| *"Maximum spend exceeded"*                            | カートの小計がクーポンの最大利用金額を超えています。                                       | 注文を分割するか、別のコードを使用してください。                                                                                                                               |
| *"This coupon cannot be combined with other coupons"* | 新しいクーポンまたは既に適用済みのクーポンのいずれかが**個別利用のみ**に設定されています。 | 競合するクーポンを削除してから、目的のクーポンを適用してください。                                                                                                             |
| *"Coupon not valid for items in cart"*                | カート内の商品がクーポンの商品／カテゴリ制限に一致しません。                               | 対象商品を追加するか、別のクーポンを選択してください。                                                                                                                         |
| *"Coupon not valid for this customer"*                | 選択した顧客のメールアドレスがクーポンの**許可メールアドレス**ルールに一致しません。       | メールアドレスが一致する顧客に切り替えるか、メール制限を解除してください。                                                                                                     |

クーポンがローカルでは検証を通過したにもかかわらず、会計時に注文が拒否された場合、サーバー側でより新しいデータに基づいて再検証が行われています。通常、同じシフト中の別の販売で使用回数上限に達したことが原因です。再度適用するか、別のクーポンを選択してください。

## 一般的なワークフロー[​](#common-workflows "一般的なワークフローへの直接リンク")

マネージャー割引 — 追跡可能なコードを使ったその場の10%オフ

`WP Admin → Marketing → Coupons` で `MGR10` のようなクーポンを作成します：

* **割引タイプ：** パーセント割引
* **クーポン金額：** 10
* **クーポンの使用回数制限：** *（空欄 — 無制限）*
* **個別使用のみ：** オフ（ロイヤルティコードやプロモコードと併用可能にするため）
* **説明：** *「マネージャー割引」*（レシートに印刷される内容です）

コードをマネージャーのみに共有してください。このクーポンはWooCommerceレポートで追跡可能な割引として表示されます。一方、[POSの価格変更](/ja/pos/cart/discounts.md)は単に明細の価格を下げるだけです。

ロイヤルティ特典 — リピーター向けの$5オフ

`LOYAL5` を作成します：

* **割引タイプ：** カート固定割引
* **クーポン金額：** 5
* **最低利用金額：** 25 *（任意のしきい値を設定してください）*
* **ユーザーごとの使用回数制限：** 1 *（特典が1回限りの場合）*
* **説明:** *「ロイヤリティ特典」*

レジで「ロイヤリティ」と検索すれば、コードを覚えていなくてもすぐに見つけられます。

1回限りのプロモーション — チラシや印刷キャンペーン

キャンペーンごとにクーポンを1つ作成し、1回限りのチラシの場合は**クーポンごとの使用回数制限: 1**に設定します。複数回使用可能なプロモーションの場合はより大きな数値を設定してください。**有効期限**を短く設定しておくと、誤って後から再利用されるのを防げます。

複数回使用可能なプロモーションで、各顧客が1回のみ利用できるようにするには、**クーポンごとの使用回数制限**と**ユーザーごとの使用回数制限: 1**の両方を設定してください。

顧客が持参したクーポンコードにマネージャー割引を重ねる

まず顧客のコードを適用し、次にマネージャーコードを適用します。WooCommerceはこれらを順番に処理するため、マネージャー割引は既に割引適用済みの合計金額に対して計算されます。これは通常、顧客が期待する動作です。

顧客のクーポンが**個別使用のみ**に設定されている場合、マネージャーコードは拒否されます。先に顧客のクーポンを削除し（必要に応じて後から再適用）、またはWP管理画面で顧客のクーポンを併用可能に変更してください。

顧客が注文の一部を返品し、別のクーポンで再計算したい場合

まず元の注文を返金し（[返金](/ja/orders/refunds.md)を参照）、新しいクーポンを適用して新規の販売を開始してください。クーポンは販売時に注文へ紐づけられるため、POSから完了済みの注文に対してクーポンを遡って差し替えることはできません。返金によりクーポンの使用回数が戻るため、新しい注文で再度適用できます。

## POS価格変更との相互作用[​](#interaction-with-pos-price-changes "POS価格変更との相互作用への直接リンク")

レジ担当者が会計時に商品の価格を下げた場合（[POS価格上書き](/ja/pos/cart/discounts.md)）、その後にクーポンを適用すると、クーポンは元の価格ではなく**値下げ後の価格**に対して計算されます。POSで値下げされた商品は「セール中」として扱われるため、**セール商品を除外**が有効なクーポンはこれらの商品をスキップします。

これは意図的な動作です。レジ担当者の割引とクーポンが元の価格に対して二重に適用されるのを防ぎます。詳細な仕組みについては、[POS価格変更とクーポンの相互作用](/ja/pos/cart/discounts.md#how-pos-price-changes-interact-with-coupons)を参照してください。

## オフライン時の動作[​](#offline-behaviour "オフライン時の動作への直接リンク")

* **クーポンの適用はオフラインでも動作します** — ローカルに同期されたクーポンデータに対してバリデーションが実行されます。
* **注文送信時にはサーバー接続が必要です**（サーバー側で再検証が行われ、使用回数が記録されます）。
* **WP Adminで作成したばかりのクーポン**は、次回の同期が完了するまでレジでは適用できません。 [クーポン](/ja/coupons/.md) 画面フッターの同期アイコン（）をタップします。最新データを取得するには、長押しして**クリアして更新**を選択してください。
