Grundvoraussetzung des FodCamp (=Friends Of Damian) ist das Damian einläd. Er organisiert das Event und bestimmt wer kommen darf. Dabei verhält es sich aber sehr sehr fair und akzeptiert auch Vorschläge. Wichtig ist das alle anwesenden Entwickler auf ihrem Gebiet Experte sind.
Dazu kommt das jeder Entwickler eine Präsentation mitbringen muss - zu einem Thema welches er im Vorfeld selbst bestimmt. Zu Beginn stimmen wir dann ab welche Vorträge gehört werden. Alle sind, das Wissen wir aus Erfahrung, oft nicht möglich.
Neue Module braucht die Welt
Neben den Vorträgen, ein paar Bier und einer Nahrungsmittelaufnahme im drei Stunden-Takt (Frühstück, Mittag, Kuchen, Abend, Mitternachts-Snack) sind wir mit der Entwicklung zweier Module begonnen. Das erste, welches die größere Gruppe betreut, bleibt vorerst noch ein bisschen Geheim. Das zweite kann aber als Alpha schon einmal das Licht der Welt erblicken :)
CuteSave - Schnelles Speichern von Mage::getModel('catalog/product') - auch mittels SOAP
Das Modul hat seinen Namen von der Queue. Die Idee besteht darin das, falls mehrere Produkte gespeichert werden müssen, es deutlich schneller geht zusammen zu speichern als einzeln. Dabei werden mehrere Inserts in die Entity-Tabellen zu einem Insert zusammengefasst.
Das ganze wäre ein riesiger Aufwand hätte uns Magento mit dem neuen Import/Export nicht schon eine große Ecke an Arbeit abgenommen. Dieser verfolgt nämlich fast das gleiche Prinzip. Unsere Aufgabe bestand also darin Mage_Catalog_Model_Product in das Format des Importes zu konvertieren. Das haben wir geschafft - zumindest zu einem großen Teil und so das es knapp als Alpha zählen darf :)
Ein erster Test
for($i=0;$i<5000; $i++) {
$product = Mage::getModel('catalog/product');
$product->setData(...);
Mage::getSingleton('fod_cutesave/queue')->add($product);
}
Mage::getSingleton('fod_cutesave/queue')->write();
Für 5000 Produkte benötigen wir ca. 45 Sekunden über das Model als Container.
Ein Test über die SOAP-Api
..
for($i=0;$i<1000; $i++)
...
$client->call($session, 'cutesave_product.update', array('aaa', $newProductData));
}
$client->endSession($session);
Für 1000 Produkte benötigen wir ca. 20 Sekunden über die SOAP-Api.
Weitere Informationen gibt es bei GitHub. Bis zur Stable wird es aber noch etwas dauern :)
Vielen Dank an..
- aijko GmbH - Agentur für Medienentwicklung (www.aijko.de),
- Flagbit GmbH & Co. KG (www.flagbit.de)
- SYNAXON AG (www.synaxon.de),
- code-x GmbH - Internet & Marketing (www.code-x.de),
- ITabs GmbH (www.itabs.de),
- Netresearch GmbH & Co.KG (www.netresearch.de),
- IcyApp (www.icyapp.de)
Ohne deren Unterstützung ein solches Event nicht möglich wäre!