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

# Build a Box

> 購入後オファーのBuild a Box: 購入者があなたの厳選した商品からカスタムボックスを組み立て、ボックスが埋まるほど深くなるボリュームディスカウントが適用されます。

**Build a Box** は、購入者があなたの厳選した商品セットから自分だけのボックスを組み立て、選択したすべてを1回の取引で購入する購入後オファータイプです。1つの商品を承諾または拒否するのではなく、何をいくつ入れるかを選び、ボックスが埋まるにつれてボリュームディスカウントが深くなっていきます。

単一商品および複数商品の購入後オファーと並ぶ存在で、見出しやタイマーなどの通常のオファーウィジェットと組み合わせて使えます。

<Note>
  Build a Box は複数の異なる商品を提供します。1つの商品をより多く段階的な価格で販売したい場合は、代わりに[数量アップセル](/ja/aftersell/quantity-upsells)を使用してください。
</Note>

追加するには、ファネルを開き、**Add offer** を選択して **Build a box** を選びます。

<div id="setting-up-the-box">
  ## ボックスの設定
</div>

<div id="choosing-candidate-products">
  ### 候補商品の選択
</div>

**Product selection** セクションで、購入者が選べる商品を制御します。これらは\*候補（candidates）\*と呼ばれます。

1. 購入後ファネルエディタでボックスオファーを開きます。
2. **Product selection** を展開します。
3. **Add product** を選択し、1つ以上の商品を選びます。すでにリストにある商品はピッカーから除外されます。
4. 保存します。

ボックスは最大 **12個の候補**に対応します。行のハンドルをドラッグして並べ替えられます。これが購入者に表示される順序です。削除アイコンで候補を削除できますが、ボックスには最低1つの候補が必要なため、最後の1つは削除できません。

<div id="box-size">
  ### ボックスサイズ
</div>

**Box size** は、購入者が選択しなければならないアイテム数を設定します。

| 設定                    | 動作                                          |
| --------------------- | ------------------------------------------- |
| **Minimum items**     | 下限。アイテム数でカウントされるため、同じ商品を3個入れれば3としてカウントされます。 |
| **Maximum items（任意）** | 空欄にすると制限なし。最小値と同じにすると固定サイズのボックスになります。       |

固定サイズのボックスの場合、エディタには、購入者がちょうどその数のアイテムを選ぶ必要があり、「0 of N selected」のカウンターが表示されることが示されます。

<Warning>
  候補商品の合計が最小数に届かない場合、エディタには **「This box won't be shown to shoppers」** というタイトルの重大バナーが表示され、商品で実際に許容される最大アイテム数と設定した最小値が示されます。オファーは配信時に完全にスキップされます。

  提案される解決策は原因によって異なります。

  * **数量セレクターがオフになっている商品がある**（1回しか追加できない）→ いずれかをオンに戻す、商品を追加する、または最小値を下げる。
  * **それ以外の場合** → 最小値を下げる、商品を追加する、または商品の最大数量を引き上げる。
  * **ボックスの最大値がアイテムを一切許容しない** → 代わりにその旨がバナーに表示され、最大値を引き上げるか空欄にするよう求められます。
</Warning>

<div id="discounts">
  ## 割引
</div>

<div id="discount-tiers">
  ### 割引階層
</div>

**Box discount** セクションでは、ボックス内のアイテム数に応じてスケールする割引を設定します。**Add tier** で階層を追加し、**Minimum items for tier N** と **Discount for tier N** を設定します。

割引率の決まり方:

* 購入者には、単純に最後に超えたしきい値ではなく、ボックスが該当する**最も深い**割引率が適用されます。3個以上で30%、6個以上で20%と設定した場合、6個入れた購入者にも30%が適用されます。
* 割引率は、ボックスの最小値ではなく、**その時点のアイテム数**で評価されます。タイルは定価で表示され、ボックスが埋まるにつれて価格が再計算されるため、購入者に提示される割引率は常に現在の選択内容が実際に獲得している率になります。
* 空の階層テーブルも有効で、その場合ボックスは定価で販売されます。

ボックス全体の割引上限はありません。割引率を決めるのは階層テーブルのみです。

意図しないと思われる階層パターンについて、エディタは警告を表示します。そのうち2つは保存を妨げ、残り1つは注意喚起のみです。

| 警告                                              | 表示される条件                     | 保存を妨げるか？ |
| ----------------------------------------------- | --------------------------- | -------- |
| ある階層の割引がより小さい階層より低く、適用されることがない                  | 最小値が厳密に高い階層の割引率が、その下の階層より低い | はい       |
| 階層がボックスの最小値を下回っており、購入可能なすべてのボックスがすでにその割引を獲得している | 階層の最小値がボックスの下限を下回っている       | いいえ      |
| 2つの階層が同じアイテム数から始まっている                           | 階層の最小値が重複している               | いいえ      |

ボックスの最大値は最小値と等しいか、それ以上である必要もあります。最大値を最小値より低く設定すると保存が妨げられます。

<div id="per-product-discounts">
  ### 商品ごとの割引
</div>

候補商品には、ボックスの割引率に従う代わりに、独自の割引を設定できます。候補を開き、**Discount** に移動して、**Give this product its own discount** にチェックを入れます。

* このオーバーライドは、階層の割引率に代わって、その商品のタイルとボックス合計に適用されます。
* `0` も有効なオーバーライドで、割引が適用されているボックスの中でその商品を定価に保ちます。
* ボックスの割引に従わせるには、オーバーライドをオフのままにします。

<div id="editing-several-products-at-once">
  ### 複数商品の一括編集
</div>

**Edit all products** で一括編集パネルが開きます。編集から除外したい候補のチェックを外してください。

選択した商品間で値が異なるフィールドには **Mixed** と表示されます。そのフィールドを編集するとすべての商品に値が書き込まれ、そのままにすると各商品固有の値が保持されます。一部の商品のみオーバーライドがある場合、オーバーライドのトグルは不確定状態で表示されます。

<div id="per-product-settings">
  ## 商品ごとの設定
</div>

各候補には独自のパネルがあり、**Badge**、**Product image badge**、**Image**、**Product details**（レビュー評価を含む。星の色のデフォルトは `#fdcc0d` と `#d1d5db`）、**Variant options**、**Box limits**、**Discount**、**Already purchased** をカバーします。

タイルの外観は候補ごとには設定しません。オファーレベルの [**Layout**](#layout) 設定で決まるため、ボックス内のすべてのタイルが同じ形になります。

**Box limits** 配下の2つの設定は特筆に値します。

* **Show quantity selector** - デフォルトでオン。オフにすると、追加のたびにちょうど1個ずつ入り、タイルごとの数量ステッパーは表示されません。
* **Maximum quantity in a box** - 空欄にすると制限なし。1に設定すると、バラエティボックスの多様性を保てます。

**Already purchased** セクションは、購入者がすでにこの商品を持っている場合（現在の注文で購入済み、またはファネルの前のステップで承諾済み）の動作を制御します。商品IDでマッチングされるため、購入済み商品の別のバリエーションもカウントされます。3つの扱いから1つを選択します。

| オプション                          | 動作                                                                     |
| ------------------------------ | ---------------------------------------------------------------------- |
| **Show normally**              | 商品は特別な扱いなしでボックスに表示されます（デフォルト）。                                         |
| **Show a "Your choice" badge** | 商品はボックスに残り、購入者がすでに持っている商品であることをピルバッジで示します。                             |
| **Hide the product**           | 商品はボックスから完全に除外されます。最高額/最低額の候補には利用できません。これらはこの設定が読み取られた後に注文から解決されるためです。 |

**Show a "Your choice" badge** を選択すると、3つの追加設定が表示されます。

* **Badge text** - バッジの文言。空欄にすると、ストアの翻訳（**Settings > Translations** の **Already purchased badge** で設定）が使用されます。デフォルトは「Your choice」です。
* **Badge color** - バッジピルの塗りつぶし色（16進数、デフォルト `#008060`）。
* **Badge text color** - バッジピル内のテキスト色（16進数、デフォルト `#ffffff`）。

バッジはファネルエディタのプレビューに表示されるため、公開前に見た目を確認できます。

<div id="layout">
  ## レイアウト
</div>

ボックスのレイアウト設定にある **Layout** では、タイルの形と1行に並ぶタイルの数を設定します：

| レイアウト             | 見え方                                      |
| ----------------- | ---------------------------------------- |
| **Classic**       | 画像がテキストの横に表示され、1行に2商品。                   |
| **Compact grid**  | 画像がテキストの上に表示され、1行に3つ。スマートフォンでは1行に1つ。     |
| **Spotlight**     | 最初の商品が半分の幅で目立つように表示され、残りはコンパクトグリッドで続きます。 |
| **Split columns** | 左側に商品が並び、合計と購入ボタンは右側の独立した列に表示されます。       |

同じセクションで、ボックス周囲の余白も設定します。

<div id="progress">
  ## 進捗
</div>

**Box progress** は充填インジケーターを制御します。

| 設定                       | オプション               | デフォルト     |
| ------------------------ | ------------------- | --------- |
| **Position**             | 商品の上 / 購入ボタンの上 / 両方 | 商品の上      |
| **Show progress bar**    | オン / オフ             | オン        |
| **Bar color**            | 16進数                | `#008060` |
| **Bar position**         | テキストの上 / テキストの下     | テキストの上    |
| **Top / bottom padding** | 0〜10、2刻み            | 0         |

「非表示」のポジションはありません。進捗行を完全になくすには、進捗テキストのフィールドを空にしてください。

<div id="progress-text-variables">
  ### 進捗テキストの変数
</div>

3つの[進捗の文言](#progress-wording)エディタのいずれかで `{` と入力すると、変数を挿入できます。

| 変数                                                    | 表示内容                                                                                                 |
| ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| `{box-progress}`                                      | デフォルトの進捗文全体。ボックスの状態に応じて文の構造が変わるため、手書きの単一の文では実現できません。各状態の文言を変更するには、[進捗の文言](#progress-wording)をご覧ください。 |
| `{items-in-box}`                                      | 現在ボックスに入っているアイテム数。                                                                                   |
| `{items-to-go}`                                       | 最小数までの残り数。                                                                                           |
| `{box-minimum}`                                       | ボックスの最小数。                                                                                            |
| `{box-maximum}`                                       | ボックスの最大数。                                                                                            |
| `{current-discount}`                                  | 現在適用されている割引率。                                                                                        |
| `{next-discount}`                                     | さらにアイテムを追加すると解放される割引率。最も深い階層では空欄。                                                                    |
| `{items-to-next-discount}`                            | それに到達するために必要な追加アイテム数。最も深い階層では空欄。                                                                     |
| `{subtotal}` / `{total}` / `{discount}` / `{savings}` | 選択全体を合計したボックス価格。価格が確定するまで空欄。                                                                         |
| `{first-name}`                                        | 購入者の名。                                                                                               |
| `{timer}` / `{timer-end}`                             | オファーのカウントダウン。                                                                                        |

複数商品オファーで利用できるステップヘッダー変数には、ボックスに相当するものがなく、ここでは提供されません。

<div id="progress-wording">
  ### 進捗の文言
</div>

**Progress wording** は3つのリッチテキストエディタで構成され、ボックスを埋めていく段階ごとに1つずつ用意されています。いずれかのエディタで `{` と入力すると、[変数](#progress-text-variables)を挿入できます。フィールドを空にすると、その状態では進捗行が非表示になります。

| エディタ                                 | 表示されるタイミング                                                         |
| ------------------------------------ | ------------------------------------------------------------------ |
| **Before the minimum items reached** | ボックスが最小数に達していない間。購入者はまだチェックアウトできないため、ボタンが無効になっている理由を説明するのはこの行だけです。 |
| **Between minimum and maximum**      | ボックスが最小数を超えた後、さらに深い割引または最大数にまだ到達していない間。                            |
| **Maximum items hit**                | ボックスが到達できる上限に達したとき。つまり最大数、または最大数のないボックスでは最も深い割引です。                 |

エディタには、ボックスが実際に到達できるフィールドのみが表示されます。

* **Before the minimum items reached** は、ボックスの最小数が0より大きい場合にのみ表示されます。
* **Between minimum and maximum** は、ボックスに最大数または1つ以上の割引階層がある場合にのみ表示されます。どちらもない場合は、最小数を超えた時点がすでに最終状態です。
* **Maximum items hit** は常に表示されます。どのボックスも必ずこの状態に到達します。

これらはリッチテキストエディタなので、文言を変えるだけでなく、太字、色、サイズも変更できます。

ボックスの **Language** を変更すると、編集していない文言は再翻訳されます。一度編集したフィールドは、入力したとおりにそのまま保持されます。

<div id="tile-button-text">
  ## タイルボタンのテキスト
</div>

Buttonsパネルの **Tile button text** セクションでは、各候補タイルに表示されるAddボタンとRemoveボタンの文言を、このファネルに限ってカスタマイズできます。

* **Add button text** - 購入者が商品をボックスに追加する前にタイルに表示されるラベル。デフォルトは「Add to box」。
* **Remove button text** - 購入者が商品を追加した後にタイルに表示されるラベル。デフォルトは「Remove」。

いずれかのフィールドを空欄にすると、Translationsページのストア翻訳が使用されます。ストア翻訳も空欄の場合は、英語のデフォルトが使用されます。

利用不可状態のラベル（「Unavailable」）は、これらの設定の影響を受けません。

ファネルごとのオーバーライドではなく、これらのラベルのストア全体のデフォルトを設定するには、Aftersell管理画面の **Translations** に移動し、**Add to box** と **Remove from box** のエントリを更新してください。

<div id="shipping">
  ## 配送
</div>

**Shipping** セクションでは、ボックスの配送料を設定します。ボックスは送料無料にするか、配送料を追加するかのどちらかです。配送料を請求する場合は、金額を設定し、ボックス内の商品数を掛けるかどうかを選びます。これにより、6商品入りのボックスで1個あたりの料金の6倍を請求することも、定額の料金を1回だけ請求することもできます。

<div id="language-and-order-tagging">
  ## 言語と注文タグ
</div>

* **Language** は、ボックスのコピーとボタン、および商品詳細の翻訳に使用する言語を設定します。
* **Order tag** は、ボックスを承諾したすべての注文に Shopify タグを付けます。フルフィルメントの振り分けや、レポートでボックス注文を切り分けるために使用します。

<div id="limitations">
  ## 制限事項
</div>

* **承諾ボタンは1つのみ共有。** Shopifyは購入後ページで実行できる承諾数に上限を設けているため、ボックスには商品ごとのボタンではなく単一のCTAがあります。
* **リプレイスメントオファー不可。** ボックスはリプレイスメントアップセルとして使用できません。
* **価格内訳は折りたためません。** **General settings** の **Show price breakdown** でオン/オフを切り替えます。オンの場合は常に展開表示されます。複数商品オファーでは、内訳は「Show price breakdown」リンクの中に格納されます。

<div id="subscription-only-products">
  ### サブスクリプション専用商品
</div>

サブスクリプションとしてのみ販売するように設定された商品（Shopifyで `requiresSellingPlan: true`、1回限りの購入オプションなし）は、build-a-boxオファーに含めることができません。ボックス内のすべてのアイテムは注文上で1回限りの購入として請求されるため、Shopifyは配信時にサブスクリプション専用商品を拒否します。これらの候補は、ファネルエディタのプレビューには表示され続けるものの、実際のすべての注文で何も表示されずに除外されます。

この状況が検出されると、ファネルエディタが警告します。

* **警告バナー** - 一部の候補がサブスクリプション専用だが、ボックスの最小数に到達するのに十分な非サブスクリプション候補が残っている場合。バナーには対象商品が名前で一覧表示されます。オファーは購入者に表示されますが、設定より少ない商品数になります。
* **重大バナー** - すべての候補がサブスクリプション専用、または残った非サブスクリプション候補がボックスの最小数に届かない場合。オファーはすべての購入者に対して完全にスキップされます。

**警告バナーが表示された場合**、ボックスは引き続き機能しますが、設定より少ない商品しか配信されません。1回限りの購入も可能な候補を追加して、意図した商品ラインナップを確保してください。

**重大バナーが表示された場合**、修正するまでオファーは一切動作しません。以下のいずれかで解消できます。

* 1回限りの購入も可能な候補を追加する。
* ボックスの最小数を下げて、残った候補で到達できるようにする。
* 対象商品が1回限りの購入としても販売されるべき場合は、Shopifyで「サブスクリプション専用」をオフにする。

サブスクリプション専用の候補をボックスから完全に削除することもできます。購入者にとっては何も変わりません（実際のすべての注文ですでに除外されているため）が、バナーが消え、エディタのプレビューが実際の配信内容と一致するようになります。

サブスクリプション**対応**商品（1回限りの購入とサブスクリプションの両方を提供する商品）はボックスから除外されません。他のボックスアイテムと同様に、単に1回限りの購入として販売されます。ボックスに販売プランが付くことはありません。
