Fodcamp - Ein Rückblick

Es war wieder Foocamp Fodcamp. Dieses kleine aber feine Event, organisiert von Damian, fand dies mal in Tossens an der Nordsee statt. Insgesamt waren 15 Magento-Entwickler von unterschiedlichen Agenturen bzw. Unternehmen anwesend um gemeinsam Know-How auszutauschen, neue Ideen voranzutreiben.

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..

Ohne deren Unterstützung ein solches Event nicht möglich wäre!



Ein Beitrag von Tobias Vogt
Tobias's avatar

Tobias Vogt arbeitet seit 2008 mit Magento und ist seit 2011 durch Magento zertifizierter Entwickler. Beschäftigt ist er bei der code-x GmbH, einer Agentur für Internet und Marketing aus Paderborn. Er gehört zum Gründer-Team der Webguys und ist seit November 2011 Bachelor of Science (Wirtschaftsinformatik). Sie erreichen Ihn per E-Mail unter tobi@webguys.de.

Alle Beiträge von Tobias

Dein Kommentar