Kleine Wereld

Automagisch en hoe groot is die tabel?

Gepubliceerd op 22 mei 2010 11:42:48 door lisje.

Ik had al eens een stukje geschreven over onder de motorkap kijken van Wordpress... Wat eigenlijk kinderspel is in vergelijking met de andere CMS die ik sinds enkele weken van dichtbij aan het bekijken ben. Het is geen blogtool deze keer, maar een e-commerce (e-shop voor de niet-franstaligen) genaamd Magento en gebaseerd op de Zend Engine, heel plezant eenmaal je ermee weg bent eigenlijk.

Ik werk al dik een half jaar met deze e-commerce, het is te zeggen, tussen de andere projecten door (zoiets als een tâche de fond). Maar omdat de vorige oplossing voor het dynamisch 'maskeren' van producten volgens de settings van de klant, niet zo bijster was, ben ik nu dus wat in de 'Magento Core' aan het neuzen om de huidige werking van 'stores', 'categories', 'products' en 'search-engine' aan te passen.

Waarom was de vorige oplossing niet zo bijster? Wel, we hadden wat 'overhead' bij het creëren van een winkel per klant, gezien we max. 2000 klanten per dag moeten kunnen serveren (dit is, btw, leuk om weten voor je begint te werken, niet erna...). Enkele tabellen in de prachtige databank waren plots ietwat te gigantisch geworden en een delete van een store ging niet meer na de creatie van de 30e winkel. Een klein probleempje dus, vooral omdat elke nacht een volledige reset moest gebeuren van alle stores (haal al vast maar een extra geheugenlatje als je toch het plan van 30+ winkels wilt bouwen uit een Magento zonder de Mage Core te 'hacken').

Het idee is vrij eenvoudig, we gaan uiteindelijk maar één winkel hebben waar alle e-commerce klanten zich op kunnen inloggen, bij het inloggen zal de mijn extensie alle verboden producten voor deze klant (komende van een webservice) opslaan in een speciaal gecreëerde tabel. Deze tabel zal dan gebruikt worden om de producten weg te filteren die de klant niet hoort te zien.

Ik zeg 'filteren' omdat het net dat is wat we gaan doen. In Magento zitten een hele hoop filters die net ervoor zorgen dat je per 'winkel' de juiste producten te zien krijgt. En het zijn die filters die we gaan overschrijven in onze extensie om ervoor te zorgen dat hoewel we maar 1 winkel hebben, we toch enkel de producten tonen die de klant mag zien.

Eenmaal je het concept Zend/Magento door hebt, is het fairly simple om dat doel te bereiken. Gewoon wat Overerven van Models (zie Overriding Core Models with a custom module) en we zijn al een heel eind ver. Volgende week de stress-test van de website en maar hopen dat de host van onze virtuele machine het ook uithoudt :-)

Reacties

EcoRacer
23 mei 2010 17:45:29

Klinkt alsof het kinderspel is maar ik heb zo mijn twijfels. Ne mens voelt zich van tijd geweldig dom als hem zo van die dingen leest. Als je er een hele dag mee bezig zijt dan gaat dat wel wat beter misschien.

Als ze dat aan mij zouden vragen zou dat in mijn oren klinken als "kunt ge even broeder jakob achterstevoren zingen in het mandarijns?"... juist ja...

lisje
23 mei 2010 18:06:53

Het werkt een beetje als een nieuwe taal leren spreken (daarom spreken ze ook van programmeertalen), ge begint een 'oh, f*ck waar hebben ze me nu weer achter gezet' en maanden later zit ge samen met uw chef achter de pc, waarop hij zegt: 'verstaat gij nu wat ze daar hebben geschreven?' en 'man, die hebben hun dik geamuseerd met dat te schrijven' en gij knikt begrijpend terwijl ge samen met hem de oplossing probeert te bedenken :D
Ondertussen hebben we het beiden gesnapt hoe 't werkt en is het aan mij om de oplossing te breien :D
Maar vraag me niet om een wiel te spaken of versnellingen af te stellen etc. Ik vrees dat ik dan ook moet passen.

Jouw reactie


NIEUWER - OUDER
© 2003-2010 Lisje
Some rights reserved.