Gebruikersverhaal 1: Als klant wil ik meerdere producten kunnen bestellen, zodat ik items uit de winkel kan kopen.
- Ik kan meerdere producten aan mijn bestelling toevoegen
- Ik kan hoeveelheden voor elk product specificeren
- Ik kan mijn bestelling bekijken voordat ik bevestig
- Ik ontvang een bestelbevestiging met details
Gebruikersverhaal 2: Als winkelbeheerder wil ik klantenbestellingen kunnen beheren, zodat ik deze efficiënt kan verwerken.
- Ik kan een lijst van alle bestellingen bekijken
- Ik kan de status van een bestelling bijwerken (in behandeling, in verwerking, verzonden, afgeleverd, geannuleerd)
- Ik kan bestelgegevens bekijken, inclusief klantinformatie en bestelde producten
- Ik kan facturen genereren voor bestellingen
Gebruikersverhaal 1: Als winkeleigenaar wil ik verschillende gebruikersrollen met specifieke rechten kunnen maken, zodat ik verantwoordelijkheden veilig kan delegeren.
- Ik kan rollen aanmaken (beheerder, manager, medewerker, klant)
- Ik kan specifieke rechten toewijzen aan elke rol
- Ik kan rollen bewerken en verwijderen
- Ik kan een lijst van gebruikers met hun toegewezen rollen bekijken
Gebruikersverhaal 2: Als winkelbeheerder wil ik rollen aan gebruikers kunnen toewijzen, zodat ze passende toegang tot het systeem hebben.
- Ik kan één of meer rollen toewijzen aan elke gebruiker
- Ik kan rollen van gebruikers intrekken
- Ik kan zien welke rechten een gebruiker heeft op basis van hun rollen
- Ik kan de toegang van een gebruiker tijdelijk opschorten zonder hun account te verwijderen
Gebruikersverhaal 1: Als klant wil ik beoordelingen en ratings achterlaten voor producten die ik heb gekocht, zodat ik mijn ervaring met anderen kan delen.
- Ik kan een product beoordelen op een schaal (bijv. 1-5 sterren)
- Ik kan een gedetailleerde beoordeling schrijven
- Ik kan mijn eigen beoordelingen bewerken of verwijderen
- Ik kan foto's uploaden bij mijn beoordeling
Gebruikersverhaal 2: Als winkelbeheerder wil ik productbeoordelingen kunnen modereren, zodat ik kwaliteitsinhoud kan handhaven.
- Ik kan beoordelingen goedkeuren of afwijzen voordat ze worden gepubliceerd
- Ik kan ongepaste inhoud bewerken of verwijderen
- Ik kan reageren op klantbeoordelingen
- Ik kan nuttige beoordelingen prominent weergeven
Gebruikersverhaal 1: Als voorraadmanager wil ik de voorraadniveaus van producten bijhouden, zodat ik een passende voorraad kan handhaven.
- Ik kan de huidige voorraadniveaus voor alle producten bekijken
- Ik kan voorraadhoeveelheden handmatig bijwerken
- Ik kan drempels voor lage voorraad instellen voor waarschuwingen
- Ik kan een geschiedenis van voorraadwijzigingen zien
Gebruikersverhaal 2: Als winkelbeheerder wil ik dat het systeem de voorraad automatisch bijwerkt wanneer bestellingen worden geplaatst, zodat voorraadniveaus nauwkeurig blijven.
- Voorraadniveaus verminderen automatisch wanneer bestellingen worden geplaatst
- Ik ontvang meldingen wanneer producten de drempel voor lage voorraad bereiken
- Ik kan voorraadrapportages genereren
- Ik kan producten beheren die niet op voorraad zijn (verbergen of weergeven als "niet op voorraad")
Gebruikersverhaal 1: Als marketingmanager wil ik kortingsbonnen kunnen maken, zodat ik promotiecampagnes kan uitvoeren.
- Ik kan kortingsbonnen maken met specifieke kortingsbedragen of percentages
- Ik kan begin- en einddatums instellen voor de geldigheid van de bon
- Ik kan het gebruik van bonnen beperken (eenmalig per klant, minimale bestelwaarde)
- Ik kan het gebruik van kortingsbonnen en de effectiviteit ervan bijhouden
Gebruikersverhaal 2: Als klant wil ik kortingsbonnen kunnen toepassen op mijn bestelling, zodat ik geld kan besparen op mijn aankopen.
- Ik kan een boncode invoeren tijdens het afrekenen
- Ik kan de toegepaste korting zien op mijn besteltotaal
- Ik ontvang een foutmelding als de bon ongeldig of verlopen is
- Ik kan een bon verwijderen als ik van gedachten verander
Gebruikersverhaal 1: Als klant wil ik producten aan mijn winkelwagen kunnen toevoegen, zodat ik meerdere items tegelijk kan kopen.
- Ik kan producten aan mijn winkelwagen toevoegen vanuit productlijsten of detailpagina's
- Ik kan hoeveelheden van items in mijn winkelwagen aanpassen
- Ik kan items uit mijn winkelwagen verwijderen
- Mijn winkelwagen blijft behouden, zelfs als ik de site verlaat en later terugkeer
Gebruikersverhaal 2: Als klant wil ik een overzicht van mijn winkelwagen kunnen zien, zodat ik mijn selecties kan bekijken voordat ik afrek.
- Ik kan de totale kosten van alle items in mijn winkelwagen zien
- Ik kan individuele productdetails zien (prijs, hoeveelheid, subtotaal)
- Ik kan geschatte verzendkosten zien
- Ik kan direct naar de kassa gaan vanaf mijn winkelwagen
Gebruikersverhaal 1: Als winkelbeheerder wil ik productvarianten kunnen maken, zodat ik verschillende opties voor hetzelfde product kan aanbieden.
- Ik kan verschillende attributen definiëren (maat, kleur, materiaal)
- Ik kan combinaties van deze attributen maken als varianten
- Ik kan verschillende prijzen en voorraadniveaus instellen voor elke variant
- Ik kan afbeeldingen uploaden die specifiek zijn voor elke variant
Gebruikersverhaal 2: Als klant wil ik uit beschikbare productvarianten kunnen kiezen, zodat ik precies het item kan kopen dat ik wil.
- Ik kan alle beschikbare varianten voor een product bekijken
- Ik kan combinaties van attributen selecteren (bijv. maat en kleur)
- Ik kan prijzen en beschikbaarheid zien die specifiek zijn voor mijn geselecteerde variant
- Ik kan gemakkelijk tussen varianten schakelen om ze te vergelijken
Gebruikersverhaal 1: Als klant wil ik meerdere adressen in mijn account kunnen opslaan, zodat ik ze niet opnieuw hoef in te voeren voor toekomstige aankopen.
- Ik kan adressen toevoegen, bewerken en verwijderen
- Ik kan standaard verzend- en factuuradres aanwijzen
- Ik kan elk adres een bijnaam geven voor eenvoudige identificatie
- Ik kan kiezen uit mijn opgeslagen adressen tijdens het afrekenen
Gebruikersverhaal 2: Als klant wil ik verschillende verzend- en factuuradressen kunnen gebruiken, zodat ik cadeaus rechtstreeks naar ontvangers kan sturen.
- Ik kan verschillende adressen selecteren voor verzending en facturering
- Ik kan een nieuw adres toevoegen tijdens het afrekenproces
- Ik kan ervoor kiezen om nieuwe adressen op te slaan in mijn adresboek
- Ik kan cadeauboodschappen toevoegen wanneer ik naar een ander adres dan mijn eigen verzend
Gebruikersverhaal 1: Als klant wil ik voor mijn bestelling kunnen betalen met verschillende betaalmethoden, zodat ik de meest handige optie voor mij kan kiezen.
- Ik kan betalen met credit/debit kaarten
- Ik kan alternatieve betaalmethoden gebruiken (PayPal, etc.)
- Ik kan duidelijke bevestiging van betaling zien
- Mijn betalingsgegevens worden veilig verwerkt
Gebruikersverhaal 2: Als winkelbeheerder wil ik betalingsinstellingen kunnen beheren, zodat ik passende opties aan klanten kan aanbieden.
- Ik kan verschillende betaalmethoden in-/uitschakelen
- Ik kan de geschiedenis van betalingstransacties bekijken
- Ik kan indien nodig terugbetalingen verwerken
- Ik kan instellingen voor betalingsgateways configureren
Gebruikersverhaal 1: Als klant wil ik producten kunnen opslaan in mijn verlanglijst, zodat ik ze kan onthouden voor toekomstige aankoop.
- Ik kan producten aan mijn verlanglijst toevoegen vanaf productpagina's
- Ik kan alle items in mijn verlanglijst bekijken
- Ik kan items uit mijn verlanglijst verwijderen
- Ik kan items van mijn verlanglijst direct naar mijn winkelwagen verplaatsen
Gebruikersverhaal 2: Als klant wil ik mijn verlanglijst met anderen kunnen delen, zodat ze kunnen zien waarin ik geïnteresseerd ben.
- Ik kan een deelbare link naar mijn verlanglijst genereren
- Ik kan mijn verlanglijst naar iemand e-mailen
- Ik kan mijn verlanglijst openbaar of privé instellen
- Ik kan meerdere benoemde verlanglijsten maken voor verschillende doeleinden
Gebruikersverhaal 1: Als winkelbeheerder wil ik meerdere afbeeldingen voor elk product kunnen uploaden, zodat klanten producten vanuit verschillende hoeken kunnen zien.
- Ik kan meerdere afbeeldingen voor elk product uploaden
- Ik kan de volgorde van afbeeldingen rangschikken
- Ik kan een primaire afbeelding instellen voor productlijsten
- Ik kan afbeeldingen verwijderen wanneer nodig
Gebruikersverhaal 2: Als klant wil ik productafbeeldingen in een galerij kunnen bekijken, zodat ik het product in detail kan onderzoeken.
- Ik kan miniaturen van alle productafbeeldingen zien
- Ik kan op miniaturen klikken om grotere afbeeldingen te bekijken
- Ik kan inzoomen op afbeeldingen om details te zien
- Ik kan door afbeeldingen navigeren in een diavoorstellingsformaat
Gebruikersverhaal 1: Als winkelbeheerder wil ik producten in hiërarchische categorieën kunnen organiseren, zodat ze logisch gestructureerd zijn.
- Ik kan hoofdcategorieën en subcategorieën maken
- Ik kan categorieën binnen de hiërarchie verplaatsen
- Ik kan producten aan meerdere categorieën toewijzen
- Ik kan categorieën bewerken en verwijderen
Gebruikersverhaal 2: Als klant wil ik producten per categorie kunnen bekijken, zodat ik gemakkelijk kan vinden wat ik zoek.
- Ik kan een navigatiemenu zien met categorieën en subcategorieën
- Ik kan producten binnen een categorie filteren
- Ik kan kruimelpadnavigatie zien die mijn locatie in de categoriehiërarchie toont
- Ik kan het aantal producten in elke categorie zien
Gebruikersverhaal 1: Als klant wil ik naar producten kunnen zoeken, zodat ik snel kan vinden wat ik zoek.
- Ik kan zoeken op productnaam, beschrijving of SKU
- Ik krijg relevante zoekresultaten met gemarkeerde overeenkomende termen
- Ik kan voorgestelde zoektermen zien terwijl ik typ
- Ik ontvang nuttige suggesties als mijn zoekopdracht geen resultaten oplevert
Gebruikersverhaal 2: Als klant wil ik zoekresultaten kunnen filteren, zodat ik kan verfijnen naar producten die aan mijn specifieke criteria voldoen.
- Ik kan producten filteren op prijsbereik
- Ik kan filteren op categorie, merk of andere attributen
- Ik kan resultaten sorteren op relevantie, prijs, nieuwheid of populariteit
- Ik kan meerdere filters combineren om mijn zoekopdracht te verfijnen
Gebruikersverhaal 1: Als klant wil ik meldingen over mijn bestellingen ontvangen, zodat ik hun huidige status ken.
- Ik ontvang e-mailmeldingen wanneer mijn bestelstatus verandert
- Ik kan meldingen zien binnen mijn accountdashboard
- Ik kan meldingen als gelezen markeren
- Ik kan kiezen welke soorten meldingen ik ontvang
Gebruikersverhaal 2: Als winkelbeheerder wil ik meldingen naar gebruikers kunnen sturen, zodat ik belangrijke informatie kan communiceren.
- Ik kan individuele meldingen naar specifieke gebruikers sturen
- Ik kan bulkmeldingen naar groepen gebruikers sturen
- Ik kan meldingssjablonen maken voor veelvoorkomende berichten
- Ik kan zien of gebruikers hun meldingen hebben gelezen
Gebruikersverhaal 1: Als winkelbeheerder wil ik tags en attributen aan producten kunnen toevoegen, zodat ze effectief kunnen worden gecategoriseerd en gefilterd.
- Ik kan productattributen maken en beheren (merk, materiaal, functies)
- Ik kan tags aan producten toewijzen voor aanvullende categorisatie
- Ik kan attributensets maken voor verschillende producttypen
- Ik kan attributen filterbaar of niet-filterbaar maken
Gebruikersverhaal 2: Als klant wil ik producten op hun attributen kunnen filteren, zodat ik producten met specifieke kenmerken kan vinden.
- Ik kan beschikbare filteropties zien op basis van productattributen
- Ik kan meerdere filterwaarden selecteren voor elk attribuut
- Ik kan zien welke filters momenteel zijn toegepast
- Ik kan filters afzonderlijk of allemaal tegelijk wissen
Gebruikersverhaal 1: Als klant wil ik ondersteuningstickets kunnen aanmaken, zodat ik hulp kan krijgen bij problemen of vragen.
- Ik kan een nieuw ondersteuningsticket aanmaken vanuit mijn account
- Ik kan het type probleem en de prioriteit specificeren
- Ik kan bestanden (screenshots, bonnetjes) aan mijn ticket toevoegen
- Ik kan de status en geschiedenis van mijn tickets bekijken
Gebruikersverhaal 2: Als ondersteuningsmedewerker wil ik klantentickets kunnen beheren, zodat ik tijdige hulp kan bieden.
- Ik kan alle open tickets en hun prioriteiten bekijken
- Ik kan tickets toewijzen aan specifieke teamleden
- Ik kan ticketstatus bijwerken en interne notities toevoegen
- Ik kan met klanten communiceren via het ticketsysteem
Gebruikersverhaal 1: Als klant wil ik meerdere producten naast elkaar kunnen vergelijken, zodat ik een geïnformeerde aankoopbeslissing kan nemen.
- Ik kan producten toevoegen aan een vergelijkingslijst
- Ik kan producten naast elkaar bekijken met hun functies en specificaties
- Ik kan zien welke functies verschillen tussen producten
- Ik kan producten vanuit de vergelijking direct aan mijn winkelwagen toevoegen
Gebruikersverhaal 2: Als winkelbeheerder wil ik kunnen beheren welke productattributen vergelijkbaar zijn, zodat vergelijkingen zinvol zijn.
- Ik kan selecteren welke attributen in productvergelijkingen worden weergegeven
- Ik kan attributen organiseren in groepen (specificaties, functies, prijzen)
- Ik kan belangrijke verschillen tussen vergeleken producten benadrukken
- Ik kan een maximum aantal producten instellen dat tegelijkertijd kan worden vergeleken
Gebruikersverhaal 1: Als klant wil ik een lijst kunnen zien van producten die ik onlangs heb bekeken, zodat ik ze gemakkelijk opnieuw kan vinden.
- Ik kan de laatste producten zien die ik heb bekeken
- Ik kan op elk recent bekeken product klikken om terug te keren naar de pagina
- Mijn recent bekeken producten blijven behouden tussen browsersessies
- Ik kan items van mijn recent bekeken lijst verwijderen
Gebruikersverhaal 2: Als winkelbeheerder wil ik gepersonaliseerde productaanbevelingen kunnen weergeven op basis van kijkgeschiedenis, zodat ik de verkoop kan verhogen.
- Het systeem toont gerelateerde producten op basis van kijkgeschiedenis
- Ik kan configureren hoeveel aanbevelingen worden getoond
- Ik kan regels instellen voor het genereren van aanbevelingen
- Ik kan statistieken bekijken over de effectiviteit van aanbevelingen
Gebruikersverhaal 1: Als klant wil ik fysieke winkellocaties kunnen vinden, zodat ik persoonlijk kan bezoeken.
- Ik kan naar winkels zoeken op postcode of stad
- Ik kan winkels op een kaart bekijken
- Ik kan winkeldetails zien (adres, openingstijden, telefoonnummer)
- Ik kan een routebeschrijving naar een winkel krijgen
Gebruikersverhaal 2: Als winkelbeheerder wil ik informatie over winkellocaties kunnen beheren, zodat klanten nauwkeurige details hebben.
- Ik kan winkellocaties toevoegen, bewerken en verwijderen
- Ik kan openingstijden bijwerken, inclusief speciale feestdagopeningstijden
- Ik kan winkelspecifieke informatie toevoegen (aangeboden diensten, evenementen in de winkel)
- Ik kan winkels indien nodig als tijdelijk gesloten markeren
Gebruikersverhaal 1: Als winkelbeheerder wil ik productbundels kunnen maken, zodat ik pakketdeals aan klanten kan aanbieden.
- Ik kan meerdere producten groeperen in een bundel
- Ik kan een speciale prijs voor de bundel instellen
- Ik kan bepaalde producten in de bundel optioneel maken
- Ik kan minimum- en maximumhoeveelheden instellen voor gebundelde items
Gebruikersverhaal 2: Als klant wil ik productbundels kunnen kopen, zodat ik geld kan besparen in vergelijking met het apart kopen van items.
- Ik kan zien welke producten in een bundel zijn opgenomen
- Ik kan zien hoeveel ik bespaar door de bundel te kopen
- Ik kan bepaalde aspecten van de bundel aanpassen als dat is toegestaan
- Ik kan de hele bundel met één klik aan mijn winkelwagen toevoegen
Shows the fundamental relationships between users, products, orders, and roles
erDiagram
User ||--o{ Order : places
User ||--o{ Address : has
User ||--o{ Review : writes
User }|--o{ Role : has
Role }|--o{ Permission : includes
Product ||--o{ OrderItem : contains
Product ||--o{ ProductVariant : has
Product ||--o{ Review : receives
Product }|--o{ Category : belongs_to
Order ||--o{ OrderItem : contains
Order ||--o{ OrderStatus : tracks
ProductVariant ||--o{ StockLevel : has
Category }o--o{ Category : has_parent
Focuses on shopping features like cart, wishlist, and payment processing
erDiagram
User ||--o{ CartItem : has
User ||--o{ Wishlist : owns
Product ||--o{ CartItem : added_to
Product ||--o{ WishlistItem : saved_in
Product ||--o{ ProductImage : displays
Wishlist ||--o{ WishlistItem : contains
Order }o--o{ Coupon : applies
Order ||--o{ PaymentTransaction : processes
Product }o--o{ ProductBundle : part_of
ProductBundle ||--o{ BundleItem : consists_of
Displays service-related entities like support tickets, notifications and store locations
erDiagram
User ||--o{ SupportTicket : creates
User ||--o{ Notification : receives
User ||--o{ RecentlyViewed : tracks
Product ||--o{ RecentlyViewed : appears_in
Product }o--o{ Tag : has
Product }o--o{ Attribute : has
SupportTicket ||--o{ TicketMessage : contains
SupportTicket }o--|| SupportAgent : assigned_to
Store ||--o{ StoreHours : schedules