O Buy X Get Y nativo do Shopify não adiciona o brinde grátis ao carrinho para você. Pode descontar um brinde para R$0 assim que esse brinde está no carrinho, e pode até ser acionado por uma compra mínima, mas o cliente ainda precisa notar a oferta, encontrar o produto brinde e adicioná-lo ele mesmo. Um true auto-add gift-with-purchase, onde o brinde aparece por conta própria no momento em que o carrinho cruza uma meta de gasto e desaparece se o carrinho cair abaixo dessa meta, precisa de código personalizado no tema construído na API Ajax Cart do Shopify ou de um app que faz a adição e remoção para você.
Este guia explica por que o gift-with-purchase nativo fica aquém, por que a etapa de adição manual mata silenciosamente a promoção, como a abordagem Ajax cart DIY funciona e o que custa para você mantê-la, o que procurar em um app, e a uma parte dessa que você pode executar de forma confiável hoje: uma barra de progresso de carrinho ao vivo que mostra aos compradores o quão perto estão da recompensa.
O Shopify adiciona automaticamente um brinde grátis quando o carrinho atinge uma meta?
Não, não por conta própria. O Shopify oferece dois blocos nativos, e nenhum deles auto-adiciona um produto.
O primeiro é um desconto de pedido de compra mínima, que oferece desconto no pedido assim que o carrinho cruza uma meta de gasto. Isso é dinheiro descontado, não um produto grátis.
O segundo é Buy X Get Y, que pode fazer um produto específico ficar grátis. Desde 2019, o Buy X Get Y até suporta um valor mínimo de compra como gatilho, então você pode construir uma promoção que diz "Gaste R$100, ganhe um brinde grátis." De acordo com o changelog do desenvolvedor Shopify, essa opção permite que você exija um valor de gasto em vez de uma quantidade específica de itens, o que parece exatamente um gift-with-purchase.
Aqui está o porém que confunde quase todo comerciante que tenta: descontos Buy X Get Y dão desconto em um brinde que já está no carrinho. Não coloca o brinde no carrinho. O cliente tem que adicionar o produto brinde ele mesmo para o desconto ser ativado e anular seu preço. Se nunca adicionar, simplesmente não recebe a oferta, e o desconto fica lá não fazendo nada. Essa diferença, entre "o desconto existe" e "o cliente realmente recebe o brinde", é todo o problema que este artigo trata.
PLACEHOLDER DE IMAGEM (Imagem 1): Buy X Get Y nativo versus true auto-add
Visual sugerido: Um diagrama limpo 16:9 em fundo branco, dois fluxos lado a lado. Fluxo esquerdo intitulado "Buy X Get Y Nativo" mostra quatro etapas com um ícone de fricção vermelho: carrinho atinge R$100, banner aparece, cliente precisa encontrar o brinde, cliente precisa adicioná-lo manualmente. Fluxo direito intitulado "Gift-with-purchase auto-add" mostra duas etapas com uma marca de seleção verde: carrinho atinge R$100, brinde aparece em R$0.00 automaticamente. Cores de marca roxo e ouro, vetor plano, rótulos sem serifa, sem fotografia.
Por que o Buy X Get Y nativo fica aquém para um brinde grátis?
Buy X Get Y é um desconto genuinamente útil, mas foi construído para precificar itens, não para gerenciar o conteúdo de um carrinho. Essa escolha de design cria três gaps práticos para gift-with-purchase.
Ele dá desconto no brinde, não adiciona o brinde
Essa é a limitação principal. Buy X Get Y monitora o carrinho, e quando a condição "buy" é atendida (um valor de gasto ou uma quantidade de produtos qualificadores), aplica um desconto ao produto "get". Mas o produto "get" tem que estar presente no carrinho para o desconto ter algo para atuar. Shopify não injeta isso. Então a oferta só funciona para o subconjunto de compradores que notam a promoção e fazem as etapas extras para adicionar o brinde.
O cliente carrega o peso
Cada etapa que você pede a um comprador é uma etapa onde pode perdê-lo. Um gift-with-purchase que exige que o cliente deixe o que está fazendo, navegue até a página do produto brinde e o adicione ao carrinho é pedir esforço exatamente no momento em que ele está mais perto de finalizar a compra. A maioria dos compradores não vai fazer isso. Aqueles que teriam adorado o brinde nunca veem isso acontecer, e o incentivo que você está pagando fica não resgatado.
Também não consegue remover o brinde automaticamente
O caso inverso é igualmente bagunçado. Digamos que um comprador adiciona o brinde, depois remove um item e cai abaixo da meta. Com uma configuração manual, o brinde grátis pode ficar no carrinho. Dependendo de como o desconto é configurado, ele ou silenciosamente volta ao preço total (uma surpresa desagradável na finalização) ou permanece descontado quando o cliente não se qualifica mais (margem que você não pretendia dar). Um proper gift-with-purchase tem que adicionar e remover o brinde em sincronismo com o total do carrinho.
Os comerciantes sentem isso diretamente. Em um amplamente visto tópico da Comunidade Shopify, um comerciante perguntou como adicionar automaticamente um brinde grátis uma vez que o carrinho atinge uma meta de gasto sem um app de terceiros, e a resposta voltou do mesmo jeito que sempre: Buy X Get Y nativo existe, mas não vai adicionar o brinde ele mesmo, então você fica com código personalizado ou um app.
Por que uma Shopify Function não consegue apenas adicionar o brinde ao carrinho?
Essa é a pergunta natural, porque Shopify Functions é a forma moderna do lado do servidor de customizar descontos, e rodam dentro da finalização onde tudo é confiável. A resposta honesta é que a função de desconto pode precificar coisas mas não consegue adicionar produtos.
Uma função de desconto Shopify retorna operações de desconto que visam linhas de carrinho existentes. De acordo com a documentação da API de Função de Desconto Shopify, a função aplica uma porcentagem ou valor fixo de desconto em produtos ou no pedido, ou desconta frete. Ela lê o carrinho e ajusta preços. Em nenhum lugar nesse modelo tem "inserir um novo item de linha", porque o trabalho de uma função de desconto é precificar mercadorias que o comprador escolheu, não mudar o que está no carrinho.
A outra função que toca o carrinho é o Cart Transform API. Seu trabalho documentado é mudar a "preço e apresentação dos itens em um carrinho", com casos de uso limitados a expandir um bundle em seus componentes, mesclar linhas em um bundle, e atualizar o título, imagem ou preço de uma linha. Funciona em linhas que já existem. Não é um mecanismo para inserir um novo produto brinde no carrinho do nada, e algumas de suas operações são limitadas a lojas de desenvolvimento ou Shopify Plus.
Então o toolkit do lado do servidor é excelente em fazer um brinde ficar grátis uma vez que está no carrinho e inútil em colocá-lo lá em primeiro lugar. Adicionar um produto ao carrinho acontece na loja virtual, no tema, é por isso que toda solução real de auto-add termina rodando algum JavaScript lá.
Como a abordagem Ajax Cart API DIY funciona?
Se você quer construir auto-add você mesmo sem um app, a rota de loja virtual é a API Ajax Cart do Shopify. Esse é o mesmo endpoint leve que temas usam para adicionar produtos ao carrinho sem recarga de página.
A mecânica
A API Ajax Cart expõe um endpoint POST /{locale}/cart/add.js que adiciona uma ou mais variantes ao carrinho. Conforme o referência de API Ajax Cart Shopify, você envia o ID da variante e uma quantidade, e o item cai no carrinho. Na prática, um gift-with-purchase construído dessa forma se parece com isso:
- Um script no seu tema ouve mudanças de carrinho.
- Quando o subtotal do carrinho cruza sua meta, o script chama cart/add.js com o ID da variante do brinde.
- Um Buy X Get Y ou desconto de produto (nativo ou baseado em Functions) precifica esse brinde como R$0 para que o cliente não seja cobrado por isso.
- Quando o carrinho cai abaixo da meta, o script chama a API do carrinho novamente para remover o brinde.
Você combina um script de loja virtual que gerencia o conteúdo do carrinho com um desconto que gerencia o preço. Nenhuma metade faz o trabalho completo sozinha.
O custo de manutenção
Isso funciona, e muitas lojas rodavam alguma versão disso, mas é código que você agora possui para sempre. Algumas coisas a ter em mente antes de se comprometer:
- É acoplado ao tema. A API Ajax só funciona em temas hospedados Shopify, e seu script se conecta à marcação e eventos do carrinho do seu tema específico. Mude de tema, ou pegue uma atualização de tema que muda a gaveta do carrinho, e o script pode quebrar silenciosamente.
- Você precisa guardar os casos extremos. E se o comprador já tivesse o produto brinde no carrinho como um item pago? E se se qualificar para dois brindes diferentes? E se mudar quantidades rapidamente? Cada um desses é um branch que você precisa escrever e testar.
- A remoção é a metade difícil. Adicionar um brinde em uma meta é fácil. Removê-lo de forma confiável no instante em que o carrinho cai abaixo da meta, sem lutar com o cliente tentando editar seu carrinho, é onde implementações DIY ficam instáveis.
A pegadinha do checkout acelerado
Aqui está o modo de falha que custa dinheiro real, e é a mesma armadilha que atinge qualquer lógica de desconto apenas de loja virtual. Checkouts acelerados como Shop Pay, Apple Pay e Google Pay deixam o comprador pular a página do carrinho e ir direto para a finalização. Seu JavaScript do tema não roda nesse caminho. Então um comprador que toca o botão Shop Pay nunca ativa seu script de adicionar o brinde, e toda a promoção silenciosamente não acontece para eles.
É por isso que o lado do preço de um gift-with-purchase pertence a uma Shopify Function (que roda do lado do servidor em todo caminho de finalização) mesmo quando o lado da adição precisa viver no tema. Mantenha o desconto do lado do servidor e ele se aplica identicamente se o comprador passou pela página do carrinho ou uma finalização acelerada. Coloque a lógica de desconto em JavaScript do tema e você vai ter um total no carrinho e um diferente na finalização para seus compradores que convertem mais rápido.
PLACEHOLDER DE IMAGEM (Imagem 2): Onde o script Ajax funciona e não funciona
Visual sugerido: Uma ilustração de split 16:9. Painel esquerdo intitulado "Finalização padrão" mostra uma página de carrinho com um badge verde "gift script runs" e o brinde adicionado em R$0.00. Painel direito intitulado "Shop Pay / Apple Pay" mostra um botão de checkout rápido pulando a página do carrinho com um badge vermelho "theme JS never runs" e nenhum brinde. Uma faixa de legenda abaixo diz "Storefront scripts skip accelerated checkout. Keep pricing server-side." Cores de marca roxo e ouro, estilo vetor plano, sem fotografia.
O que você deve procurar em um app de brinde grátis?
Se DIY parece ser mais manutenção do que você quer, um app é a resposta usual. Nem todos os apps gift-with-purchase são construídos do mesmo jeito, porém. Aqui está o que realmente importa.
Auto-add e auto-remove, ambos
Adicionar o brinde é o básico. O teste real é se o app remove o brinde automaticamente quando o carrinho cai abaixo da meta. Sem remoção automática, você fica com carrinhos que mantêm um brinde grátis que não se qualificam mais, ou brindes que silenciosamente revertam para o preço total e surpreendem o cliente. Insista em ambas as direções.
Preço do lado do servidor para que carrinho e finalização concordem
Pergunte como o brinde fica precificado em R$0. Se a resposta é "nosso script define o preço na página do carrinho", você tem o problema de checkout acelerado incorporado. O padrão confiável precifica o brinde com uma Shopify Function para que o R$0 se mantenha na página do carrinho, página de finalização e Shop Pay. A adição pode acontecer no tema; o desconto não deveria.
Funciona com suas outras ofertas
Um gift-with-purchase raramente roda sozinho. Você provavelmente também tem uma venda, um nível de volume ou frete grátis ao vivo ao mesmo tempo. Verifique se a oferta de brinde funciona de forma limpa com seus outros descontos sob as regras de stacking reais do Shopify, em vez de bloqueá-los ou ser bloqueado. (Se o stacking de descontos é novo para você, nosso guia sobre como o stacking de descontos funciona no Shopify percorre as três classes de desconto e o que funciona com o que.)
Não reescreve seu catálogo
Alguns apps mudam preços de produtos para simular um desconto. Isso é frágil e deixa bagunça se você desinstalar. A abordagem limpa é um ajuste no momento da finalização que nunca toca seus preços de produto reais, então remover o app deixa seu catálogo exatamente como era.
O que você consegue executar de forma confiável hoje: a barra de progresso do spend goal
Aqui está a divisão honesta. A parte auto-add-e-remove de gift-with-purchase é genuinamente difícil, porque depende de manipulação de carrinho de loja virtual que as ferramentas do lado do servidor do Shopify não conseguem fazer. Mas a parte que traz a maioria do levantamento de conversão, mostrar aos compradores o quão perto estão da recompensa, é completamente resolvível hoje, e o Stackable envia isso agora.
Um spend goal é um desconto em nível de pedido que se paga uma vez que o carrinho cruza uma meta que você define: gaste R$75 e ganhe 10% de desconto, ou gaste R$100 e ganhe R$15 de desconto. O recurso spend goal do Stackable é construído e ao vivo, e vem com uma barra de progresso de carrinho ao vivo que lê o total real do carrinho e faz a contagem regressiva enquanto o comprador adiciona itens, sem recarga de página. "Faltam R$12 para sua recompensa" é o incentivo mais eficaz em uma promoção de meta, e está fazendo o mesmo trabalho psicológico se a recompensa é dinheiro de desconto ou um brinde grátis.
Porque o spend goal é computado por uma Shopify Function, a recompensa que um comprador vê na página do carrinho é exatamente o que a finalização cobra, incluindo por meio do Shop Pay. Não há uma diferença de carrinho-versus-finalização para perseguir. E um spend goal funciona como uma camada de classe de pedido, então funciona de forma limpa com um desconto de produto ou frete grátis no mesmo pedido.
Para ser claro sobre o que está e não está disponível agora: o recurso auto-add brinde grátis do Stackable, onde o produto brinde em si aparece e desaparece automaticamente em uma meta, está no roadmap e em breve, não algo que você consegue ativar hoje. A página do recurso brinde grátis descreve exatamente como vai funcionar quando sair. O que você consegue executar hoje é a recompensa spend goal com a barra de progresso ao vivo, que é a metade confiável e segura para finalização do padrão.
PLACEHOLDER DE IMAGEM (Imagem 3): Barra de progresso de carrinho contando regressivamente para a recompensa
Visual sugerido: Uma mockup de gaveta de carrinho de loja virtual 16:9. Uma barra de progresso perto do topo está cerca de 80% preenchida em roxo, com o rótulo "Faltam R$12 para sua recompensa." Abaixo, dois itens de linha do carrinho com preços. Um chip de recompensa de ouro no final da barra de progresso diz "10% de desconto." Estilo moderno de e-commerce limpo, tema neutro, marca roxo e ouro de destaque, sem fotografia. Referencie o docs/screenshot-manifest.md slot spend-goal-step-3 para capturar o widget real depois.
Exemplo resolvido: um brinde que auto-adiciona em R$75 e auto-remove abaixo
Vamos percorrer como um true gift-with-purchase se comporta, para você saber exatamente o que "feito corretamente" parece, e como a barra de progresso spend goal suporta isso hoje.
Uma marca de moda quer que cada pedido acima de R$75 inclua uma bolsa grátis, adicionada automaticamente. Um comprador constrói este carrinho:
- 1 suéter de malha em R$58
- 1 touca em R$22
- Subtotal: R$80
A loja executa um gift-with-purchase definido para disparar em um subtotal de carrinho de R$75, com a bolsa como o brinde.
As duas coisas que tornam isso sem esforço são as duas coisas que Buy X Get Y nativo não consegue fazer por conta própria: a bolsa se adiciona no momento em que o carrinho atinge R$75, e ela se remove no momento em que o carrinho cai abaixo de R$75. O cliente nunca procura pelo brinde e nunca é cobrado por um que não se qualifica mais.
Hoje, a metade da barra de progresso dessa experiência (o incentivo "R$17 de distância", computado do lado do servidor para que coincida com a finalização) é o que o spend goal do Stackable oferece, emparelhado com uma recompensa de desconto em dinheiro. A adição e remoção automática do produto brinde em si é a capacidade de brinde grátis que em breve estará disponível. Emoldurado honestamente: você consegue executar a contagem regressiva e a recompensa agora, e o produto de brinde com auto-adição está a caminho.
Execute recompensas de meta de forma confiável com Stackable
Se você quer que os mecanismos de recompensa de meta sejam confiáveis em vez de um script de tema que você cuida, isso é o que o Stackable é construído para, dentro das regras reais do Shopify.
- Spend goals com uma barra de progresso de carrinho ao vivo que faz a contagem regressiva para a recompensa enquanto o comprador adiciona itens, sem recarga de página.
- A recompensa é computada por uma Shopify Function, então a página do carrinho, página de finalização e Shop Pay todos mostram o mesmo total. Não há diferença de tema-versus-finalização.
- Spend goals funcionam como uma camada de classe de pedido, então funcionam de forma limpa com seus descontos de produto e frete grátis sob as regras de combinação do Shopify.
- Stackable nunca reescreve seus preços de produto. Recompensas são apenas ajustes de finalização, então desinstalar deixa seu catálogo intacto.
- O recurso auto-add brinde grátis está no roadmap e honestamente marcado como em breve, então você sempre sabe o que está ao vivo e o que é planejado.
Instale o Stackable grátis e mostre hoje mesmo aos seus clientes uma contagem regressiva até o brinde, em usestackable.com/pricing. 🎁
O resumo
- O Buy X Get Y nativo do Shopify não auto-adiciona o brinde. Pode precificar um brinde em R$0 e pode ser acionado por um valor de gasto, mas o cliente tem que adicionar o produto brinde ele mesmo.
- A etapa de adição manual é por onde a promoção vaza. A maioria dos compradores nunca nota ou se importa, então o incentivo que você está pagando fica não resgatado.
- Funções do lado do servidor não conseguem adicionar um produto ao carrinho. Funções de desconto apenas precificam linhas existentes, e Cart Transform só expande, mescla ou atualiza linhas que já estão lá.
- A rota DIY é um script de tema na API Ajax Cart que adiciona e remove o brinde, emparelhado com um desconto que o precifica. Funciona mas é acoplado ao tema, pesado em casos extremos e pulado por finalizações aceleradas.
- Em um app, insista em adição automática e remoção automática, preço do lado do servidor para que carrinho e finalização concordem, stacking limpo com suas outras ofertas, e nenhuma reescrita de preços de catálogo.
- O que você consegue executar de forma confiável hoje é uma recompensa spend goal com uma barra de progresso de carrinho ao vivo. O Stackable oferece isso agora, computado do lado do servidor para que coincida com a finalização, enquanto o recurso de brinde grátis com auto-adição é honestamente marcado como em breve.
Artigos relacionados
- Spend goals e descontos de pedido: recompense o pedido inteiro em uma meta de valor de carrinho, com uma barra de progresso ao vivo que coincida com a finalização. Construído e ao vivo hoje.
- Auto-adicione um brinde grátis com compra: como o recurso de brinde com adição e remoção automática vai funcionar. Em breve.
- Ofertas de frete grátis: adicione frete grátis como uma recompensa de meta de classe de frete que funciona com suas outras ofertas.
- Discount stacking, feito corretamente: como os três switches de combinação por classe decidem o que sua recompensa de meta pode ser combinada.
- Como o discount stacking funciona no Shopify: as três classes de desconto e por que o nativo aplica apenas o mais alto.
- Limite de 100 produtos do Shopify no Buy X Get Y: outro teto de Buy X Get Y nativo e como executar ofertas de catálogo grande contornando.
- Preço do Stackable: planos, o nível grátis, e o que cada um inclui.



