Tudo o que quer saber antes de instalar.
Uma análise detalhada de como o Presente Oferecido Acima de um Valor Mínimo de Carrinho: PrestaShop 8 e 9 funciona, porque o construímos assim e o raciocínio por trás das funcionalidades acima.
A alavanca mais mensurável sobre o valor médio do carrinho
Numa loja online, duas variáveis fazem a faturação: o número de encomendas e o valor médio do carrinho. O custo de aquisição de uma nova encomenda tornou-se muito elevado (publicidade, SEO, retargeting). Pelo contrário, fazer subir o carrinho de um visitante que já está prestes a comprar quase nada custa: é um upsell sobre tráfego já pago. O presente por valor mínimo é uma das mecânicas mais eficazes para isso: o visitante acrescenta voluntariamente alguns euros para não perder a oferta. Desde que a mecânica seja visível, quantificada e instantânea. É exatamente o que o dffreegift faz.
O bloco de progresso: a mecânica psicológica ao cêntimo
Na página do carrinho, o módulo mostra permanentemente uma faixa dedicada com a imagem do produto oferecido, o nome e uma mensagem que quantifica ao cêntimo a distância que falta: «Falta 12,40 € para receber o seu presente». Uma barra de progresso colorida passa gradualmente do cinzento-laranja ao verde à medida que o limiar se aproxima. Ao ser atingido, a faixa passa a verde com a mensagem «Presente acrescentado ao carrinho!» e uma animação de pulsação confirma visualmente o sucesso. Esta dramaturgia em tempo real é o que transforma uma simples promoção condicional numa alavanca de comportamento: o visitante vê a barra encher, calcula mentalmente o esforço a fazer e decide.
Por dentro: o mecanismo nativo do PrestaShop, feito como deve ser
A grande maioria dos módulos de presente do mercado manipula diretamente os preços dos produtos através do hook actionProductPriceCalculation, cria linhas de carrinho com preço forçado a zero ou injeta SpecificPrice temporários. Essa abordagem acaba por quebrar a compatibilidade com outros módulos de promoção, gera incoerências nas exportações contabilísticas e complica a depuração. O dffreegift faz o contrário: na instalação, cria uma CartRule clássica (visível em Catálogo → Descontos → Regras de carrinho) com um código DFFREEGIFT_xxxxxxxx e um gift_product inicializado a zero. A cada gravação do carrinho, o módulo sincroniza gift_product e gift_product_attribute com a sua configuração e liga ou desliga a regra ao carrinho através dos métodos nativos Cart::addCartRule e Cart::removeCartRule. O PrestaShop trata depois de tudo: inserção da linha do presente (gift = 1, price = 0), apresentação no carrinho, totais, conversão em encomenda e registo histórico. Sem chamadas diretas aos preços, sem injeções invasivas, daí a compatibilidade nativa com os seus outros mecanismos promocionais.
Três gatilhos de sincronização, mais uma autorreparação
A lógica principal corre no hook actionCartSave, chamado pelo PrestaShop a cada gravação do carrinho, ou seja, em cada adição, alteração ou remoção de produto, mas também no início de sessão do cliente (fusão de carrinhos) e em certas ações do back-office. Um flag estático antirrecursão impede que a alteração do carrinho pelo módulo volte a disparar o hook em ciclo. Em paralelo, o hook actionObjectCartRuleDeleteBefore vigia a eliminação manual da nossa CartRule no back-office: se um administrador apagar a regra por engano, a configuração é reposta e a próxima sincronização recria uma regra limpa. Por fim, a cada gravação da configuração no ecrã Configurar, o módulo volta a sincronizar gift_product e gift_product_attribute na regra existente: nunca precisa de mexer manualmente na regra na zona de Descontos.
Configuração: valor, imposto, portes, stock, grupos
O ecrã Módulos → DataFirefly Free Gift → Configurar reúne tudo. Um interruptor principal para ativar ou desativar o conjunto. O ID do produto oferecido (introduzido à mão, com o nome apresentado como ajuda depois de gravar). Uma lista pendente com as combinações do produto (o preenchimento automático faz-se depois de gravar primeiro o ID do produto, altura em que o módulo relê as combinações disponíveis). O valor de desbloqueio, com dois interruptores associados: cálculo com IVA (caso contrário, sem IVA) e incluir os portes (caso contrário, apenas produtos). Um interruptor Verificar o stock do presente, que suspende a adição automática se o produto estiver em rutura (respeitando a estratégia de rutura configurada globalmente no PrestaShop). Uma grelha de caixas para restringir a oferta a certos grupos de clientes: se nenhuma for assinalada, todos os clientes são elegíveis, incluindo visitantes não identificados. Dois interruptores de apresentação independentes para a mensagem de progresso e para a barra.
Casos de utilização típicos
Loja de cosmética com margem confortável: oferecer uma amostra de perfume acima de 40 € com IVA para empurrar os carrinhos de 28 a 35 € até aos 40 €. Moda e acessórios: bolsa oferecida a partir de 80 € com IVA, calculado sem portes, para fidelizar as primeiras compras. Equipamento B2B: porta-chaves ou pen USB acima de 200 € sem IVA, restrito ao grupo Profissionais. Marketplace alimentar: produto de prova gratuito a partir de 50 € com IVA e portes incluídos, para absorver o custo do envio gratuito e torná-lo rentável. Em todos estes casos a mecânica é a mesma: um limiar claro, um presente desejável, um progresso visível e uma adição automática. O dffreegift trata disso tudo sem intervenção manual.
Compatibilidade PrestaShop 8 e 9, testada e não apenas prometida
O módulo usa apenas APIs estáveis nas duas versões: Module, Hook, Configuration, CartRule, Cart, HelperForm e Smarty. Não usa os separadores de produto em Symfony do PrestaShop 9 (que introduziram incompatibilidades em muitos módulos de terceiros), não injeta nada no checkout de página única e não depende de classes descontinuadas no PS 9. O ecrã de administração usa HelperForm, componente estável e idêntico no PS 8 e no PS 9. No front-office, o hook displayShoppingCart existe e funciona nas duas versões, e o helper getCurrentLocale (usado para formatar preços) está disponível desde o PrestaShop 1.7.6. Instala o módulo em PS 8 hoje e migra para PS 9 quando quiser, sem qualquer intervenção da sua parte no módulo.
Multiloja, multilingue, código legível
O módulo funciona com a configuração multiloja do PrestaShop no contexto de loja predefinido. As mensagens do front-office são traduzíveis pelo mecanismo padrão do PrestaShop (Modules.Dffreegift.Shop para o front-office, Modules.Dffreegift.Admin para o back-office), com FR, EN, ES e DE já preenchidos. O código-fonte é entregue em claro (PHP não cifrado, conforme às convenções padrão do PrestaShop), com comentários em francês no início de cada método importante. A lógica principal cabe num ficheiro dffreegift.php com menos de 700 linhas, legível e auditável em menos de uma hora. Pode alterá-lo, estendê-lo com os seus próprios hooks ou fazer um fork para uma necessidade específica.
PerfeitoTraduzido automaticamente