Het kan best frustrerend zijn voor kopers om door een catalogus te bladeren, een idee van de prijzen te krijgen, tot de aankoop besluiten en bij het afrekenen een aanzienlijk hogere prijs te ontdekken. Hierdoor kunnen veel mensen de website verlaten zonder het bestelproces te voltooien. Als de prijzen in uw winkel per regio verschillen, is het een goed idee om de juiste prijzen al in de catalogus weer te geven. Dit kan met behulp van een plug-in gedaan worden. Zie hieronder onze ervaring met het ontwikkelen van een dergelijke plug-in.
Uitdaging
Een bedrijf levert aan verschillende steden binnen één land. Eenmaal op de site kan de gebruiker zijn/haar stad selecteren. De vereiste was om steden per regio op prijs te groeperen, een systeem te maken dat leveringsprijzen afhankelijk van deze regio’s bepaalt en de juiste prijzen in realtime weer te geven, evenals een bestelling met de juiste prijs op basis van het afleveradres te plaatsen.
Oplossing
Om de taak te vervullen werd een plug-in ontwikkeld. Deze plug-in gebruikt de volgende nopCommerce aanpassingsmechanismen:
- Ontwikkeling van aangepaste entiteiten
- Implementatie van het actiefilter
- Interceptie van gebeurtenissen door implementatie van IConsumer
Een bestaande plug-in voor stadselectie op de website heeft bepaalde waarden in het GenericAttribute van de Customer (klant) entiteit opgeslagen. Op basis van deze gegevens bepaalt de nieuwe plug-in de regio en de bijbehorende prijzen in de catalogus en het winkelmandje.
Ontwikkeling van aangepaste entiteiten
Met behulp van data access plugin, een patroon voor de ontwikkeling van plug-ins, hebben we entiteiten geïmplementeerd voor het opslaan van verbindingen tussen steden en ‘prijsregio’s’, evenals voor het opslaan van relaties, valuta’s en prijzen tussen regio’s en producten.
De service voor deze entiteiten bood CRUD-operaties op entiteiten, evenals prijzen op basis van de geselecteerde stad en de orderprijs op basis van het afleveradres.
Herbepaling van prijzen in catalogus en winkelwagen
Om correcte prijzen op de catalogus- en winkelwagenpagina’s weer te geven is een actiefilter geïmplementeerd. Het herbepaalt prijzen in weergavemodellen op basis van de stad gekozen door de gebruiker en opgeslagen in GenericAttribute van de Customer-entiteit.
Herbepaling van prijzen bij het plaatsen van een bestelling
Om het plaatsen van een bestelling te onderscheppen werd IConsumer geïmplementeerd. Het herberekent de prijs van de bestelling rekening houdend met de stad in het afleveradres.
Implementatie van de interface voor het invoeren van prijzen per regio in het adminpaneel
In de Configure weergave van de plug-in configuratiepagina werd de gebruikersinterface voor het invoeren van prijsregio’s en overeenkomende steden geïmplementeerd. Op de productbewerkingspagina hebben we een tabblad toegevoegd om prijzen op regionaal niveau in te voeren met behulp van IConsumer dat de AdminTabStripCreated gebeurtenis onderschept.
Heeft u vragen over uw projecten? Neem contact met ons op voor een gratis consult.