Einträge von shoptimax

Zierfisch oder Wal – lokale Software-Entwicklung mit Docker

Pünktlich zum 4. Geburtstag von Docker möchte ich ein kleines Fazit ziehen, ob und wie sich Docker-Container für die lokale Entwicklung im Agentur-Alltag mit sehr heterogenen Entwicklungs-Systemen (Windows Home / Pro, von 7 bis 10, Mac OS, Linux) der einzelnen Mitarbeiter bewähren können, welche Vorteile, aber auch Schwachstellen und Probleme es ggf. bei der täglichen Arbeit gibt und ob es sich lohnt, auf den blauen Wal zu setzen.

Continuous Delivery Teil 2 – Ansible Tipps

Wie bereits beschrieben nutzen wir für automatisiertes Deployment unserer Projekte aus GIT heraus Gitlab CI. Je nach GIT- Branch (bei uns sind das normalerweise „develop“, „stage“ und „master“) löst Gitlab CI unterschiedliche Aktionen aus, welche in „.gitlab-ci.yml“-Dateien in den jeweiligen Projekten definiert sind.

Update PHPMailer für ältere OXID Versionen

Bei älteren Installationen bis zur Version 4.9.7 reicht der Austausch der beiden Klassen des PHPMailer für ein Update nicht aus. Für den Fall, dass der Mailversand über SMTP erfolgt, sind zusätzliche Anpassungen am Code notwendig, die hier im Post erklärt werden.

Continuous Delivery mit Docker, Gitlab CI und Ansible

Im letzten Jahr haben wir bei shoptimax den Entwicklungs- und Deployment-Workflow stark optimiert, um Projekte möglichst effektiv umsetzen, automatisiert testen und Fehler vermeiden zu können, die z.B. bei manuellen Uploads oder Änderungen direkt auf dem Server auftreten können. Mit einem passenden Continuous Delivery Workflow kann man erreichen, dass Änderungen zeitnah und zuverlässig ausgespielt werden können und dass auf einem Server immer ein genau definierter Zustand herrscht. Nicht zuletzt werden dadurch auch die Entwickler entlastet, da sie sich nicht mehr um das Hochladen von Änderungen, Abgleichen unterschiedlicher Datei-Versionen usw. kümmern müssen und sie durch automatisierte Tests und Validierungen frühzeitig Feedback bekommen, sollte es Probleme im Zusammenspiel der Software geben.

OXID Hackathon Nürnberg 2016

Den Ruf nach einem OXID Hackathon gab es schon lange – endlich wurde dazu auch ein Termin und eine passende Location im Coworking Space Nürnberg gefunden. Ziel dieses Hackathons ist es, innerhalb der beiden angesetzten Tage gemeinsam nützliche, coole und kreative Erweiterungen rund um OXID (gern auch die OXIDforge.org) herzustellen.

Oxid Commons 2016 Rückblick

Am 02. Juni 2016 fand nach einer Pause im letzten Jahr die siebte OXID Commons in der Messe Freiburg statt. shoptimax war natürlich auch vertreten. Eine sehr gute allgemeine Zusammenfassung der Konferenz findet sich im Oxid eSales Blog, wir wollen hier v.a. auf den technischen Teil der Veranstaltung eingehen.

OXID EE MySQL Master/Slave Setup

Mit der Option für Master-/Slave-Setups bietet OXID gerade für große Shops mit regelmässigen, umfangreichen Datenänderungen über Drittsysteme einen erheblichen Performance-Hebel.
Weiss man um die technischen Hintergründe des OXID-Datenbankadapters und kennt die möglichen Fehlerquellen auf Seiten der MySQL-Datenbank-Synchronisation, spricht nichts dagegen, dieses Feature im produktiven Einsatz zu nutzen.

OXID EE Admin: Login-Fenster statt WYSIWYG-Popup?

Auf manchen Servern macht der WYSIWYG-Editor der OXID EE Probleme – klickt man auf ein Icon, um z.B. den Text farbig zu machen oder ein Bild einzufügen, erscheint statt dem entsprechenden Popup das Admin Login-Formular, obwohl man im Backend nach wie vor eingeloggt ist. Nach einigem Suchen haben wir hier die Lösung gefunden – das Problem beruht auf dem Zusammenspiel von OXID POST Variablen und Cookies mit bestimmten PHP-Einstellungen.

OXID SEO – under the hood

Da die SEO-Funktionalität in OXID nicht unbedingt selbsterklärend ist, hier ein kurzer technischer Einblick in die Erzeugung und „Archivierung“ von SEO-URLs am Beispiel von Kategorie-URLs im Shop 🙂

OXID Admin-Klassen „von außen“ aufrufen (z.B. per CRON)

Hin und wieder kommt man an einen Punkt, an welchem es praktisch wäre, eine mühsam im OXID eShop Administrationsbereich eingebaute Funktionalität auch von außen, z.B. automatisiert per CRON-Job aufrufen zu können. Als Beispiel sei ein im Admin-Bereich realisierter Artikel-Import genannt (z.B. per CSV). Hier macht einem dann spätestens die Tatsache Probleme, dass der komplette Admin-Bereich per Passwortschutz abgeriegelt ist und man die gewünschte Klasse nicht einfach so aufrufen kann – stattdessen wird man beim Versuch zum Admin-Login weitergeleitet.