Hoe je een multi-vendor marktplaats bouwt met Laravel

Het bouwen van een marktplaats is een dataprobleem.

De meeste ontwikkelaars denken dat het lastige deel het dashboard voor verkopers is. Dat is niet zo. De echte uitdaging is multi-tenancy. Je moet ervoor zorgen dat elke query één vraag beantwoordt: Wie is de eigenaar van deze gegevens?

Als je een standaard webshop bouwt en later pas verkopers wilt toevoegen, sta je voor een volledige herschrijving. Je moet een vendor ID door elk model, elke query en elke winkelwagen verweven. Als je één filter vergeet, ziet de ene verkoper de bestellingen van de andere. Dat is een datalek.

Je hebt drie keuzes:

  • Zelf bouwen: Je schrijft elke scoping-clause zelf. Dit is duur en risicovol.
  • Gebruik een single-tenant shop met add-ons: Je plakt vendor-kolommen op een schema dat daar niet voor ontworpen is. De isolatie blijft kwetsbaar.
  • Gebruik een multi-tenant fundament: Gebruik een pakket zoals Aimeos dat vanaf dag één isolatie in het datamodel inbouwt.

Zo verander je een enkele shop in een marktplaats met behulp van Aimeos:

  1. Installeer het fundament Voer dit commando uit om te beginnen: composer create-project aimeos/aimeos myshop

  2. Schakel de multi-vendor modus in Je hoeft je database niet te herschrijven. Verander alleen één regel in je .env-bestand: SHOP_MULTISHOP=true

Deze flag zorgt er automatisch voor dat elke route, API en elk adminpaneel wordt beperkt tot een specifieke site. Het systeem regelt de dataseparatie voor je.

  1. Schakel self-service onboarding in Om te schalen kun je verkopers zichzelf laten registreren. Voeg dit toe aan je .env: SHOP_REGISTRATION=true

Nieuwe verkopers krijgen alleen toegang tot hun eigen catalogus, bestellingen en klanten. Ze kunnen niets anders zien.

Waarom dit werkt: Aimeos organiseert alles rondom de "site". Elk product, elke prijs en elke bestelling bevat een site ID. De datalaag filtert dit automatisch. Je hoeft niet zelf "where site_id = ?" te schrijven, omdat het systeem dit voor je doet.

Deze aanpak lost drie grote problemen op:

  • Beveiliging: Dataisolatie is een eigenschap van de database, niet een stukje code dat je zou kunnen vergeten.
  • Complexiteit: Verkopers kunnen complexe producten zoals abonnementen of bundels beheren zonder dat jij het schema hoeft aan te passen.
  • Betalingen: Je kunt extensies zoals Stripe gebruiken om betalingen direct te splitsen. Het platform houdt een commissie in en de verkoper krijgt de rest.

Stop met het bouwen van de infrastructuur. Begin met het bouwen van je marktplaats.

Bron: https://dev.to/aimeos/how-to-implement-a-multi-vendor-e-commerce-marketplace-397a