Ludolf Takens
Ludolf Takens
28 april 2017

Iedereen kan een eigen webshop beginnen met Django Oscar

Voor een gewaardeerde klant hebben we binnen het intranet een webshop opgezet met het open source pakket Django Oscar. Een korte samenvatting van de installatie.

Aanvankelijk was er enkel een pagina met een simpel bestelformulier. Dit hebben we omgezet in een volledige online webshop. Hiervoor hebben we twee applicaties geïnstalleerd: Django Oscar, en omdat intranetgebruikers toegang moesten hebben zonder opnieuw in te loggen, een Single sign-on client implementatie. Deze laatste zal natuurlijk niet voor iedere webshopeigenaar nodig zijn.

Logo van Oscar

Single sign-on (SSO)

Code voor de SSO implementatie hebben we geplaatst in een nieuwe Django app binnen het nog kale Oscar project. Het bevatte middleware die voortdurend beoordeelde of de bezoeker ingelogd was binnen de websites van de klant en zo niet, de gebruiker doorstuurde naar de SSO-login-pagina. Intranetgebruikers werden automatisch ingelogd in de Oscar webshop.

Django Oscar

Toen de kale webshop installatie bereikbaar was voor intranetgebruikers, zijn we deze aan gaan passen aan de specifieke wensen van de klant. Dit hield in dat de webshop vormgegeven werd aan de hand van de bestaande huisstijl en dat het bestelproces gecustomized werd. Met deze aanpassingen krijgt iedereen te maken die een eigen webshop beginnen wil.

Het vormgeven van een Oscar webshop is erg simpel. Omdat Oscar op Django gebaseerd is, zijn alle templates te overschijven. Dit doet men door eenzelfde template- en mappenstructuur aan te maken als die er bestaat in Oscar zelf. Bevindt zich in Oscar de template voor de productdetailpagina in templates/catalogue/detail.html, dan plaatst men de nieuwe template in templates/catalogue/detail.html binnen de eigen app.

Het aanpassen van het bestelproces heeft Oscar ook makkelijk gemaakt voor ontwikkelaars. Modellen en classes worden namelijk op een speciale manier geladen. Hierdoor zijn ze te overschrijven op een manier die gelijk is aan het overschrijven van templates. Oscar’s ShippingAddress model of handle_order_status_change methode bijvoorbeeld, kunnen zo aangepast worden, dat een verzendadres custom eigenschappen heeft of dat er email gestuurd wordt wanneer een bestelling in behandeling genomen wordt. Lees hier meer over het customizen van Oscar.

Vragen? Of een eigen webshop starten? Neem contact met ons op.

We love code