Mais autonomia para seus representantes fecharem vendas
Defina até onde eles podem negociar preço — e deixe que fechem o pedido na hora, sem depender de aprovação.
Resumo executivo — como funciona em 4 passos
O que mudou
Agora você pode criar Regras de Preço específicas para os representantes da sua loja, definindo até quanto cada um pode aumentar ou dar desconto no preço de um produto, direto no carrinho, ao vender em nome de um cliente.
O ajuste não muda o preço de catálogo — ele vale só para aquele pedido específico, mantendo sua vitrine e seus preços padrão intactos.
Por que isso importa: Seus representantes ganham autonomia de verdade para negociar e fechar vendas na hora, sem precisar pedir aprovação ou esperar retorno para dar aquele desconto pontual (ou cobrar um pouco mais em uma condição especial). Isso significa negociações mais rápidas, menos venda perdida por demora — e, ao mesmo tempo, total controle pra você: cada regra define exatamente o quanto cada representante pode negociar, com tudo registrado e auditável. |
Onde configurar
Painel Administrativo > Menu Representantes > Regras de Preço.
Como criar uma regra de preço
- Acesse Representantes > Regras de Preço e clique em "+ Nova Regra".
- Dê um nome e um código de referência para a regra, e marque a opção "Habilitada".
- Defina os limites máximos de acréscimo e de desconto que os representantes vinculados a essa regra poderão aplicar — em percentual (%) ou valor fixo (R$).
- Escolha qual preço serve de base para o cálculo: o preço padrão do produto, ou o preço já com promoção (se não houver promoção válida no momento, o sistema usa automaticamente o preço padrão).
- Nas abas Categorias, Propriedades e Produtos, defina o escopo de produtos onde a regra vale — ou deixe em branco para aplicar a todos os produtos.
- Na aba Representantes, selecione quem pode usar essa regra. Se nenhum representante for selecionado, a regra vale para todos; se um ou mais forem selecionados, ela passa a valer só para eles.
- Salve a regra.
Dica extra — ajuste mínimo obrigatório: Além do limite máximo, também é possível exigir um ajuste mínimo obrigatório na regra (acréscimo ou decréscimo) — por exemplo, forçar que o representante aplique pelo menos 5% de desconto em determinado produto antes de seguir com o pedido. É uma boa forma de garantir a queima de estoque de itens específicos, por exemplo. |
Como fica no carrinho, para o representante
Quando o representante está comprando em nome de um cliente e tem uma regra de preço ativa vinculada a ele, o campo "Preço ajustado" aparece ao lado de cada item elegível no carrinho.
Campo "Preço ajustado" no carrinho: o representante digita o novo valor e o total é recalculado na hora.
Se o representante digitar um valor fora do limite definido na regra, o sistema avisa mostrando o "Preço limite" permitido e destaca o campo, impedindo seguir com um valor fora do combinado.
Auditoria e rastreabilidade
Todo ajuste feito por um representante fica registrado: valor original, valor ajustado, regra aplicada, quem fez e quando, através do ícone "Log de auditoria" no menu Representante > Regra de Preço
No detalhe do próprio pedido, dá para ver o valor de acréscimo/desconto aplicado e qual regra foi usada — sem misturar com promoções da loja.
Melhores práticas
Ao montar as regras
- Comece com limites mais conservadores (por exemplo, até 10-15%) e ajuste aos poucos, conforme a confiança no time.
- Você pode criar regras diferentes por representante, por categoria de produto ou por linha de produtos — não precisa ser uma regra única para todo mundo.
Para o time comercial
- Oriente os representantes a explicarem ao cliente que a condição especial foi negociada dentro de uma faixa autorizada, reforçando a credibilidade da proposta.
Perguntas frequentes
Isso muda o preço da loja para todo mundo?
Não. O ajuste vale só para aquele pedido específico feito pelo representante; o preço de catálogo da loja não muda.
Um representante pode ter mais de uma regra vinculada?
Sim. Um representante pode estar em mais de uma regra, e uma regra pode valer para vários representantes ao mesmo tempo. A regra a ser aplicada vai depender das regras adicionadas (produto, categoria etc) e também a prioridade (a regra começa a ser aplicada do maior para a menor propriedade)
Dá para restringir a regra a só alguns produtos ou categorias?
Sim, pelas abas Categorias, Propriedades e Produtos na tela da regra. Se nada for selecionado nessas abas, a regra vale para todos os produtos.
O representante pode usar cupom de desconto junto com o ajuste de preço?
Depende da base de cálculo escolhida na regra: se ela considerar só o preço padrão, cupons de desconto ficam bloqueados nesse pedido (o sistema avisa). Cupom de frete grátis pode ser usado sempre, independente da configuração.
É possível saber quem fez cada ajuste?
Sim. Tudo fica registrado no log de auditoria da regra, no detalhe do pedido e no relatório de ajustes de preço dos representantes.
Dá para obrigar um desconto ou acréscimo mínimo, e não só um máximo?
Sim. Você pode configurar um ajuste mínimo obrigatório na regra, que impede o representante de avançar com o pedido sem aplicar pelo menos aquele valor.
Precisa de ajuda? Fale com a gente pelo suporte@flexy.com.br. Este desenvolvimento foi entregue em junho de 2026. Caso você tenha customizado o front-end antes desta data, não recebe automaticamente a melhoria no front-end customizado. Abaixo está algumas informações técnicas para aplicar no front-end e também sobre a informação exibida dentro da API de pedidos.
Caso precise de apoio para aplicar essas informações no layout customizado, entre em contato conosco que ajudaremos neste processo. |
INFORMAÇÕES TÉCNICAS
Conteúdo para quem vai consumir a API de pedidos ou mantém um front-end customizado da loja.
O que mudou na API de Pedidos
O endpoint de listagem de pedidos passa a retornar informações de regra de preço em cada item afetado por um ajuste de representante:
GET /platform/api/orders
Novo formato do item do pedido quando há regra de preço aplicada (campos confirmados pela equipe Flexy):
{
"price": 1000.05,
"originalPrice": 1176.53,
"priceRule": {
"id": 12,
"name": "Regra VIP",
"type": "PERCENT",
"valueApplied": 15.00,
"originalPrice": 1176.53,
"price": 1000.05
}
}
Trecho da documentação oficial da API, com os campos novos destacados: price, originalPrice e o objeto priceRule.
- price / originalPrice (nível do item): valor final do item e valor original, antes da regra.
- priceRule.type: tipo de ajuste da regra — "PERCENT" (percentual) ou "FIXED" (valor fixo), conforme configurado na regra.
- priceRule.originalPrice / priceRule.price: mesmos valores de antes/depois, repetidos dentro do objeto da regra para facilitar quem consome só esse bloco.
- priceRule: retornado somente quando houver ajuste aplicado por uma regra; quando não houver, o campo não é retornado (ou vem nulo).
- Não existe um endpoint para aplicar a regra manualmente — o ajuste acontece automaticamente durante o processamento do pedido, conforme as regras ativas do representante.
A API de representantes também passou a retornar as regras de preço vinculadas a cada um, e aceita associá-las na criação e atualização do representante:
Além disso, existe agora uma API dedicada para gerenciar as próprias Regras de Preço de Representante (criar, listar, detalhar, atualizar e excluir), útil para quem quer administrar as regras via integração em vez de usar o painel:
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /platform/api/agent-price-rules/ | Lista as regras cadastradas, com filtros por name, referenceCode, enabled, limit e offset. |
| POST | /platform/api/agent-price-rules/ | Cadastra uma nova regra. name e referenceCode são obrigatórios. |
| GET | /platform/api/agent-price-rules/{id} | Detalha uma regra específica pelo ID. |
| PUT | /platform/api/agent-price-rules/{id} | Atualiza uma regra existente. name e referenceCode continuam obrigatórios. |
| DELETE | /platform/api/agent-price-rules/{id} | Exclusão lógica (soft delete): a regra é desativada e para de ser aplicada. |
Principais campos do corpo da regra:
- enabled: ativa/inativa a regra (padrão: true).
- priority: prioridade de aplicação — quanto maior, mais prioridade (padrão: 0).
- maxSurchargeType / maxSurchargeValue: tipo ("percent" ou "fixed") e valor do limite máximo de acréscimo.
- maxDiscountType / maxDiscountValue: tipo ("percent" ou "fixed") e valor do limite máximo de desconto.
- priceCalculationBase: base do cálculo — "standard" (preço padrão) ou "promotional" (preço promocional).
- agents / categories / properties / products: arrays de IDs que definem o escopo da regra.
Exemplo de cadastro de uma regra:
POST /platform/api/agent-price-rules/?token=******
Host: https://flexy.api.flexy.com.br/
Content-Type: application/json
{
"name": "Regra VIP",
"referenceCode": "regra-vip",
"enabled": true,
"priority": 10,
"maxSurchargeType": "percent",
"maxSurchargeValue": "5.00",
"maxDiscountType": "percent",
"maxDiscountValue": "15.00",
"priceCalculationBase": "standard",
"agents": [3, 4],
"categories": [7],
"properties": [2],
"products": [101]
}
- Na atualização (PUT), os arrays agents/categories/properties/products substituem completamente os vínculos anteriores — envie a lista final desejada, não só o que quer adicionar.
- A exclusão (DELETE) é lógica: a regra some da aplicação, mas fica preservada para consulta e histórico. Excluir uma regra inexistente (ou já excluída) retorna 404.
Documentação completa, com todos os parâmetros e exemplos de cada método, disponível em flexy.api.flexy.com.br/platform/api/docs, na seção "Representantes: Regras de Preço".
Se você tem um front-end customizado antes da data de junho de 2026:
Atenção: O campo "Preço ajustado" no carrinho foi implementado no tema/layout padrão da Flexy. Lojas com front-end customizado (tema próprio) não recebem essa tela automaticamente — é preciso implementar o campo no seu próprio template de carrinho. |
Se você usa um front customizado e quer disponibilizar essa funcionalidade para os seus representantes, fale com a gente pelo suporte@flexy.com.br — a equipe Flexy ajuda tanto a implementar quanto a dar suporte contínuo para manter essa tela atualizada junto com as próximas evoluções da plataforma.
Para dar um ponto de partida ao time técnico, o exemplo abaixo é uma referência aproximada do que precisa entrar no template de listagem de itens do carrinho (o arquivo incluído como Include/Cart:cart-list.html.twig no tema padrão), seguindo o mesmo padrão já usado no restante do carrinho (inputs com data-attributes e atualização via requisição assíncrona):
{# Dentro do loop de itens do carrinho, ao lado do preço unitário #}
{% if item.representativeCanAdjustPrice %}
<div class="cart-price-adjust">
<span>R$</span>
<input
type="text"
class="flexy-cart-price-adjust"
data-cart-item-id="{{ item.id }}"
data-original-price="{{ item.originalPrice }}"
data-min-price="{{ item.priceRuleMinPrice }}"
data-max-price="{{ item.priceRuleMaxPrice }}"
value="{{ item.adjustedPrice|default(item.originalPrice) }}"
>
</div>
<small class="cart-price-limit-hint" style="display:none;">
Preço limite: R$ <span class="limit-value"></span>
</small>
{% endif %}
// Validação e envio do novo preço (mesmo padrão do updateCart já usado no carrinho)
$('.flexy-cart-price-adjust').on('blur', function () {
var $this = $(this);
var newPrice = parseFloat($this.val().replace(',', '.'));
var min = parseFloat($this.data('min-price'));
var max = parseFloat($this.data('max-price'));
if (newPrice < min || newPrice > max) {
$this.addClass('is-invalid');
$this.siblings('.cart-price-limit-hint').show()
.find('.limit-value').text(max.toFixed(2));
return;
}
$.ajax({
url: '{{ path("flexy_ftwo_store_cart_update_price") }}',
type: 'POST',
data: { id: $this.data('cart-item-id'), price: newPrice },
success: function () { window.location.reload(); },
error: function (data) { $this.addClass('is-invalid'); }
});
});
Esse código é apenas ilustrativo — o nome exato dos campos (item.representativeCanAdjustPrice, item.priceRuleMinPrice, etc.) e da rota de atualização (flexy_ftwo_store_cart_update_price) precisa ser confirmado com o time Flexy antes de implementar, já que pode variar conforme a versão da API e do backend do carrinho.
Comentários
0 comentário
Por favor, entre para comentar.