Magento – customized XML configuration

A few days ago I wrote a blog post about customizing Magento’s back-end XML configuration. Now I think it’s time to translate and publish my first English blog post.

As you know Magento uses a XML driven back-end configuration for modules. You can add configuration-areas and options with a simple xml file (system.xml).

But how can we add a button (e.g. to open a new website or trigger an action)?
Weiterlesen

Magento – Die Konfiguration anpassen

Gestern tauchte im IRC die Frage auf “Wie kann ich eigentlich im Magento-Backend unter Konfiguration einen Button hinzufügen, der einen Task anstößt?”.

Bekanntermaßen bietet Magento ja eine komplett XML-gesteuerte Beschreibung der Konfiguration über das man eigene Bereiche und Optionen einfügen kann.
Nur einen Button einfügen hatte noch niemand gesehen, also werd ich das in diesem Blogpost mal genauer erklären ;-)

Angehängt gibt es ein kleines Beispielmodul, ihr braucht also nicht mal selber tippen… :D
Weiterlesen

Magentos Dateien und Ordnerstrukturen

Nachdem hier gefragt wurde wohin die ganzen Dateien eigentlich gehören werde ich dazu eine kleine Einführung geben.

Magento arbeitet im Hintergrund mit einem MVC-System und nutzt Autoloading um benötigte Klassen automatisch zu finden und zu laden.
Das ganze führt zu einfachen Regeln wo Dateien hingehören, so dass man mit einem Klassennamen wie Mage_Core_Model_App oder einem Aufruf von Mage::getModel(‘core/app’) direkt sagen kann wo die entsprechende Datei (in diesem Falle app/code/[local|community|core]/Mage/Core/Model/App.php) liegt.
Weiterlesen

Magento sales/order collection

Mit nur 3 Wochen Verzögerung schaffe ich es endlich mal wieder einen kleinen Blogartikel zu schreiben, diesmal am Beispiel der Nutzung der sales/order collection in Magento.

Die letzten Wochen hatte ich recht viel zu tun, daher diese kleine Blogpause. So war ich vom 15.5.-17.5. in Leipzig auf der Meet Magento, über die es hier einen schlnen Artikel und weiterführende Links gibt: Meet Magento E-Commerce Konferenz.

Doch nun zum eigentlichen Teil meines Posts, den Collections:
Eine Collection stellt im Prinzip eine Sammlung von Objekten des selben Models dar. Anders gesagt:
Das Model ‘sales/order’ kann per load()-Methode eine bestimmte Order laden, alternativ kann per getCollection()-Methode eine Auflistung aller Bestellungen geladen werden, die danach verarbeitet wird.
Weiterlesen

Webapplikationen hacken

In diesem Blogpost möchte ich etwas von der Theorie über die Sicherheit von Computersystem weggehen, und einige der gängigsten Methoden vorstellen die ein Angreifer nutzen kann um ein System zu kompromittieren.
Frei nach dem Motto “Kenne deinen Feind” werde ich beschreiben wie diese Angriffe funktionieren, und wie man sich dagegen schützen kann.

Von MySQL Injection über XSS bis hin zu sicherem Design, Race Condition versuche ich so viel wie möglich zu erklären. Der Post bezieht sich auf Sicherheitslücken in PHP-Applikationen, ist aber auch auf andere Software anwendbar.

Weiterlesen

Magento Shipping Module

Bezahlen können wir nun, aber wie kommt unsere Ware ans Ziel?

Shipping Module sind einfacher als Paymentmodule und, zumindest in meinen Augen, flexibler einzurichten.
In diesem Post werde ich beschreiben wie man eine simple Versandart in Magento programmieren kann um den Checkout weiter seinen Wünschen Anzupassen.

Weiterlesen

Magento Payment Module

Nun wird es Zeit meinen ersten “technischen” Artikel zu veröffentlichen (gestern Abend bereits geschrieben, heute veröffentlicht, ich finds immer komisch gleich mehrere Posts am Tag zu veröffentlichen ;) ).

Payment Module in Magento zu schreiben war für mich Anfangs ein mittelschweres Unterfangen, da ich kaum Dokumentation zu dem Thema finden konnte. Nach dem Lesen einiger etablierter Module (u.a. DebitPayment und CashOnDelivery) konnte ich das wichtigste zusammensammeln das benötigt wird um ein einfaches Paymentmodul zu erstellen.

Weiterlesen