Teil 6 meiner Blog-Reihe auf integer-net.com über Framework-unabhängigen Code ist draußen: Leveraging PSR Interfaces.
Magento Extension: Estimated Delivery
Heute stelle ich eine kleine kommerzielle Magento 1.x Extension vor, an der ich mit meinem Team bei SGH gearbeitet habe:
SGH_EstimatedDelivery ($79.00)
Sie berechnet das voraussichtlicher Lieferdatum und zeigt dem Kunden wie viel Zeit übrig ist, um die Bestellung zu dem Datum zu bekommen. Diese Information kann im Warenkorb und auf Produktseiten angezeigt werden:
Continue reading “Magento Extension: Estimated Delivery”
Die Woche auf StackExchange #14 / 2016
Hier kommt das nächste Update, wieder nur mit neuen, hoffentlich interessanten, Antworten auf Magento StackExchange.
Magento 2
- Falls ihr euch gefragt habt, was “Context” in verschiedenen Magento 2 Konstruktoren tut: What is Context Object purpose in any class’s constructor DI ? How Context works?
- Sollte man den Developer Mode durch editieren von
app/etc/env.php
aktivieren? Is this good idea to change current application mode from Env.php
Magento 1
- Wie man einen “buy now” Checkout für ein einzelnes Produkt baut, das den aktuellen Inhalt des Warenkorbs nicht beeinflusst: Checkout only 1 item from magento cart
- Die Frage wurde geschlossen, könnte aber dennoch hilfreich sein: Sort products by their product id in the order they were imported (wie man Sortierung im Frontend nach Erstelldatum ohne eigenen Code ermöglicht)
- Und noch eine: Cron configuration without SSH – Magento 1.9.2.4 (mit oder ohne Aoe_Scheduler)
Die Woche auf StackExchange #12 / 2016
Hier kommt das nächste Update, dieses Mal nur mit neuen, hoffentlich interessanten, Antworten auf Magento StackExchange.
Magento 2
- Which compilation commands are needed in developer mode and when? erhielt ein paar nützliche Antworten. Das +150 Kopfgeld für die beste kanonische Antwort ist aber noch offen.
- Ich habe einige Überleungen zur effizienten Nutzung von Builders geteilt: Use preconfigured builders (e.g. for SearchCriteria) in Magento 2 Danke an Vinai für die Hilfe!
- Vermisst jemand die guten alten local code pool overrides? Lest dies: Override abstract class in Magento 2
- Verwirrt über die Vermischung von
$()
,$$()
undjQuery()
in JavaScript? What does $$ in javascript of Magento 2 mean?
Magento 1
- CMS Seiten und Blöcke programmatische speichern (z.B. in einem Setup Skript) kann kniffelig sein: Saving CMS block/page from collection removes store ID’s
- Jemand konnte ein Template einer Extension nicht ändern, aufgrund wiederverwendeter Block-Namen im XML. Ein häufiger Fallstrick: couldn’t overwrite template via xml added by external module
- Und ein Quickie, für welche Events braucht es Observer um auf Änderungen im Warenkorb zu reagieren: Is there an event that fires when the cart/quote is empty?
Design Patterns für Framework-agnostische Extensions/Plugins – Autoloading
Teil 5 meiner Blog-Reihe auf integer-net.com über Framework-unabhängigen Code ist draußen: Using Advanced Autoloading. Dieser ist allerdings nur für die Anbindung von Legacy-Anwendungen relevant, die noch kein Composer-Autoloading nutzen (Magento 1).
Vorige Teile
Die Woche auf StackExchange #11 / 2016
Hier kommt das nächste Update zu neuen, hoffentlich interessanten, Fragen und Antworten auf StackExchange.
Neue Antworten
- Falls ihr euch fragt, ob ihr Klassen mit “use” importieren oder die fully qualified Klassennamen nutzen sollt, lest Magento 2: use statement versus direct class path?
- Was ist aus den Layout Handles
customer_logged_in
undcustomer_logged_out
in Magento 2 geworden? Magento2. Layout Handle customer_logged_in - Wer ein passwortgeschütztes Staging-System mit Varnish aufsetzen will, bitte sehr: Setting up Magento Staging Environment with Restricted Access
- Meine Frage zu Translation Scopes in Magento 2 hat doch noch eine Antwort bekommen, die eine einigermaßen zufriedenstellende Lösung für Übersetzungs-Konflikte aufzeigt: How does translation scope work in Magento 2?
- Und noch ein Quickie: Der beste Weg, auf geänderte Konfigurationswerte in Magento 1 zu reagieren: How to detect changed fields only in admin section?
Neue Fragen
- Nach einem Tag Magento 2 Entwicklung mit JavaScript, teilte ich die frustrierende Zusammenfassung auf Twitter, was einige Aufmerksamkeit erregte:
Today’s Magento 2 workshop: 3h installing, 1h explain DI, plugins & Co, 2h coding & debugging, 2h waiting for static content to be deployed
— Fabian Schmengler (@fschmengler) 18. März 2016
Es sieht aus als wäre ich nicht alleine mit dieser Erfahrung , allerdings ist es nicht wirklich so vorgesehen. Das führte mich zu der Frage Which compilation commands are needed in developer mode and when? - Es scheint einen Zeitzonen-Bug bei den Order Reports in bestimmten Magento-Versionen zu geben. Ich konnte ihn aber noch nicht ganz lokalisieren: Magento Reporting – Is it bucketing by UTC?
Die Woche auf StackExchange #10 / 2016
Hier kommt das nächste Update zu neuen, hoffentlich interessanten, Fragen und Antworten auf StackExchange.
Neue Antworten
- Marius hat sich meiner Frage zu generierten PHTML Dateien in Magento 2 angenommen und auch herausgefunden, wann sie genutzt werden: When and how are phtml templates generated in view_pre geprocessed?
- Ich habe einen Bug in der JavaScript Funktion
Mage.Cookies.clear()
gefunden. Offenbar hat sie noch nie funktioniert, im Core wird sie allerdings auch nicht genutzt. Hier beschreibe ich den Fix: Mage.Cookies.clear() not working - In How to limit characters in system.xml for textarea in magento zeige ich, wie einfach Validierung von Eingabefeldern in der Magento-Konfiguration möglich ist (Spoiler: Man braucht kein jQuery).
- Eine interessante Optimierungsmöglichkeit bietet sich, wenn man die URL Rewrites für Produkte nicht braucht: How do I get Magento to always give the /catalog/product/view/id/ style url for products?
- Ein Problem, das auch andere Magento-Nutzer kennen könnten, die Varnish mit HTTPS zum laufen bekommen wollen: https redirection loop even with X-Forwarded-Proto
Neue Fragen
- Ich habe mir die Frage gestellt, ob es als Extension-Entwickler Sinn macht, Magento komplett als dev-requirement zu definieren: Magento 2 as composer dev requirement for extensions – die Antwort ist wohl wie so oft “it depends”. Es war aber auf jeden Fall schon interessant, Einblicke z.B. von Aheadworks und Fooman zu bekommen.
- Auf How does translation scope work in Magento 2? hat immer noch keiner geantwortet und ich fürchte, das liegt daran dass es keine Antwort gibt. Sicherheitshalber habe ich mal ein Kopfgeld ausgesetzt. +50
Die Woche auf StackExchange #9 / 2016
Ich versuche mich an einem neuen wöchentlichen Format im Blog mit einer Zusammenfassung von neuen Fragen und Antworten auf StackExchange rund um PHP und Magento. Mal sehen, was daraus wird, und los geht’s:
Neue Antworten
- In Creating Integration Tests for Magento 2 Modules erkläre ich, wie eigene Integrationstests außerhalb von
dev/tests/integration
platziert werden können. - In Protect a site from wappalyzer untersuche ich, ob es möglich ist eine Magento Seite vor automatischer Erkennung zu schützen, und wie.
- Ein Quickie zu Design Patterns: Data Mapper – should I use dependency injection?
Offene Fragen
- Was ist mit der neuen globalen
__()
Funktion aus Translation Scopes geworden: How does translation scope work in Magento 2? - Ich dachte, ich hätte die Generierung von statischen Dateien in Magento 2 verstanden, aber was machen die Templates da: When and how are phtml templates generated in view_preprocessed?
Zum Thema Magento 2 wird es in den kommenden Wochen sicher noch mehr geben, da ich da gerade tiefer in die Entwicklung einsteige.
Design Patterns für Framework-agnostische Extensions/Plugins – View Model
Teil 4 meiner Blog-Reihe auf integer-net.com über Framework-unabhängigen Code ist draußen: Preparing Data For Output
Vorige Teile
Design Patterns für Framework-agnostische Extensions/Plugins – Bridge
Teil 3 meiner Blog-Reihe auf integer-net.com über Framework-unabhängigen Code ist draußen: Building Bridges