Como Construir um Marketplace Multi-Vendor com Laravel
Construir um marketplace é um problema de dados.
A maioria dos desenvolvedores pensa que a parte difícil é o dashboard do vendedor. Não é. O verdadeiro desafio é o multi-tenancy. Você deve garantir que cada consulta responda a uma pergunta: Quem é o dono destes dados?
Se você construir uma loja padrão e tentar adicionar vendedores depois, enfrentará uma reescrita. Você terá que passar um ID de vendedor por cada modelo, cada consulta e cada carrinho. Se você esquecer um único filtro, um vendedor verá os pedidos de outro vendedor. Isso é um vazamento de dados.
Você tem três escolhas:
- Construa você mesmo: Você escreve cada cláusula de escopo. É caro e arriscado.
- Use uma loja single-tenant com add-ons: Você acopla colunas de vendedor a um esquema que não foi projetado para elas. O isolamento permanece frágil.
- Use uma base multi-tenant: Use um pacote como o Aimeos que constrói o isolamento no modelo de dados desde o primeiro dia.
Aqui está como transformar uma loja única em um marketplace usando o Aimeos:
Instale a base Execute este comando para começar:
composer create-project aimeos/aimeos myshopAtive o modo multi-vendor Você não precisa reescrever seu banco de dados. Apenas altere uma linha no seu arquivo .env:
SHOP_MULTISHOP=true
Esta flag aplica o escopo automaticamente a cada rota, API e painel administrativo para um site específico. O sistema cuida da separação dos dados para você.
- Ative o onboarding de autoatendimento
Para escalar, permita que os vendedores se cadastrem sozinhos. Adicione isto ao seu .env:
SHOP_REGISTRATION=true
Novos vendedores têm acesso apenas ao seu próprio catálogo, pedidos e clientes. Eles não podem ver mais nada.
Por que isso funciona: O Aimeos organiza tudo em torno do "site". Cada produto, preço e pedido carrega um ID de site. A camada de dados filtra isso automaticamente. Você não precisa escrever "where site_id = ?" porque o sistema faz isso por você.
Esta abordagem resolve três grandes problemas:
- Segurança: O isolamento de dados é uma propriedade do banco de dados, não um pedaço de código que você pode esquecer.
- Complexidade: Os vendedores podem gerenciar produtos complexos, como assinaturas ou pacotes (bundles), sem que você precise alterar o esquema.
- Pagamentos: Você pode usar extensões como o Stripe para dividir pagamentos instantaneamente. A plataforma retira uma comissão e o vendedor recebe o restante.
Pare de construir encanamento. Comece a construir seu marketplace.
Fonte: https://dev.to/aimeos/how-to-implement-a-multi-vendor-e-commerce-marketplace-397a
