> ## 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

> A oferta pós-compra Build a Box: os compradores montam uma caixa personalizada com produtos que você seleciona, com descontos por volume que aumentam conforme a caixa enche.

O **Build a Box** é um tipo de oferta pós-compra em que o comprador monta a própria caixa a partir de um conjunto de produtos que você seleciona e compra toda a seleção em uma única transação. Em vez de aceitar ou recusar um único produto, ele escolhe o que entra e em que quantidade, e um desconto por volume pode aumentar conforme a caixa enche.

Ele fica ao lado das ofertas pós-compra de produto único e de múltiplos produtos, e se compõe com os widgets de oferta habituais, como o título e o cronômetro.

<Note>
  O Build a Box oferece vários produtos diferentes. Para vender mais unidades de um único produto com preços por faixa, use [Upsells de quantidade](/pt/aftersell/quantity-upsells).
</Note>

Para adicionar um, abra o funil, selecione **Add offer** e escolha **Build a box**.

<div id="setting-up-the-box">
  ## Configurando a caixa
</div>

<div id="choosing-candidate-products">
  ### Escolhendo produtos candidatos
</div>

A seção **Product selection** controla de quais produtos o comprador pode escolher. Eles são chamados de *candidatos*.

1. Abra a oferta de caixa no editor de funil pós-compra.
2. Expanda **Product selection**.
3. Selecione **Add product** e escolha um ou mais produtos. Produtos que já estão na lista são excluídos do seletor.
4. Salve.

Uma caixa aceita até **12 candidatos**. Arraste a alça de uma linha para reordenar — essa é a ordem que os compradores veem. Use o ícone de excluir para remover um; você não pode remover o último candidato restante, já que a caixa precisa de pelo menos um.

<div id="box-size">
  ### Tamanho da caixa
</div>

**Box size** define quantos itens o comprador precisa escolher:

| Configuração                 | O que faz                                                                                 |
| ---------------------------- | ----------------------------------------------------------------------------------------- |
| **Minimum items**            | O piso. Contado em itens, então três unidades de um produto contam como três.             |
| **Maximum items (optional)** | Deixe vazio para não haver limite. Defina igual ao mínimo para uma caixa de tamanho fixo. |

Com uma caixa de tamanho fixo, o editor informa que os compradores devem escolher exatamente essa quantidade de itens e verão um contador "0 de N selecionados".

<Warning>
  Se os seus candidatos, em conjunto, não conseguirem atingir o mínimo, o editor exibe um banner crítico intitulado **"This box won't be shown to shoppers"**, informando o máximo de itens que seus produtos permitem e o mínimo que você definiu. A oferta é completamente ignorada no momento da exibição.

  A correção sugerida depende da causa:

  * **Um produto está com o seletor de quantidade desativado**, então ele só pode ser adicionado uma vez — reative um deles, adicione mais produtos ou reduza o mínimo.
  * **Caso contrário** — reduza o mínimo, adicione mais produtos ou aumente a quantidade máxima de um produto.
  * **O máximo da caixa não admite nenhum item** — o banner informa isso em vez disso e pede que você o aumente ou o deixe vazio.
</Warning>

<div id="discounts">
  ## Descontos
</div>

<div id="discount-tiers">
  ### Níveis de desconto
</div>

A seção **Box discount** define um desconto que escala com a quantidade de itens na caixa. Adicione um nível com **Add tier** e defina **Minimum items for tier N** e **Discount for tier N**.

Como a taxa é escolhida:

* O comprador recebe a taxa **mais alta** para a qual sua caixa se qualifica, não simplesmente o último limite ultrapassado. Se você configurar 3+ itens com 30% e 6+ itens com 20%, um comprador com 6 itens ainda recebe 30%.
* A taxa é avaliada pela **contagem de itens ao vivo**, não pelo mínimo da caixa. Um card abre com preço cheio e é reprecificado conforme a caixa enche, então a taxa apresentada ao comprador é sempre a taxa que a seleção atual realmente merece.
* Uma tabela de níveis vazia é válida e significa que a caixa é vendida a preço cheio.

Não existe um teto de desconto para a caixa toda — a tabela de níveis é a única coisa que define a taxa.

O editor exibe avisos para formatos de níveis que parecem não intencionais. Dois deles impedem salvar; o terceiro é apenas consultivo:

| Aviso                                                                                               | Quando aparece                                                                                         | Impede salvar? |
| --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | -------------- |
| Um nível dá menos desconto que um nível menor, então nunca se aplica                                | Um nível com um mínimo estritamente maior tem uma taxa de desconto menor que a de um nível abaixo dele | Sim            |
| Um nível fica abaixo do mínimo da caixa, então toda caixa que o comprador pode comprar já o alcança | O mínimo de um nível está abaixo do piso da caixa                                                      | Não            |
| Dois níveis começam com o mesmo número de itens                                                     | Mínimos de nível duplicados                                                                            | Não            |

O máximo da caixa também deve ser igual ou maior que o mínimo. Definir um máximo abaixo do mínimo impede salvar.

<div id="per-product-discounts">
  ### Descontos por produto
</div>

Um candidato pode ter seu próprio desconto em vez de seguir a taxa da caixa. Abra o candidato, vá em **Discount** e marque **Give this product its own discount**.

* A substituição se aplica ao card daquele produto e ao total da caixa, no lugar da taxa do nível.
* `0` é uma substituição válida — mantém um produto a preço cheio dentro de uma caixa que, no restante, tem desconto.
* Deixe a substituição desativada para seguir o desconto da caixa.

<div id="editing-several-products-at-once">
  ### Editando vários produtos de uma vez
</div>

**Edit all products** abre um painel de edição em massa. Desmarque qualquer candidato que você queira deixar de fora da edição.

Onde os produtos selecionados diferem, um campo mostra **Mixed** — editá-lo grava seu valor em todos eles, e deixá-lo intocado preserva o valor de cada produto. O botão de substituição mostra um estado indeterminado quando apenas alguns têm substituições.

<div id="per-product-settings">
  ## Configurações por produto
</div>

Cada candidato tem seu próprio painel, cobrindo **Badge**, **Product image badge**, **Image**, **Product details** (incluindo avaliações, com cores de estrelas padrão `#fdcc0d` e `#d1d5db`), **Variant options**, **Box limits**, **Discount** e **Already purchased**.

A aparência dos cards não é definida por candidato. Ela vem da configuração [**Layout**](#layout) no nível da oferta, então todos os cards de uma caixa têm o mesmo formato.

Duas configurações em **Box limits** merecem destaque:

* **Show quantity selector** — ativado por padrão. Desative para que cada adição inclua exatamente uma unidade, sem seletor de quantidade por card.
* **Maximum quantity in a box** — deixe vazio para não haver limite, ou defina como 1 para manter uma caixa variada de fato variada.

A seção **Already purchased** controla o que acontece quando o comprador já tem esse produto — comprado no pedido atual ou aceito em uma etapa anterior do funil. A correspondência é feita pelo ID do produto, então uma variante diferente de um produto comprado ainda conta. Escolha um de três tratamentos:

| Opção                          | O que faz                                                                                                                                                                    |
| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Show normally**              | O produto aparece na caixa sem nenhum tratamento especial (padrão).                                                                                                          |
| **Show a "Your choice" badge** | O produto permanece na caixa e um selo em formato de pílula o marca como um produto que o comprador já tem.                                                                  |
| **Hide the product**           | O produto é removido completamente da caixa. Não disponível para candidatos de maior/menor preço, que são resolvidos a partir do pedido depois que essa configuração é lida. |

Quando **Show a "Your choice" badge** é selecionado, três configurações adicionais aparecem:

* **Badge text** — o texto do selo. Deixe em branco para usar a tradução da sua loja (definida em **Settings > Translations**, em **Already purchased badge**). O padrão é "Your choice".
* **Badge color** — a cor de preenchimento da pílula do selo (hex, padrão `#008060`).
* **Badge text color** — a cor do texto dentro da pílula do selo (hex, padrão `#ffffff`).

O selo é visível na pré-visualização do editor de funil, então você pode ver como ele fica antes de publicar.

<div id="layout">
  ## Layout
</div>

**Layout**, nas configurações de layout da caixa, define o formato dos cards e quantos cards ficam em cada linha:

| Layout            | Aparência                                                                                           |
| ----------------- | --------------------------------------------------------------------------------------------------- |
| **Classic**       | Imagem ao lado do texto, dois produtos por linha.                                                   |
| **Compact grid**  | Imagem acima do texto, três por linha, um por linha no celular.                                     |
| **Spotlight**     | O primeiro produto aparece em destaque com metade da largura, e os demais seguem na grade compacta. |
| **Split columns** | Produtos à esquerda, com o total e o botão de compra em uma coluna própria à direita.               |

A mesma seção define o espaçamento interno ao redor da caixa.

<div id="progress">
  ## Progresso
</div>

**Box progress** controla o indicador de preenchimento:

| Configuração             | Opções                                                | Padrão             |
| ------------------------ | ----------------------------------------------------- | ------------------ |
| **Position**             | Acima dos produtos / Acima do botão de compra / Ambos | Acima dos produtos |
| **Show progress bar**    | Ativado / desativado                                  | Ativado            |
| **Bar color**            | Hex                                                   | `#008060`          |
| **Bar position**         | Acima do texto / abaixo do texto                      | Acima do texto     |
| **Top / bottom padding** | 0–10, em passos de 2                                  | 0                  |

Não existe uma posição "oculta". Para remover completamente a linha de progresso, limpe o campo de texto de progresso.

<div id="progress-text-variables">
  ### Variáveis do texto de progresso
</div>

Digite `{` em qualquer um dos três editores de [textos de progresso](#progress-wording) para inserir uma variável.

| Variável                                              | O que mostra                                                                                                                                                                                                            |
| ----------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `{box-progress}`                                      | A frase de progresso padrão completa. Ela muda de estrutura conforme os estados da caixa, o que nenhuma frase escrita à mão consegue fazer — veja [Textos de progresso](#progress-wording) para reformular cada estado. |
| `{items-in-box}`                                      | Quantos itens estão atualmente na caixa.                                                                                                                                                                                |
| `{items-to-go}`                                       | A contagem restante bruta até o mínimo.                                                                                                                                                                                 |
| `{box-minimum}`                                       | O mínimo da caixa.                                                                                                                                                                                                      |
| `{box-maximum}`                                       | O máximo da caixa.                                                                                                                                                                                                      |
| `{current-discount}`                                  | A taxa atualmente em vigor.                                                                                                                                                                                             |
| `{next-discount}`                                     | A taxa desbloqueada ao adicionar mais itens. Vazio no nível mais alto.                                                                                                                                                  |
| `{items-to-next-discount}`                            | Quantos itens a mais são necessários para alcançá-la. Vazio no nível mais alto.                                                                                                                                         |
| `{subtotal}` / `{total}` / `{discount}` / `{savings}` | Preços da caixa, somados em toda a seleção. Vazios até um preço ser resolvido.                                                                                                                                          |
| `{first-name}`                                        | O primeiro nome do comprador.                                                                                                                                                                                           |
| `{timer}` / `{timer-end}`                             | A contagem regressiva da oferta.                                                                                                                                                                                        |

As variáveis de cabeçalho de etapa disponíveis nas ofertas de múltiplos produtos não têm equivalente na caixa e não são oferecidas aqui.

<div id="progress-wording">
  ### Textos de progresso
</div>

**Progress wording** são três editores de rich text, um para cada etapa do preenchimento da caixa. Digite `{` em qualquer um deles para inserir uma [variável](#progress-text-variables). Limpe um campo para ocultar a linha de progresso naquele estado.

| Editor                               | Quando sua linha aparece                                                                                                                                           |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Before the minimum items reached** | Enquanto a caixa não atinge o mínimo. O comprador ainda não pode finalizar a compra, então esta linha é a única coisa que explica por que o botão está desativado. |
| **Between minimum and maximum**      | Depois que a caixa passa do mínimo, enquanto um desconto maior ou o máximo ainda está por vir.                                                                     |
| **Maximum items hit**                | Quando a caixa tem tudo o que pode obter: o máximo ou, em uma caixa sem máximo, o desconto mais alto.                                                              |

O editor mostra apenas os campos que a sua caixa pode realmente alcançar:

* **Before the minimum items reached** aparece apenas quando a caixa tem um mínimo acima de zero.
* **Between minimum and maximum** aparece apenas quando a caixa tem um máximo ou pelo menos um nível de desconto. Sem nenhum dos dois, ultrapassar o mínimo já é o estado final.
* **Maximum items hit** sempre aparece. Toda caixa chega a ele.

Como são editores de rich text, você pode aplicar negrito, cor e tamanho ao texto, não apenas mudar as palavras.

Alterar o **Language** da caixa traduz novamente qualquer texto que você não editou. Depois que você edita um campo, ele permanece exatamente como você digitou.

<div id="tile-button-text">
  ## Texto dos botões do card
</div>

A seção **Tile button text** no painel Buttons permite personalizar o texto dos botões Adicionar e Remover que aparecem em cada card de candidato, somente para este funil.

* **Add button text** — o rótulo exibido em um card antes de o comprador adicionar o produto à caixa. O padrão é "Add to box".
* **Remove button text** — o rótulo exibido em um card depois que o comprador adicionou o produto. O padrão é "Remove".

Deixe qualquer um dos campos em branco para usar a tradução da sua loja da página Translations. Se a tradução da loja também estiver em branco, o padrão em inglês é usado.

O rótulo do estado indisponível ("Unavailable") não é afetado por essas configurações.

Para definir padrões para toda a loja para esses rótulos, em vez de uma substituição por funil, vá em **Translations** no admin da Aftersell e atualize as entradas **Add to box** e **Remove from box**.

<div id="shipping">
  ## Frete
</div>

A seção **Shipping** define quanto a caixa cobra pela entrega. A caixa é enviada com frete grátis ou adiciona uma cobrança de frete. Ao cobrar, você define o valor e escolhe se ele deve ser multiplicado pela quantidade de itens na caixa, de modo que uma caixa com seis itens pode custar seis vezes uma tarifa por unidade ou uma taxa fixa única.

<div id="language-and-order-tagging">
  ## Idioma e tags de pedido
</div>

* **Language** define o idioma usado nos textos e botões da caixa, e nas traduções dos detalhes do produto.
* **Order tag** aplica uma tag do Shopify a cada pedido que aceita a caixa. Use-a para direcionar o atendimento ou para isolar os pedidos de caixas nos relatórios.

<div id="limitations">
  ## Limitações
</div>

* **Um único botão de aceitação compartilhado.** A caixa tem uma única call to action em vez de botões por produto, porque a Shopify limita quantas aceitações uma página pós-compra pode fazer.
* **Sem ofertas de substituição.** Uma caixa não pode ser usada como upsell de substituição.
* **O detalhamento de preços não é recolhível.** **Show price breakdown**, em **General settings**, ativa ou desativa o detalhamento. Quando está ativado, ele fica sempre expandido — a oferta de múltiplos produtos, por outro lado, coloca seu detalhamento atrás de um link "Show price breakdown".

<div id="subscription-only-products">
  ### Produtos exclusivos de assinatura
</div>

Produtos configurados para venda apenas como assinatura (`requiresSellingPlan: true` na Shopify — sem opção de compra única) não podem ser incluídos em uma oferta build-a-box. Cada item da caixa é cobrado como compra única no pedido, então a Shopify rejeita produtos exclusivos de assinatura no momento da exibição. Esses candidatos são silenciosamente descartados em todos os pedidos reais, mesmo que a pré-visualização do editor de funil continue a exibi-los.

O editor de funil avisa você quando essa situação é detectada:

* **Banner de aviso** — alguns candidatos são exclusivos de assinatura, mas sobrevivem candidatos não exclusivos suficientes para atingir o mínimo da caixa. O banner lista os produtos afetados pelo nome. A oferta ainda é exibida aos compradores, mas com menos produtos do que o configurado.
* **Banner crítico** — todos os candidatos são exclusivos de assinatura, ou os candidatos não exclusivos que sobrevivem não conseguem atingir o mínimo da caixa. A oferta é completamente ignorada para todos os compradores.

**Se você vir o banner de aviso**, a caixa ainda funciona — apenas exibe menos produtos do que você configurou. Adicione mais candidatos que também possam ser comprados uma única vez, para que a caixa tenha a variedade que você pretendia.

**Se você vir o banner crítico**, a oferta não será executada até que você a corrija. Qualquer uma destas ações a resolve:

* Adicione candidatos que também possam ser comprados uma única vez.
* Reduza o mínimo da caixa, para que os candidatos restantes sejam suficientes para atingi-lo.
* Desative "exclusivo de assinatura" nos produtos afetados na Shopify, se eles também devem ser vendidos como compra única.

Você também pode remover completamente os candidatos exclusivos de assinatura da caixa. Isso não muda nada para os compradores — eles já são descartados em todos os pedidos reais — mas silencia o banner e faz a pré-visualização do editor corresponder ao que realmente é exibido.

Produtos **habilitados** para assinatura (que oferecem tanto compra única quanto assinatura) não são descartados de uma caixa. Eles são simplesmente vendidos como compra única, como qualquer outro item da caixa — uma caixa nunca carrega um plano de venda.
