code4business Software GmbH - Magento Associate

Webinar zu automatisiertem Testen mit Selenium in Magento

Von der agilen Softwareentwicklung ausgehend, haben sich automatische Tests bis weit in die traditionellen Prozesse etabliert. Automatisierte Tests erhöhen nicht nur die Qualität der Entwicklung, sondern machen die Entwicklungszeit auch kalkulierbar. Bei großen Projekten liefern sie, neben höherer Qualität, auch schlicht kürzere Entwicklungszeiten.

Am 17.3.2014 haben Dr. Nikolai Krambrock und Dr. Roman Zenner ein Webinar zu automatisiertem Testen mit Selenium in Magento gegeben. Hier möchten wir Folien, nützliche zusätzliche Links und nun auch das Video anbieten:

Weiterlesen…

Umbenennen von Texten aus Magento-Core-Modulen

Einige Komponenten möchte man möglichst unverändert lassen. Will man aber Texte aus Core-Modulen in eine andere Sprache übersetzen, so steht man vor einem Problem: Wie können Texte aus Magento-Core-Modulen übersetzt werden, ohne dabei die Core-Dateien zu verändern? Der Antwort auf diese Frage sind wir nachgegangen und haben eine verblüffend einfache Lösung gefunden.

Beispiel: Umbenennen „Wishlist“ aus Magento-Core in „Anfragekorb“

Im folgenden Beispiel möchten wir „Wishlist“ mit „Anfragekorb“ übersetzen (um in einem Projekt einen zusätzlichen Warenkorb für Anfragen bereitzustellen). Dabei wird das Magento-Core-Modul Mage_Wishlist benutzt. Der Dateiname soll hier von „My Wishlist“ in „Mein Anfragekorb“ übersetzt werden. Dazu wird zunächst ein neues Modul mit der gewünschten Übersetzung anlegt und die zugehörige Übersetzungsdatei um folgende Zeilen erweitert:

"Mage_Wishlist::My Wishlist", "Mein Anfragekorb"

Weiterlesen…

Magento-Modul FreeProduct auf GitHub verfügbar

Das Community-Modul C4B_FreeProduct gibt es bereits seit 2011 im Blog-Post Make a gift und unter Magento Connect. Nun gibt es das Modul auch auf GitHub: https://github.com/code4business/freeproduct. Wir freuen uns auf zusätzliche Nutzer, über Kommentare und Issues und über Pull-Requests.

Tier prices for Magento custom options

Presentation of Dr. Nikolai Krambrock at Developers ParadisePresentation of Dr. Nikolai Krambrock at Developers Paradise 2014

Magento allows tier prices for products and prices for individual options. However, tier prices for individual options are not supported. Tier prices for individual options are needed when selling promotional items or textiles with custom imprints. As an example, these are prices for pens with custom printings or engravings:

Price from050100
€/item0,45 €0,39 €0,37 €
+ Laser engraving5,00 €0,19 €0,15 €
+ Screen printing4,50 €0,17 €0,13 €
+ Pad printing4,00 €0,16 €0,12 €

Weiterlesen…

Magento-Forschungsarbeit zum Download

Im Rahmen einer Forschungsarbeit haben Fabian Schmengler und Dr. Nikolai Krambrock typische Probleme bei der Entwicklung von Magento-Modulen analysiert. Zu der Forschungsarbeit gibt es eine Übersicht und Erklärung. Die Ergebnisse wurden unter anderem auf der Meet Magento 2013 vorgestellt. Nun gibt es die komplette Forschungsarbeit mit dem Titel „Ein Konstruktionsansatz zur Anwendungsentwicklung mit unstabilen PHP-Frameworks“ zum Download. Die Arbeit geht weit über den Vortrag hinaus und liefert konkrete Best Practices für die Entwicklung mit Magento.

Hier noch das erste Kapitel als HTML, um einen Überblick zu vermitteln:
Weiterlesen…

Update auf Magento Enterprise Edition 1.13.0.2

(the English translation is in the bottom)

Wir haben kürzlich eine umfangreich modifizierte Magento Enterprise Edition 1.12 Instanz auf 1.13.0.2 upgedatet und sind auf einige Stolpersteine gestoßen, die vor dem Update bekannt sein sollten:

  1. Geänderte API bei partieller Indizierung
  2. Eindeutige URL keys
  3. shell_exec Abhängigkeit in Cronjob

Geänderte API bei partieller Indizierung

Die offensichtlichste Änderung in EE 1.13 ist das neue Indexing-System. Wir haben besonderes Augenmerk darauf gelegt, da wir den partiellen Indexer in einem eigenen Import-Skript triggern, um nahtlose Imports im Laufe des Tages zu ermöglichen. Die Umstellung lief erstaunlich gut, es gab nur eine Stelle im Code, die für das neue Indexer API angepasst werden musste.

Bisher nutzten wir die processEntityAction() Methode, um den Indexer für einzelne Produkte zu triggern. Diese wurde durch logEvent(), mit den folgenden Parametern, ersetzt:

Mage::getSingleton('index/indexer')->logEvent(
  new Varien_Object(array(
    'id' => $product->getId(),
    'store_id' => $product->getStoreId(),
    'rule' => $product->getData('rule'),
    'from_date' => $product->getData('from_date'),
    'to_date' => $product->getData('to_date')
  )),
  Enterprise_TargetRule_Model_Index::ENTITY_PRODUCT,
  Enterprise_TargetRule_Model_Index::EVENT_TYPE_REINDEX_PRODUCTS
);

Weiterlesen…

Werkzeuge für die Entwicklung von Magento-Modulen

Im Rahmen einer Forschungsarbeit haben Fabian Schmengler und Dr. Nikolai Krambrock typische Probleme bei der Entwicklung von Magento-Modulen analysiert. Zu der Forschungsarbeit gibt es eine Übersicht und Erklärung. Dieser Post zeigt eine Übersicht von Werkzeugen, die uns geholfen haben die Maßnahmen umzusetzen, um häufigen Problemen Herr zu werden.Presentation at Meet Magento about Carbon Development Process
Vortrag zu Carbon Development von Dr. Nikolai Krambrock – Meet Magento 2013
Weiterlesen…

Übersicht von Maßnahmen und Problemen bei der Entwicklung von Magento-Modulen

Im Rahmen einer Forschungsarbeit haben Fabian Schmengler und Dr. Nikolai Krambrock typische Probleme bei der Entwicklung von Magento-Modulen analysiert. Außerdem wurden – teils durch Interviews, teils durch Recherche und Test – Maßnahmen ermittelt, um den Problemen Herr zu werden. In diesem Post werden Probleme und Maßnahmen gegenüber gestellt. Zu der Forschungsarbeit gibt es eine Übersicht und Erklärung. Die Probleme und Maßnahmen können für eine Erklärung jeweils angeklickt werden.

Weiterlesen…

Maßnahmen ergreifen bei der Entwicklung von Magento-Modulen

Im Rahmen einer Forschungsarbeit haben Fabian Schmengler und Dr. Nikolai Krambrock Maßnahmen analysiert, die bei der Entwicklung von Magento-Modulen eingesetzt werden können. Zu der Forschungsarbeit gibt es eine Übersicht und Erklärung. Ein Teil dieser Maßnahmen stammen aus problemzentrierten Interviews, deren Mitschrift heruntergeladen werden kann. Die Maßnahmen werden hier erklärt und in einen Kontext mit dem Problemen gesetzt.

Weiterlesen…

Mögliche Probleme bei der Entwicklung von Magento-Modulen

Im Rahmen einer Forschungsarbeit haben Fabian Schmengler und Dr. Nikolai Krambrock typische Probleme bei der Entwicklung von Magento-Modulen analysiert. Zu der Forschungsarbeit gibt es eine Übersicht und Erklärung. Zur Ermittlung der Problem wurden problemzentrierte Interviews durchgeführt, deren Mitschrift heruntergeladen werden kann. Die in den Interviews genannten Probleme werden hier tabellarisch und textuell erklärt. Die Maßnahmen zum Abwenden der Probleme werden in den Maßnahmen erklärt. Zudem gibt es eine Zuordnung zwischen Problemen und Maßnahmen.

ProblemTätigkeit
P1 Ungenaue oder widersprüchliche AnforderungenAnalyse
P2 Zusätzlicher Recherche-SchrittAnalyse
P3 Zeitliche Aufwandschätzung falschEntwurf
P4 Formaler Entwurf ist erschwertEntwurf
P5 Know-How von erfahrenen Entwicklern wird nicht ausgeschöpftEntwurf
P6 Anlernen dauert langeEntwurf, Codierung
P7 Debugger und/oder Versionskontrolle wird nicht verwendetCodierung
P8 Geringe Code-Qualität (insb. Wartbarkeit und Zuverlässigkeit) CodierungCodierung
P9 Unerwartete SeiteneffekteCodierung, Test
P10 Viele Iterationen zwischen Codierung und TestCodierung, Test
P11 Automatisierte funktionale Tests sind aufwändigTest
P12 Unit Tests sind aufwändig und ineffektivTest
P13 Geringe Code-Qualität von Fremd-ExtensionsIntegration
P14 Mehrere Schleifen zwischen Layoutern, Templatern und EntwicklernIntegration
P15 Für Entwickler aufwändige Einarbeitung in WerkzeugeIntegration
P16 Fehleranfälliges DeploymentIntegration
P17 Hinterhof-ImageAllgemein
P18 Viele Change RequestsAllgemein

Weiterlesen…