> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alforse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 販売ルール

> 見積、受注、売上請求書の明細に対する、会社が定義するチェック。制限対象のアイテムを完全にブロックするか、ユーザーに警告し、ユーザーが確認して続行できるようにします。

販売ルールを使うと、ビジネス上の条件が満たされない場合に、アイテムの見積、受注、請求をできないようにできます。たとえば、輸出管理対象の部品が制限対象国に向かう場合、保留中の得意先、販売していない数量などです。販売マネージャーがルールを一度定義すれば、すべての営業担当者の見積、受注、売上請求書の明細が、自動的にそのルールに照らしてチェックされます。

## 販売ルールの仕組み

ルールは、**条件**と**重大度**を組み合わせたものです。Alforse は、ルールが適用される各明細について条件を評価します。

* 条件が**成立**すれば、明細は通過します。
* **成立しない**場合は、ルール違反となり、重大度が結果を決めます。**エラー**は書き込みをブロックし、**警告**はメッセージを表示して、ユーザーが確認して続行できるようにします。

ブロックされたドキュメントは何も書き込まないため、拒否された明細によって、中途半端に保存された見積や受注が残ることはありません。

### 実例：輸出管理対象の部品

管理対象の部品が制限対象の送付先に販売されないようにするには、次のようにします。

1. ルールの範囲を、その部品のアイテムグループに限定します。
2. 3 つのサーフェスをすべて有効にします。**見積明細**、**受注明細**、**売上請求書明細**です。
3. 条件 `customer.location.countryCode` `notIn` 制限対象国のリスト を追加します。
4. **重大度**を**エラー**に設定し、メッセージを `` `{item.id}` cannot ship to this destination`` にします。

その部品の明細で、出荷先の国がリストにあるものは、アイテム ID が埋め込まれたメッセージとともに拒否されるようになります。

## ルールを作成する

**販売 → 販売ルール**を開き、ルールを作成します。一覧には、各ルールの**名前**、**重大度**、**サーフェス**、**ステータス**（有効または無効）、割り当てられた**アイテム**の数が表示されます。

FieldType

<details>
  <summary>**名前**required</summary>

  ルールの一意の名前。
</details>

<details>
  <summary>**有効**</summary>

  ルールが評価されるかどうか。オフにすると、ルールを削除せずに停止できます。
</details>

<details>
  <summary>**説明**</summary>

  ルールに関する任意の社内向けの補足。
</details>

<details>
  <summary>**重大度**</summary>

  **エラー**（`error` として保存）は、解決されるまで保存をブロックします。**警告**（`warn` として保存）は、ユーザーが確認して続行できます。
</details>

<details>
  <summary>**アイテムの絞り込み**</summary>

  ルールが対象とするアイテムタイプやアイテムグループ。空欄にすると、すべてのアイテムが対象です。
</details>

<details>
  <summary>**サーフェス**</summary>

  ルールがチェックする販売ドキュメントの明細：**見積明細**、**受注明細**、**売上請求書明細**。
</details>

<details>
  <summary>**条件**</summary>

  一致の種類と、1 行以上のフィールド / 演算子 / 値の行。
</details>

<details>
  <summary>**メッセージ**</summary>

  違反時に表示されるテキスト。`{token}` の埋め込みに対応しています。
</details>

### 条件を書く

条件は小さなツリーで、1 行以上のフィールド / 演算子 / 値の行に適用される**一致の種類**からなります。

| 項目 | オプション |
| - | - |
| 一致の種類 | `all` — すべての行が成立する必要があります。`any` — 少なくとも 1 行が成立する必要があります。`none` — どの行も成立してはいけません。 |
| フィールド | アイテムの情報：`item.type`、`item.replenishmentSystem`、`item.itemTrackingType`、アイテムのカスタムフィールド。得意先の情報：`customer.customerTypeId`、`customer.customerStatusId`、得意先のカスタムフィールド。ドキュメントの出荷先の国：`customer.location.countryCode`。明細の `transaction.quantity`。 |
| 演算子 | たとえば `eq`、`neq`、`in`、`notIn`、`isSet`、`isNotSet`、`gt`、`lt`。ビルダーには、選択したフィールドが対応する演算子だけが表示されます。 |

フィールドは固定のレジストリから提供されます。アイテムと得意先のカスタムフィールド以外を、独自に追加することはできません。

### メッセージを書く

メッセージは、ルールが作動したときにユーザーに表示される内容なので、問題が分かるように書いてください。`` `{item.id}` `` や `` `{customer.location.countryCode}` `` のようなトークンは、明細の実際の値に置き換えられます。

NOTE

**値がないことは違反です**

`isSet` と `isNotSet` を除き、**値のない**フィールドを参照する条件は、通過するのではなく、*「…は必須です」*（"…is required"）という違反で失敗します。そのため、出荷先ロケーションのない受注に対する国のルールは、*「Customer location is required」*（得意先ロケーションは必須です）として安全側に失敗します。**「出荷先」**（Ship To）のない請求書にある単独の請求書明細（元の受注がないもの）も同様です。Alforse が請求先住所を代用することは決してありません。

## ルールの対象アイテムを選ぶ

ルールは、次の 2 つのいずれかの方法で明細に到達します。

* **フィルターによる方法。** ルールの範囲を**アイテムタイプ**や**アイテムグループ**に限定します。OR または AND で組み合わせられます。フィルターが空の場合は、**すべての**アイテムに一致します。
* **割り当てによる方法。** そのアイテムの販売タブにある**販売ルール**カードから、ルールを特定の 1 つのアイテムに紐づけます。**ライブラリから追加…**で既存のルールを選ぶか、**新しいルールを作成**でそこから新規作成します。

アイテムの**販売ルール**カードには、そのアイテムに適用されるすべてのルールが一覧表示されます。フィルターを通じてアイテムに到達するルールは、カードから割り当て解除できません。削除するには、ルールのアイテムの絞り込みを編集します。

販売ルールは常にアイテムを対象にします。[保管ルール](https://docs.alforse.com/ja/docs/reference/storage-rules.md)とは異なり、作業区を対象にすることはありません。

## ルールがチェックされるタイミング

ルールは、2 種類のチェックポイントで実行されます。

### 明細のチェック

見積、受注、売上請求書で明細が作成または編集されると、その明細タイプをサーフェスに含むルールがただちに評価されます。

### ドキュメントのゲート

ドキュメントが確約になるたびに、ドキュメントのすべての明細が再チェックされます。

* 見積の確定
* 見積から受注への変換、または RFQ から見積への変換
* 受注の確認
* 受注の出荷の転記
* 売上請求書の転記

これらのゲートで**すべての**明細を読み直すことで、明細のチェックでは捕捉できないものを検出できます。変換、インポート、API で作成された明細、明細の保存後に書かれたルール、あるいは変更された出荷先などです。

### 国のルールが読む出荷先

国の条件は、商品が実際に向かう先で評価されます。

* ドロップシップは、受注ヘッダーの住所を上書きします。
* 受注から変換された請求書の明細は、その受注を通じて送付先が解決されます。
* 単独の請求書明細は、請求書自身の**「出荷先」**を使用します。

### 得意先のデジタル見積の場合

得意先が[デジタル見積](https://docs.alforse.com/ja/docs/reference/quotes.md)を承諾するとき、何かを確認できる従業員はいません。

* `error` の違反は、中立的なメッセージで承諾を拒否します。社内のルールのテキストが、得意先に届くことはありません。
* `warn` の違反は、販売側のためにログに記録され、承諾は通ります。

## ブロックまたは警告

| 重大度 | 結果 |
| - | - |
| `error`（**エラー**） | 条件が満たされるまで、明細またはドキュメントをブロックします。確認して先に進むことはできません。 |
| `warn`（**警告**） | メッセージを表示し、ユーザーが**確認して続行**できるようにします。 |

どちらの結果も記録が残ります。ブロックされた書き込みと確認された警告はそれぞれ、ルール、ドキュメント、明細、アイテム、実行者、日時が証跡として記録され、**販売ルール通知グループ**（設定 → 販売）のメンバーにメールが送信されます。

## プラン

HEADS UP

**Business プラン限定**

販売ルールには **Business** プランが必要です。ほかのプランでは、販売ルール画面にアップグレードの案内が表示され、ルールは評価されません。

## トラブルシューティング

| 症状 | 原因 | 対処 |
| - | - | - |
| 保存や転記が、見慣れない業務的なメッセージで失敗する。 | 重大度が `error` の販売ルールが作動した。 | **販売 → 販売ルール**で、メッセージからルールを探し、ドキュメントのデータまたはルールを修正する。 |
| メッセージが*「…は必須です」*で終わっている。 | ルールが、値のないフィールドをチェックした。最も多いのは、出荷先ロケーションの欠落。 | ルールを緩めるのではなく、ドキュメントの欠けている値を入力する。 |
| 保存時に警告ダイアログが表示される。 | `warn` のルールが作動した。 | 確認して再送信する。確認は記録される。 |
| ルールが一度も作動しない。 | ルールが無効、サーフェスがこの明細タイプを除外している、アイテムの絞り込みがアイテムに該当しない、または会社が Business プランではない。 | ルールの**ステータス**、**サーフェス**、**アイテムの絞り込み**を確認する。 |

## 関連項目

**保管ルール**

兄弟にあたるルールファミリー：同じ条件ビルダーを、販売ドキュメントではなく在庫トランザクションに適用します。

[Open](https://docs.alforse.com/ja/docs/reference/storage-rules.md)

**見積**

最初のサーフェス：見積明細が書き込まれるときと、確定・変換時に再度、ルールが実行されます。

[Open](https://docs.alforse.com/ja/docs/reference/quotes.md)

**受注**

ルールは、受注の確認と、それを履行する出荷をゲートします。

[Open](https://docs.alforse.com/ja/docs/reference/sales-orders.md)

**請求書**

最後のチェックポイント：上流の受注なしで作成された請求書も、転記時にチェックされます。

[Open](https://docs.alforse.com/ja/docs/reference/invoices.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.