[discussie] Orderproces

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Developer

Functie omschrijving Veel begeleiding en de kans om je verder te ontwikkelen als software developer. Dat kunnen wij jou bieden bij deelname aan deze leuke traineeship. Je krijgt een mentor toegewezen die jou alle kneepjes van het vak leert. Heb jij al wat ervaring als software developer? Daar worden wij heel blij van! Lees snel verder! Bedrijfsprofiel Als software developer neem je deel aan een trainings programma in de omgeving van Haarlem waar je persoonlijk wordt begeleidt, zodat je alle kneepjes van het vak leert. Aan de hand van jouw kennis en ervaring krijg je een persoonlijk opleidingstraject. Je gaat

Bekijk vacature »

Lead C++ Developer

De rol van Lead C++ Developer Als Lead C++ developer bij KUBUS word je verantwoordelijk voor het implementatie design van requirements en de software architectuur van de desktop applicaties van BIMcollab, ons platform voor 3D model-validatie en issue-management bedoeld om de kwaliteit van 3D design-modellen voor gebouwen te verbeteren. Betere 3D modellen leiden tot betere gebouwen, dus zo draag je bij aan verduurzaming van de gebouwde omgeving met slimmer gebruik van materialen, minder verspilling en energie-efficiënte gebouwen. Een goede gebruikerservaring staat bij ons hoog in het vaandel; we gaan in onze ontwikkeling voor innovatie en kwaliteit. In je rol als

Bekijk vacature »

SQL ontwikkelaar

Functieomschrijving Voor een gave werkgever in regio Breda zijn wij per direct op zoek naar een SQL ontwikkelaar/ functioneel consultant. Hier wordt jij mede verantwoordelijk voor zowel de design en implementatie van SQL-databases als voor het verstaan van de processen van klanten naar het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt als volgt uit te zien: Je test de ontwikkelde oplossingen om er zeker van te zijn dat deze voldoen aan de functionele specificaties en de behoeften van de organisatie; Je ontwerpt, ontwikkelt en implementeert SQL-databases om de data behoeften van de organisatie te ondersteunen; Je stelt op

Bekijk vacature »

Senior/Lead Python developer

Functie Samen met je team, bestaande uit een senior, 2 mediors en één junior ontwikkelaar ga je op een Agile-gebaseerde aanpak werken aan hun software. Je hebt oog voor kwaliteit, risico’s en klantbelang. Communicatie met je collega’s en waar nodig ook met klanten speelt een belangrijke rol in het bereiken van een succesvol resultaat. Als persoon ben je slim, krijg je dingen voor elkaar en ga je resultaatgericht te werk. Binnen het development team is er veel zelfstandigheid, los van de stand-up (10:00 uur) en zo nu en dan pair-programming sessies. Technieken die zij gebruiken zijn o.a. Python, Django, MySQL,

Bekijk vacature »

VB.NET developer

Functie Het development team waar jij in terecht komt bestaat uit twee ervaren software developers. De directeur/eigenaar is tevens één van deze developers. Jij werkt direct samen met jouw werkgever en kan dan ook veel kennis en ervaring bij dit bedrijf op doen. Als team zijn jullie verantwoordelijk voor de kantoorapplicatie die deze organisatie aanbied in een niche markt. Het team is op dit moment actief bezig met een migratie waarbij het eindstation eindigt in een C# .NET omgeving. Echter is een deel van de software al geschreven in C# .NET. Hierbij is gebruik gemaakt van C# .NET, CSS, HTML,

Bekijk vacature »

C# .NET Developer

Functie omschrijving C# .NET Developer gezocht. Ben jij een full stack developer die op zoek is naar een nieuwe uitdaging binnen een leuk snel groeiend bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Developer met ervaring op het gebied van .NET die een organisatie in de regio Bennekom gaat versterken. Jij gaat je binnen dit bedrijf vooral bezighouden met het verbeteren van de functionaliteiten van hun dataplatform. Samen met andere ontwikkelaars denk je mee in oplossingsrichtingen, architectuur en nieuwe technologieën. Bedrijfsprofiel De organisatie waar je voor gaat werken heeft een onafhankelijk dataplatform ontwikkelt voor de agrarische sector.

Bekijk vacature »

Developer Low-code

Dit ga je doen Low-code ontwikkeling van software voor landelijk bekende organisaties; Opleveren van mooie eindproducten, middels de Agile methodiek; Samenwerken in een team van 10 collega's; Direct contact met de eindklant over de gewenste oplossingen. Hier ga je werken Als Developer kom je te werken in de regio van Lelystad bij een organisatie die met toonaangevende klanten uit heel Nederland samen werkt. De producten en diensten van de organisatie bereiken miljoenen Nederlanders. Hierbij komt een grote hoeveelheid informatie kijken en deze moet discreet en veilig verwerkt worden. De processen die hierbij horen worden door het IT team vormgegeven. De

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Full Stack Software Ontwikkelaar gezocht! Voor een bedrijf in de regio van Ermelo zijn wij op zoek naar een Software Ontwikkelaar die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van SaaS applicatie van dit bedrijf. Hierbij ga jij voor- en samenwerken met de klanten van de organisatie, het is hierbij dus van groot belang dat je communicatief vaardig bent en dat je beschikt over beheersing van zowel de Nederlandse als Engelse taal. Bedrijfsprofiel Waar ga je werken? Altijd al in een echt familiebedrijf willen werken? Dan is dit je kans! Het bedrijf waar je komt te

Bekijk vacature »

Full stack developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Front End Developer React Vue

Dit ga je doen Meewerken aan de implementaties en ontwikkeling van nieuwe functionaliteiten van de webapplicaties; Ontwikkelen met o.a. React en Vue en HTML/CSS, ook krijg je in verband met de samenwerking ook affiniteit met de backend Ruby on Rails; Ontwikkeling aan de front end voor de koppelingen tussen de diverse systemen; Ontwerpen van interfaces en een bijdrage leveren aan de gebruikerservaring; Zorgdragen voor hoge kwaliteit van code en jezelf (en anderen) blijven verbeteren; Als Senior Front End Developer begeleid je zelf ook FE-development projecten, hierin leid je de projecten en pak jij het initiatief op (bv integratieprojecten). Hier ga

Bekijk vacature »

Low Code Ontwikkelaar

In het kort Als Low Code Developer werk je aan projecten bij en voor onze klanten, waarbij je voor het ontwikkelen van de oplossingen een technisch low-code platform gebruikt. Samen met het team streef je naar de beste oplossing en bepalen jullie de juiste aanpak. Je rol is divers en je bent van begin tot eind betrokken bij de ontwikkeling zowel de back-end en de front-end van de applicatie. Naast de ontwikkeling en oplevering, breng je ook advies uit aan de klant waarom bepaalde keuzes worden gemaakt. Je bent dan ook communicatief sterk en kunt je keuzes goed (inhoudelijk) onderbouwen.

Bekijk vacature »

Software developer (Python)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en houden ze zo nu en dan pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Je hebt in je werk oog voor kwaliteit, risico’s en het klantbelang. Communicatie met

Bekijk vacature »

Laravel PHP developer in een jong team

Bedrijfsomschrijving Als je op zoek bent naar een werkplek waar plezier en uitdaging hand in hand gaan, dan is dit bedrijf de juiste keuze voor jou. Hier kun je werken aan uitdagende projecten en krijg je als developer veel verantwoordelijkheid. Het bedrijf waardeert kwaliteit boven kwantiteit en richt zich op het ontwikkelen van hoogwaardige applicaties en websites waar klanten enthousiast over zijn. Dit bedrijf is vooruitstrevend en streeft naar het leveren van de best mogelijke resultaten voor hun klanten. Als medior PHP ontwikkelaar met 3 jaar ervaring ben jij de persoon die we zoeken. Je krijgt hier de kans om

Bekijk vacature »

Applicatieontwikkelaar Java EE

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving De afdeling IV –

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »
Niels K

Niels K

03/02/2012 19:25:42
Quote Anchor link
Beste PHPers,

Velen van jullie weten dat ik (als werk) vooral webshops realiseer. Nu weet ik zeker dat diversen mensen hier op het forum wel eens een webshop heeft gerealiseerd of dit misschien net als mij dagelijks doet.

Nu ben ik heel benieuwd hoe mensen zo'n proces in omzetten naar Object Georiënteerd programmeren.

Even geleden heeft onze vriend Bram Boos een topic gestart over het realiseren van een winkelwagentje en daarin heb ik mijn visie uitgelegd.

Ik zei daar dat ik zelf geen 'Winkelwagen' object heb, waarop Karl karl reageerde dat hij het juist wel zou doen.

Wat is jullie mening omtrent de denkwijze van een order proces in een webshop?

Ik ben benieuwd!

Niels Kieviet
Gewijzigd op 09/02/2012 14:54:03 door Niels K
 
PHP hulp

PHP hulp

27/11/2024 20:09:07
 
Niels K

Niels K

09/02/2012 14:30:58
Quote Anchor link
Heeft niemand hier een mening over?
 
Kees Schepers

kees Schepers

09/02/2012 14:33:15
Quote Anchor link
Waarom niet gebruiken van een shoppingcart_item entity/model? Dat lijkt me voldoende?
 
Niels K

Niels K

09/02/2012 14:37:09
Quote Anchor link
Schrijf eens uit? Ik denk zelf in een Order / Order item model. Shoppingcart model heb ik dus niet.
 
Kees Schepers

kees Schepers

09/02/2012 14:41:46
Quote Anchor link
Nee bij mij is order en order_product de daadwerkelijke bestelling.

Ik heb gewoon een shoppingcartitem tabel waar ook een kolom sessionid in zit. Op basis daarvan 'onthoud' ik wat er in de winkelwagen zit. En elke 4 uur draai ik een cronjob die alle winkelwagen items ouder dan 2 dagen weg gooit zodat de tabel niet te groot wordt. En de tabel heeft als engine memory voor performance :)
 
Jaron T

Jaron T

09/02/2012 14:43:03
Quote Anchor link
mijn 'WinkelWagen' object is gewoon een soort van sessiemanager waar ik heel makkelijk producten en aantallen kan beheren.
 
Niels K

Niels K

09/02/2012 14:52:03
Quote Anchor link
Maar ik denk dan, is een winkelwagen object wel nodig? Ik denk als volgt:

Een (potentiële) klant komt op een webshop. Ik doe het dan als volgt:

- Ik maak een nieuw klant object aan wat ik in de sessie gooi.
- Ik maak een nieuw order object aan, en append de klant aan de order.

Wanneer er een artikel in het winkelwagentje wordt gezet append ik een item aan het order object.

Zijn jullie het daar mee eens? Vinden jullie dat een mooie denkwijze?

Quote:
Nee bij mij is order en order_product de daadwerkelijke bestelling.

Dat vind ik ansich een mooie beredenering. Maar append jij dan een winkelwagen object aan een order?
Gewijzigd op 09/02/2012 14:53:30 door Niels K
 
Kees Schepers

kees Schepers

09/02/2012 15:08:24
Quote Anchor link
Jullie denken echt te lastig :p

Met Doctrine zou je bijvoorbeeld voor het winkelwagen deel 2 entities hebben. ShoppingcartItem en Product. Dit zijn dus gewoon op de achtergrond database tabellen en de entities zijn je models. Er is een oneToOne relatie van ShoppingcartItem naar Product.

Je kunt dan producten aan de winkelwagen toevoegen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$product
= $this->_em->getRepository('BestBuy\Entity\Product')->findOneByName('aardbei');

$item = new BestBuy\Entity\ShoppingcartItem();
$item->product = $product;
$item->user = Zend_Auth::getInstance()->getIdentity();

$this->_em->persist($item);
?>


Winkelwagen items opvragen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$shoppingcartItems
= $this->_em->getRepository('BestBuy\Entity\ShoppingcartItem')->findByUser(Zend_Auth::getInstance()->getIdentity());
?>


In je entities gooi je dus logic voor validatie etc. In de ShoppingcartItem repository zet je functies als:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$shoppingCartTotal
= $this->_em->getRepository('BestBuy\Entity\ShoppingcartItem')->getTotalAmount(Zend_Auth::getInstance()->getIdentity());
?>


In de repository class doe je een query:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
public function getTotalAmount(BestBuy\Entity\User $user) {
  $query = $this->_em->createQueryBuilder()
    ->
select('SUM(si.amount * p.price)')
    ->
from('BestBuy\Entity\ShoppingcartItem','si')
    ->
join('si.product', 'p')
    ->
where('si.user = :user')
    ->
setParameter('user', $user)
    ->
getQuery();

  return $query->getOneOrNullResult();
}

?>


Etc..

Waarom zou ik een 'winkelwagen' object extenden aan een order?
Gewijzigd op 09/02/2012 15:09:13 door kees Schepers
 
Niels K

Niels K

09/02/2012 15:38:00
Quote Anchor link
Ok duidelijk. Zelf doe ik het als volgt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

class Order extends Zend_Db_Table_Row_Abstract {

    // Toevoegen item
    public function addItem(OrderItem $orderItem) {}
}


?>


Een OrderItem genereer ik dan op basis van een product:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php

class OrderItem extends Zend_Db_Table_Row_Abstract {
    // Genereren op basis van een product
    public function createFromProduct(Product $product) {}
}


?>


In de order class heb ik wat functies voor het berekenen van verzendkosten etc.

Heeft er iemand een andere visie? Zoja, waarom?

Nog even een toevoeging:

Vroeger deed ik het (altijd) zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

class Shoppingcart {
    
    protected $_cart = array();

    public function addItem() {}
    public function deleteItem() {}
    public function getItems() {}
    public function getTotal() {}
    public function save() {
        // Opslaan in database
    }
}


?>


Nu in dit zo zie, denk ik dat een shoppingcart object eigenlijk wel netjes is. Je kan daar heel gemakkelijk een winkelwagen opslaan zonder dat er een order is voltooid.

Wanneer een klant het order proces binnengaat kan je een order object aanmaken en de items uit de winkelwagen aan de order toevoegen.
Gewijzigd op 09/02/2012 15:45:08 door Niels K
 
Kees Schepers

kees Schepers

09/02/2012 16:01:16
Quote Anchor link
Ik ben het wat dat betreft eens met je. Maar eigenlijk is het object Shoppingcart gewoon een Zend_Db_Table object van de tabel Shoppingcart :)
 
Niels K

Niels K

09/02/2012 16:03:07
Quote Anchor link
Ja dat snap ik. Wat ik me wel nog even afvraag is. Jij hebt op je ShoppingCart class de methode getTotalAmount. Die hoort toch in het Order object thuis? Een totaal bedrag is toch over een Order niet over een Winkelwagen?
Gewijzigd op 09/02/2012 16:05:58 door Niels K
 
Kees Schepers

kees Schepers

09/02/2012 16:09:19
Quote Anchor link
Waarom niet over een winkelwagen? Ik wil in mijn winkelwagen ook wel graag zien hoeveel ik ga spenderen in totaal :p
 
Niels K

Niels K

09/02/2012 16:10:36
Quote Anchor link
Ah, je hebt gelijk. Niet bij nagedacht. Ik vraag dat altijd aan het Order object :-) Ik zal eens kijken of ik iets moois kan fabriceren en wat kan posten.
 



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.