Módulo gratuito 2h

A01 — O negócio do marketplace: de onde vem o dinheiro e quanto sobra

Entenda a divisão real de um pedido entre cliente, lojista, provedor de pagamento e plataforma, com simuladores interativos, fluxo do PIX, áudio, slides e PDF para baixar.

Lessons and interactive exercises are delivered in Brazilian Portuguese (pt-BR). Switch to Portuguese version.
Estúdio do Módulo 1 · Áudio, slides, mapa mental e prática

Material multimídia da lição

A engenharia por trás do MySuperStore

Episódio de abertura explicando como pedido, sub-pedido, comissão, frete e repasse se conectam em produção.

Áudio 18m42s

Arquitetura de Sistemas Reais

Deck visual de 15 páginas para acompanhar a visão geral do marketplace, separação de responsabilidades e decisões de projeto.

Slides visuais gerados para fixação. O texto pesquisável e os comandos completos permanecem logo abaixo na lição.

15 slides · PDF

Mapa mental: MySuperStore por dentro

Abrir em tela cheia
Mapa mental da arquitetura do MySuperStore mostrando front-end Next.js, back-end Django, apps principais, pagamentos via Efí PIX e cartão, Redis, Celery e infraestrutura.
Mapa mental conferido contra o estudo da arquitetura do MySuperStore.

1. Por que um marketplace não é um e-commerce comum

Em uma loja virtual comum, existe um comprador e um vendedor. Todo o dinheiro entra em uma única conta, o frete é calculado para um único CEP de origem e o estoque pertence a um único dono.

No MySuperStore (sistema Django em produção usado como estudo de caso deste curso), um único carrinho pode reunir produtos de lojas diferentes. Quando o cliente fecha a compra, o sistema precisa dividir um pagamento único em múltiplos sub-pedidos, calcular a comissão de cada loja, absorver ou repassar taxas do provedor de pagamento e manter cada centavo reconciliado.

Divisão de um pedido em sub-pedidos, repasse e comissão no MySuperStoreDiagrama mostrando que um Order possui um Payment e se divide em SubOrders por lojista, gerando um Payout para o lojista e uma CommissionEntry para a plataforma.Order (Pedido)1 pagamento únicoSubOrder Loja AEnvio + rastreio própriosSubOrder Loja BEnvio + rastreio própriosPayout: (subtotal − comissão) + freteCommissionEntry: subtotal × taxaTaxa do provedor (Efí)sai da comissão da plataforma
Estrutura real em backend/apps/orders/models.py e backend/apps/payments/models.py.

2. A conta honesta: comissão menos taxa do provedor

Um erro clássico ao projetar um marketplace é olhar apenas para a porcentagem de comissão (por exemplo, 12%) e esquecer que a taxa do meio de pagamento incide sobre o valor total pago pelo cliente, e não apenas sobre a comissão.

Usando os parâmetros de exemplo do código de referência do MySuperStore ( settings/base.py:340-351, que devem sempre ser confirmados no contrato com o provedor) para um pedido de R$ 100,00 em produtos, sem frete e sem cupom:

MétodoComissão (12%)Taxa do provedor (exemplo)Sobra da plataformaRepasse ao lojista
PIXR$ 12,000,99% = R$ 0,99R$ 11,01R$ 88,00
CartãoR$ 12,003,99% + R$ 0,39 = R$ 4,38R$ 7,62R$ 88,00

Observação: os valores acima são exemplos ilustrativos baseados em configurações de referência verificadas no código em 12/11/2026. Não representam garantia de margem ou resultado financeiro.

Comparação visual da sobra da plataforma em R$ 100,00: PIX versus CartãoBarras proporcionais mostrando que em R$ 100,00, o lojista recebe R$ 88,00 nos dois casos, mas a plataforma fica com R$ 11,01 no PIX contra R$ 7,62 no cartão.PIX (R$ 100,00)Lojista: R$ 88,00Comissão R$ 12,00 − Taxa R$ 0,99 = Sobra R$ 11,01Cartão (R$ 100,00)Lojista: R$ 88,00Comissão R$ 12,00 − Taxa R$ 4,38 = Sobra R$ 7,62

3. Regras que evitam prejuízo silencioso no código

  • Dinheiro em centavos inteiros ou Decimal: nunca use float. Arredonde sempre com critério explícito (ROUND_HALF_UP) e valide a conservação: valor_do_lojista + comissão == total_pago_pelo_cliente.
  • O servidor recalcula tudo: qualquer subtotal, cupom ou frete enviado pelo navegador é tratado apenas como entrada; o backend recalcula a partir do banco (orders/serializers.py:224-231).
  • Comissão não incide sobre o frete: no MySuperStore, o frete vai integralmente para o lojista. Se houver frete grátis acima de um mínimo (ex.: R$ 299,00 no exemplo), o frete cobrado do cliente zera.
  • Idempotência e baixa condicional: webhooks chegam repetidos e dois compradores clicam juntos na última peça. Sem trava de linha e atualização condicional, o sistema vende o que não tem e repassa duas vezes.
Prática 1 · Simulador por pedido

Quanto sobra para a plataforma em cada pedido

Suposição explícita: a taxa do provedor incide sobre o total pago pelo cliente (produtos com desconto + frete cobrado) e é absorvida pela plataforma (sai da comissão). A comissão da plataforma incide apenas sobre os produtos (não incide sobre o frete).

Método de pagamento
Subtotal efetivo (produtos − cupom)R$ 100,00
Frete cobrado R$ 0,00
Total pago pelo clienteR$ 100,00

Repasse ao lojistaR$ 88,00
Comissão bruta da plataformaR$ 12,00
Taxa do provedor (absorvida)− R$ 0,99
Sobra líquida da plataformaR$ 11,01

Conservação: R$ 88,00 + R$ 12,00 = R$ 100,00 ✓

Aviso: os valores padrão (12% comissão; PIX 0,99%; cartão 3,99% + R$ 0,39; frete grátis a partir de R$ 299,00) são exemplos ilustrativos extraídos das configurações de referência do código. Confirme as tarifas no contrato do seu provedor. Esta simulação não é garantia de resultado financeiro.

Prática 2 · Ponto de equilíbrio

Quantos pedidos/mês pagam o custo fixo da operação

Pagamento predominante
Sobra média por pedidoR$ 11,01
Sobra mensal bruta (pedidos × sobra)R$ 2.202,00
Saldo após custos fixosR$ 202,00
Ponto de equilíbrio182 pedidos/mês
Prática 3 · Fluxo do PIX clicável

Do clique no checkout ao repasse ao lojista no MySuperStore

Selecione cada etapa abaixo para inspecionar o ator envolvido, a referência no código real e o motivo de engenharia por trás da decisão.

Cliente → Backendapps/orders/serializers.py:224-328

01. Criação do pedido e reserva de estoque

O cliente envia o carrinho. O servidor ignora qualquer preço vindo do navegador, recalcula subtotal, cupom, frete e comissão em Decimal, e faz baixa condicional de estoque dentro de uma transação.

UPDATE catalog_productvariant
SET stock = stock - %s
WHERE id = %s AND stock >= %s

Por que importa: Impede que duas pessoas comprem a última unidade ao mesmo tempo. Se o pedido não for pago em 60 min, uma tarefa agendada devolve o estoque.

Prática 4 · Checklist legal e fiscal
0/6 conferidos

Este checklist é um guia prático de preparação operacional. Itens jurídicos e tributários exigem validação com contador e advogado antes de operar.

Avaliação · Quiz do Módulo 1

Teste seu entendimento (9 perguntas)

0/9 respondidas
1. Em um pedido de R$ 100,00 sem frete e sem cupom, com comissão de 12% e taxa PIX de 0,99%, qual é a sobra líquida da plataforma?
2. No mesmo pedido de R$ 100,00, quando o cliente paga no cartão (taxa de exemplo: 3,99% + R$ 0,39), quanto sobra para a plataforma?
3. Sobre qual base incide a comissão da plataforma no modelo do MySuperStore?
4. Por que o código do MySuperStore armazena dinheiro em Decimal (ou centavos inteiros) em vez de float?
5. Qual propriedade garante que nenhum centavo foi criado ou perdido na divisão de um pedido?
6. Por que o MySuperStore divide um Order em um ou mais SubOrders?
7. Por que o servidor deve recalcular subtotal, frete e total no backend em vez de aceitar o total enviado pelo navegador?
8. O que acontece quando um pedido de R$ 300,00 atinge a faixa de frete grátis (R$ 299,00) com frete informado de R$ 25,00?
9. Qual afirmação está correta sobre a natureza jurídica deste curso e o certificado?