[Nadenken] ShoppingCart en de User

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java Developer / Overheid / Complexiteit

Functieomschrijving Wil jij als Java Developer een bijdrage leveren aan een veiliger Nederland en je als Java Developer bezig houden met zeer complexe bedrijfskritische applicaties? Lees dan snel verder! Doorontwikkelen bedrijfskritische applicaties; Aanpassingen maken in de bestaande applicatie; Vertalen van jouw visie op continuous integration en continuous delivery; Debuggen van de applicatie; In gesprek gaan met eindgebruikers om verbetervoorstellen op te halen. Functie-eisen Minimaal HBO-werk en denkniveau; Minimaal 5 jaar werkervaring als Java Developer; Je bent minimaal OCP-Java SE 6 gercertificeerd; Je hebt kennis van Webservices en Continuous Integration; Je bent analytisch sterk en zowel klant- als resultaatgericht. Bedrijfsomschrijving Binnen

Bekijk vacature »

Senior DevOps-ontwikkelaar eIDAS

Functie­omschrijving Burgers en bedrijven veilig en betrouwbaar digitaal toegang geven tot diensten en producten van het ministerie van Economische Zaken en Klimaat. Als senior DevOps-ontwikkelaar bouw je daar letterlijk aan mee. En dat doe je bij DICTU: een van de grootste en meest vooruitstrevende ICT-dienstverleners van de Rijksoverheid. Jij werkt mee aan de doorontwikkeling van eIDAS, dat staat voor Electronic IDentification Authentication and trust Services. Deze koppeling maakt de grensoverschrijdende authenticatie op overheidswebsites binnen de Europese Unie mogelijk. Het ministerie van Economische Zaken en Klimaat heeft één moderne toegangspoort voor zijn diensten en inspecties. Enkele daarvan zijn dankzij eIDAS inmiddels

Bekijk vacature »

Jasper DS

Jasper DS

04/04/2013 15:18:07
Quote Anchor link
Hoi,

momenteel ben ik een winkelwagen aan het bouwen. Deze winkelwagen heeft betrekking op 3 klassen (DOMAIN-OBJECTEN): ShoppingCart, Order, User.

Nu had ik om een reden die ik vergeten was het User object als eigenschap van het Order object meegegeven. In mijn ShoppingCart klasse zit een array van Orders met dus telkens hetzelfde User object als attribuut. Is het dan niet beter dan mijn User attribuut opschuift naar de ShoppingCart? Om de één of andere vreemde reden had ik dat dus niet gedaan maar ik kan me momenteel het voordeel niet meer herinneren. Wat zouden jullie doen?

Bedankt!
 
PHP hulp

PHP hulp

21/09/2020 01:25:21
 
Tim S

Tim S

04/04/2013 15:27:08
Quote Anchor link
Het lijkt mij dat de ShoppingCart bestaat uit een user met orders dus ik zou ja zeggen.
 
Ward van der Put
Moderator

Ward van der Put

04/04/2013 15:33:39
Quote Anchor link
De ShoppingCart is meer een view van een onvoltooide Order.

Bij het afronden van de Order wordt daaraan inderdaad een User aan toegevoegd (de koper). Daarna kun je de ShoppingCart weggooien, maar houdt je een Order over die moet worden uitgevoerd voor de User.
 
Wouter J

Wouter J

04/04/2013 16:29:41
Quote Anchor link
Offtopic:
Quote:
Om de één of andere vreemde reden had ik dat dus niet gedaan maar ik kan me momenteel het voordeel niet meer herinneren

En daarom zeg ik ook altijd dat je eerst je applicatie moet uittekenen. Dan weet je precies wat je hebt gedaan, waarom en dan denk je eerst over je hele applicatie zodat je dit soort 'denkfouten' niet tijdens het coderen krijgt.

Gewijzigd op 04/04/2013 16:30:01 door Wouter J
 
Ward van der Put
Moderator

Ward van der Put

04/04/2013 17:20:25
Quote Anchor link
Offtopic:
Wouter, niet té streng in de leer zijn. (Ja, ik heb een whiteboard — mét magneten!) Jasper had het intuïtief al goed ingevuld: je voert uiteindelijk een order uit voor een gebruiker.

Ik maak het maandelijks mee: zelf Certified Magento Developers maken beginnersfouten om de doodeenvoudige reden dat ze nog nooit de orderverwerking live in actie hebben gezien. Dan modelleer je een ideaalbeeld (zo zou het moeten werken) en niet de praktijk (zó werkt het).
 
Jasper DS

Jasper DS

04/04/2013 21:30:34
Quote Anchor link
Dit is de denkfase Wouter... ;-) Ga het nu uitwerken met de User als eigenschap van de ShoppingCart. Bedankt!

Even praktisch, ik heb twee tabellen in mijn DB een tabel "ORDERS" (= ShoppingCart) en een tabel Lines (= de gegevens van de array orders).

Is het veilig als de gebruik op "ga naar kassa" klikt dat ik met een foreach door de array loop en zo de db vul?
Gewijzigd op 04/04/2013 21:36:16 door Jasper DS
 
Ward van der Put
Moderator

Ward van der Put

05/04/2013 07:49:58
Quote Anchor link
Ik zou al een orderregel opslaan in de database zodra een artikel wordt toegevoegd aan het winkelwagentje. Een paar overwegingen:

• Big data zijn steeds belangrijker in e-commerce. Uit de verlaten winkelwagentjes (shoppingcart abandonment) kun je vaak veel waardevolle informatie halen. Eenvoudig voorbeeld: komt een bepaald artikel relatief vaak voor, dan is daarmee iets aan de hand.

• Je kunt de pijn van shoppingcart abandonment verzachten door gebruikers te mailen dat ze nog een winkelwagentje hebben. Je kunt bovendien meer verkopen door winkelwagentjes langer in leven te houden, bijvoorbeeld 90 dagen. Daarvoor gebruik je dus de database.

• Je kunt beter upsellen (duurdere artikelen verkopen) en cross-sellen (bijbehorende artikelen verkopen) als je informatie hebt over eerder achtergelaten winkelwagentjes. Het komt nogal eens voor dat een twijfelaar een paar keer langskomt voordat hij definitief bestelt.

• Om dezelfde redenen verwijder je een orderregel niet uit de database wanneer de gebruiker een artikel verwijdert uit het winkelwagentje. In plaats daarvan zet je gewoon het aantal op 0.

• Een verlanglijstje is eigenlijk hetzelfde als een winkelwagentje. De orderregels kun je daarvoor dus ook gebruiken, met een extra bit voor de schakelaar "in winkelwagen | op verlanglijst".

• Wat in de winkelwagen zit, moet daadwerkelijk geleverd worden. Dat betekent dat je moet controleren of de juiste aantallen nog op voorraad zijn en vervolgens de voorraadniveaus moet bijwerken. Alternatief is de artikelen reserveren en ze pas na ontvangst van de betaling van de voorraden afhalen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.