Multi-Store architectuur
Magento's multi-store functionaliteit laat je meerdere webshops beheren vanuit één installatie.
Hiërarchie begrijpen
Structuur
``
Global (Magento installatie)
└── Website
└── Store
└── Store View
`
Website
- Hoogste niveau onder Global
- Eigen klanten, orders, prijzen
- Kan eigen domein hebben
- Eigen payment/shipping configuratie
Store
- Binnen een Website
- Deelt klanten en orders met Website
- Eigen root categorie
- Eigen product selectie
Store View
- Laagste niveau
- Taalversie of variant
- Deelt catalogus met Store
- Eigen vertalingen en content
Scenario's
Scenario 1: Meertalige webshop
`
Website: Main
└── Store: Main Store
├── Store View: Nederlands
├── Store View: English
└── Store View: Deutsch
`
Eén catalogus, drie talen.
Scenario 2: Meerdere merken
`
Website: Merk A
└── Store: Merk A Store
└── Store View: NL
Website: Merk B
└── Store: Merk B Store
└── Store View: NL
`
Aparte catalogi, aparte klanten.
Scenario 3: B2B en B2C
`
Website: B2C
└── Store: Consumer Store
└── Store View: NL
Website: B2B
└── Store: Business Store
└── Store View: NL
`
Verschillende prijzen en functionaliteit.
Store View aanmaken
Navigatie
Stores > All Stores
Nieuwe Store View
Klik Create Store View
Store: Selecteer parent store
Name: "Duits" (admin naam)
Code: de (uniek, lowercase)
Status: Enabled
Sort Order: Volgorde in selector
Sla op
Na aanmaken
- Flush cache
- Herindex indien nodig
Nieuwe Store aanmaken
Stappen
Stores > All Stores
Klik Create Store
Website: Selecteer parent website
Name: "Outlet Store"
Code: outlet
Root Category: Selecteer of maak nieuwe
Sla op
Root Category
Elke Store heeft een root category. Dit bepaalt welke producten zichtbaar zijn in die store.
Nieuwe Website aanmaken
Stappen
Stores > All Stores
Klik Create Website
Name: "B2B Portal"
Code: b2b
Sort Order: Volgorde
Default Group: Store selectie
Is Default: Nee (tenzij dit de default moet zijn)
Sla op
Website configuratie
Per Website kun je apart configureren:
- Payment methods
- Shipping methods
- Tax configuratie
- Prijzen
URL configuratie
Eén domein, meerdere stores
`
domein.nl/ → Default Store View (NL)
domein.nl/de/ → Duitse Store View
domein.nl/en/ → Engelse Store View
`
Configuratie:
Stores > Configuration > General > Web
Per Store View:
- Base URL: https://domein.nl/de/
Meerdere domeinen
`
domein.nl → Website NL
domein.de → Website DE
domein.be → Website BE
`
Server configuratie:
DNS voor alle domeinen naar server
Nginx/Apache virtual hosts
Environment variables voor store code
Nginx voorbeeld
`nginx
server {
server_name domein.de;
set $MAGE_RUN_CODE "de";
set $MAGE_RUN_TYPE "website";
# ... rest config
}
`
Configuratie per scope
Scope niveaus
Default: Geldt voor alle
Website: Overschrijft default
Store View: Overschrijft website
Scope wijzigen
Open configuratie sectie
Linksboven: Scope dropdown
Selecteer Website of Store View
Uncheck "Use Website/Default" om te overschrijven
Sla op
Wat per scope configureren?
Per Website:
- Payment methods
- Shipping methods
- Tax settings
- Base currency
Per Store View:
- Locale (taal)
- Vertalingen
- CMS content
- Email templates
Content per Store View
CMS Pagina's
Open CMS pagina
Store View: Selecteer specifieke view
Of "All Store Views" voor globaal
CMS Blocks
Zelfde principe als pagina's.
Categorie content
Open categorie
Linksboven: Store View selector
Pas content aan per view
Uncheck "Use Default" om te overschrijven
Product content
Open product
Store View selector
Overschrijf namen, beschrijvingen per view
Prijzen per Website
Scope instellen
Stores > Configuration > Catalog > Catalog > Price
- Catalog Price Scope: Website
Prijzen instellen
Open product
Switch naar Website scope
Uncheck "Use Default"
Stel Website-specifieke prijs in
Klanten delen
Per Website
Klanten zijn standaard per Website. Klant registratie op Website A is niet geldig op Website B.
Globale klanten
Stores > Configuration > Customers > Customer Configuration > Account Sharing Options
- Share Customer Accounts: Global
Nu kunnen klanten op alle Websites inloggen met één account.
Best practices
Plan vooruit
Bepaal voor je begint:
- Hoeveel Websites nodig?
- Welke content gedeeld?
- Welke prijzen gedeeld?
Consistente codes
Gebruik logische, consistente codes:
- Website:
nl, de, be
Store: nl_main, de_main
View: nl_nl, de_de`
Test thoroughly
Test elke Store View:
- Navigatie
- Checkout
- Emails
- Prijzen en BTW
Performance
Meer Stores = meer cache varianten. Monitor performance.
Admin training
Zorg dat admins scope-switcher begrijpen. Fouten met scope kunnen grote impact hebben.