> ## 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** 是一种购后优惠类型，顾客从你精选的一组产品中组装自己的盒子，并在一笔交易中购买全部所选商品。他们不是接受或拒绝单个产品，而是选择放入什么以及数量多少，数量折扣可以随着盒子装满而加深。

它与单产品和多产品购后优惠并列，并可与常规的优惠组件（例如标题和计时器）组合使用。

<Note>
  Build a Box 提供多种不同的产品。如果要以阶梯价格销售同一产品的更多件数，请改用[数量 Upsell](/zh/aftersell/quantity-upsells)。
</Note>

要添加一个盒子，请打开漏斗，选择 **Add offer**（添加优惠），然后选择 **Build a box**。

<div id="setting-up-the-box">
  ## 设置盒子
</div>

<div id="choosing-candidate-products">
  ### 选择候选产品
</div>

**Product selection**（产品选择）部分控制顾客可以从哪些产品中选择。这些产品称为*候选产品*。

1. 在购后漏斗编辑器中打开盒子优惠。
2. 展开 **Product selection**。
3. 选择 **Add product**（添加产品）并挑选一个或多个产品。已在列表中的产品不会出现在选择器中。
4. 保存。

一个盒子最多支持 **12 个候选产品**。拖动行上的手柄可重新排序——这就是顾客看到的顺序。使用删除图标可移除某个产品；你无法移除最后一个剩余的候选产品，因为盒子至少需要一个产品。

<div id="box-size">
  ### 盒子大小
</div>

**Box size**（盒子大小）设置顾客必须选择的商品数量：

| 设置                          | 作用                           |
| --------------------------- | ---------------------------- |
| **Minimum items（最少商品数）**    | 下限。按商品件数计算，因此同一产品的三件算作三件。    |
| **Maximum items（最多商品数，可选）** | 留空表示无上限。设置为与最小值相等，即为固定大小的盒子。 |

对于固定大小的盒子，编辑器会提示顾客必须恰好选择该数量的商品，并会看到"0 of N selected"计数器。

<Warning>
  如果你的候选产品加起来无法达到最小数量，编辑器会显示一条标题为 **"This box won't be shown to shoppers"**（此盒子不会向顾客显示）的严重警告横幅，指出你的产品实际允许的最大件数以及你设置的最小值。该优惠在投放时将被完全跳过。

  它建议的修复方法取决于原因：

  * **某个产品关闭了数量选择器**，因此只能添加一次——重新开启一个、添加更多产品，或降低最小值。
  * **其他情况**——降低最小值、添加更多产品，或提高某个产品的最大数量。
  * **盒子的最大值不允许任何商品**——横幅会改为如此提示，并要求你提高该值或将其留空。
</Warning>

<div id="discounts">
  ## 折扣
</div>

<div id="discount-tiers">
  ### 折扣层级
</div>

**Box discount**（盒子折扣）部分设置随盒中商品数量增加而变化的折扣。使用 **Add tier**（添加层级）添加一个层级，然后设置 **Minimum items for tier N**（层级 N 的最少商品数）和 **Discount for tier N**（层级 N 的折扣）。

折扣率的选取方式：

* 顾客获得的是其盒子符合条件的**最深**折扣率，而不仅仅是最后跨过的门槛。如果你配置了 3 件以上 30%、6 件以上 20%，那么有 6 件商品的顾客仍然获得 30%。
* 折扣率按**实时商品数量**评估，而非按盒子最小值。产品卡片以原价打开，并随着盒子装满而重新计价，因此顾客看到的折扣率始终是其当前所选商品实际获得的折扣率。
* 空的层级表是有效的，表示盒子按原价销售。

不存在全盒范围的折扣上限——层级表是唯一决定折扣率的地方。

对于看起来不符合预期的层级配置，编辑器会显示警告。其中两种会阻止保存，第三种仅为提示：

| 警告                              | 出现时机                    | 是否阻止保存？ |
| ------------------------------- | ----------------------- | ------- |
| 某个层级的折扣低于更小的层级，因此永远不会生效         | 某个最小值更高的层级折扣率反而低于其下方的层级 | 是       |
| 某个层级低于盒子最小值，因此顾客能购买的每个盒子都已达到该层级 | 层级的最小值低于盒子下限            | 否       |
| 两个层级从相同的商品数量开始                  | 层级最小值重复                 | 否       |

盒子最大值还必须等于或高于最小值。将最大值设为低于最小值会阻止保存。

<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** 下有两项设置值得特别说明：

* **Show quantity selector（显示数量选择器）** - 默认开启。关闭后，每次添加恰好放入一件，卡片上不显示数量步进器。
* **Maximum quantity in a box（盒中最大数量）** - 留空表示无限制，或设置为 1 以保持组合盒的多样性。

**Already purchased**（已购买）部分控制当顾客已拥有该产品时的处理方式——无论是在当前订单中购买的，还是在漏斗较早步骤中接受的。按产品 ID 匹配，因此已购产品的不同变体同样计入。可从三种处理方式中选择一种：

| 选项                                                | 作用                                                     |
| ------------------------------------------------- | ------------------------------------------------------ |
| **Show normally（正常显示）**                           | 产品正常出现在盒子中，无特殊处理（默认）。                                  |
| **Show a "Your choice" badge（显示"Your choice"徽章）** | 产品保留在盒子中，并用胶囊徽章标记为顾客已拥有的商品。                            |
| **Hide the product（隐藏产品）**                        | 产品从盒子中完全移除。不适用于"最贵/最便宜"候选产品，因为这类产品是在读取此设置之后才从订单中解析出来的。 |

选择 **Show a "Your choice" badge** 后，会出现三项附加设置：

* **Badge text（徽章文字）** - 徽章上的措辞。留空则使用你商店的翻译（在 **Settings > Translations** 的 **Already purchased badge** 中设置）。默认为"Your choice"。
* **Badge color（徽章颜色）** - 徽章胶囊的填充颜色（十六进制，默认 `#008060`）。
* **Badge text color（徽章文字颜色）** - 徽章胶囊内的文字颜色（十六进制，默认 `#ffffff`）。

徽章在漏斗编辑器预览中可见，因此你可以在发布前查看效果。

<div id="layout">
  ## 布局
</div>

**Layout**（布局）位于盒子的布局设置中，用于设置卡片形状以及每行显示的卡片数量：

| 布局                | 外观                          |
| ----------------- | --------------------------- |
| **Classic**       | 图片位于文字旁边，每行两个产品。            |
| **Compact grid**  | 图片位于文字上方，每行三个，手机上每行一个。      |
| **Spotlight**     | 第一个产品以半宽突出显示，其余产品以紧凑网格排列在后。 |
| **Split columns** | 产品位于左侧，总额和购买按钮位于右侧的独立一栏中。   |

同一部分还可设置盒子周围的内边距。

<div id="progress">
  ## 进度
</div>

**Box progress**（盒子进度）控制填充指示器：

| 设置                               | 选项                 | 默认值       |
| -------------------------------- | ------------------ | --------- |
| **Position（位置）**                 | 产品上方 / 购买按钮上方 / 两者 | 产品上方      |
| **Show progress bar（显示进度条）**     | 开 / 关              | 开         |
| **Bar color（进度条颜色）**             | 十六进制               | `#008060` |
| **Bar position（进度条位置）**          | 文字上方 / 文字下方        | 文字上方      |
| **Top / bottom padding（上/下内边距）** | 0–10，步长为 2         | 0         |

不存在"隐藏"位置。要完全去掉进度提示行，请清空进度文字字段。

<div id="progress-text-variables">
  ### 进度文字变量
</div>

在三个[进度措辞](#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**（进度措辞）由三个富文本编辑器组成，分别对应填充盒子的每个阶段。在任意一个编辑器中输入 `{` 即可插入[变量](#progress-text-variables)。清空某个字段即可在该状态下隐藏进度提示行。

| 编辑器                                  | 该行何时显示                                     |
| ------------------------------------ | ------------------------------------------ |
| **Before the minimum items reached** | 盒子尚未达到最小值时。顾客此时还无法结账，因此这一行是唯一解释按钮为何被禁用的内容。 |
| **Between minimum and maximum**      | 盒子超过最小值后，且仍有更深的折扣或最大值尚未达到时。                |
| **Maximum items hit**                | 盒子已达到能达到的全部上限时：即达到最大值，或在没有最大值的盒子上达到最深折扣。   |

编辑器只显示你的盒子实际能够达到的字段：

* **Before the minimum items reached** 仅在盒子的最小值大于零时出现。
* **Between minimum and maximum** 仅在盒子设有最大值或至少一个折扣层级时出现。两者都没有时，超过最小值即为最终状态。
* **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**（运费）部分设置盒子收取的配送费用。盒子可以免运费，也可以加收运费。收取运费时，你需要设置金额，并选择是否按盒中商品数量相乘。这样，一个六件商品的盒子可以按单件费率的六倍收费，也可以只收一笔固定费用。

<div id="language-and-order-tagging">
  ## 语言与订单标签
</div>

* **Language**（语言）设置盒子文案和按钮所用的语言，以及产品详情翻译所用的语言。
* **Order tag**（订单标签）会为每个接受该盒子的订单添加一个 Shopify 标签。可用它来分流履约，或在报表中单独筛选盒子订单。

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

* **共享一个接受按钮。** 盒子只有一个行动号召按钮，而非每个产品各一个按钮，因为 Shopify 限制了购后页面可执行的接受次数。
* **不支持替换优惠。** 盒子不能用作替换型 upsell。
* **价格明细不可折叠。** **General settings**（常规设置）下的 **Show price breakdown**（显示价格明细）控制其开关。开启时它始终处于展开状态——而多产品优惠则将其明细放在"Show price breakdown"链接后面。

<div id="subscription-only-products">
  ### 仅限订阅的产品
</div>

配置为仅以订阅形式销售的产品（在 Shopify 中 `requiresSellingPlan: true`——无一次性购买选项）不能包含在 build-a-box 优惠中。盒子中的每件商品都按一次性购买计入订单，因此 Shopify 会在投放时拒绝仅限订阅的产品。这些候选产品在每笔真实订单上都会被静默移除，尽管漏斗编辑器预览中仍会显示它们。

当检测到这种情况时，漏斗编辑器会向你发出警告：

* **警告横幅** - 部分候选产品仅限订阅，但剩余的非订阅候选产品足以达到盒子最小值。横幅会按名称列出受影响的产品。该优惠仍会向顾客显示，但产品数量少于配置。
* **严重警告横幅** - 所有候选产品都仅限订阅，或剩余的非订阅候选产品无法达到盒子最小值。该优惠将对所有顾客完全跳过。

**如果你看到警告横幅**，盒子仍然可以运作——只是投放的产品少于你的配置。请添加更多可一次性购买的候选产品，让盒子涵盖你想要的产品范围。

**如果你看到严重警告横幅**，在修复之前该优惠完全不会投放。以下任一操作都可消除警告：

* 添加也可一次性购买的候选产品。
* 降低盒子最小值，使剩余候选产品足以达到。
* 如果受影响的产品也应支持一次性购买，请在 Shopify 中关闭它们的"仅限订阅"设置。

你也可以将仅限订阅的候选产品从盒子中完全移除。这对顾客没有任何影响——它们在每笔真实订单上本来就会被移除——但可以消除横幅，并让编辑器预览与实际投放内容一致。

支持订阅的产品（同时提供一次性购买和订阅的产品）不会从盒子中移除。它们与其他盒中商品一样，直接按一次性购买销售——盒子从不携带销售计划。
