geschrieben von Sonja Riesterer
am 17. Februar 2017 - 10:50

In etwa zwei Wochen ist es wieder Zeit für einen der Höhepunkte in unserem Veranstaltungskalender. Nein, damit ist nicht Karneval gemeint, auch wenn wir dafür nach Köln fahren. Stattdessen geht es um die MageUnconference. Wir unterstützen das Event auch in diesem Jahr wieder als Hauptsponsor und werden mit dem gesamten Team vor Ort sein.

Was ist die MageUnconference?

Wie schon in den letzten beiden Jahren treffen sich ein Wochenende lang Magento-Interessierte. Anders als bei einem Hackathon wird nicht programmiert. Anders als bei einer Konferenz gibt es auch keinen vorab geplanten Vortragsplan. Stattdessen werden an beiden Veranstaltungstagen morgens Themen vorgeschlagen, passende Vortragende aus den Teilnehmern erkoren und dann von allen darüber abgestimmt, welche Themen sie am meisten interessieren. Daraus ergibt sich dann der Plan des jeweiligen Tages.

geschrieben von
am 17. Februar 2017 - 1:00

Do you remember how four years ago everything needed to be responsive? Well, in the next two years, the best performing sites are going to be Progressive Web Apps (PWA).

So what makes a site a Progressive Web App?

It’s actually a combination of technologies and approach to implementation that results in a set of qualities. As defined by Google, they are:

  • Progressive - Works for everyone, features enable if they’re compatible with device.
  • Responsive - Caters to a wide range of device sizes.
  • Connectivity independent - Saves content for later to maintain functionality if offline or on poor quality connection
  • App-like - Feels like an app to the user with app-style interactions, navigation and shell.
  • Fresh - Loads in latest content when it can
  • Safe - Everything is over HTTPS for security.
  • Discoverable…
geschrieben von
am 16. Februar 2017 - 17:47

Tangentially Magento related: Magento uses the lusitanian/oauth composer package to handle some oAuth related tasks. In addition to the usual “create the cryptic Authorization: headers” code you’d expect to find in an oAuth library, there’s also these two folders of code

https://github.com/Lusitanian/PHPoAuthLib/tree/master/src/OAuth/OAuth1/Service

https://github.com/Lusitanian/PHPoAuthLib/tree/master/src/OAuth/OAuth2/Service

Each service class listed here attempts to capture each individual oAuth API’s unique take on how to authenticate, authorize, and call an API endpoint for a particular third party service.

Whenever someone like me quips that “oAuth is a tire fire…

geschrieben von Covos
am 16. Februar 2017 - 10:36
Ab Magento Version 1.9 werden die Bestellbestätigungs-eMails nicht mehr per Event verschickt (also nach erfolgreicher Bestellung) sondern über eine Mail-Queue, die über den Cron angestoßen wird. In vielen Fällen wird die Bestellbestätigung also nur alle 15 Minuten verschickt. Ausgerechnet bei … Weiterlesen →
geschrieben von
am 15. Februar 2017 - 23:40

In a typical adminhtml UI Form Component, each individual form element has a corresponding view model object. For text input fields, these view models come from the constructor function returned by the Magento_Ui/js/form/element/abstract RequireJS module.

The view model’s value property, an Knockout observable object, contains the field’s value.

This value property is set with the uiElement’s links feature.

#File: vendor/magento/module-ui/view/base/web/js/form/element/abstract.js defaults: { /* ... */ links: { value: '${ $.provider }:${ $.dataScope }' } }

The links default will set observable values on an object at the time of instantiation by pulling items from the uiRegistry. The above configuration sets the value property. The key it uses to pull values from the uiRegistry is created by the ES6 Template Literal String ${ $.provider }:${ $.dataScope }. The .provider property comes from UI Component…

geschrieben von Fabian Schmengler
am 15. Februar 2017 - 23:03
This is my weekly Kata post. Read the first one to learn what it is all about.

Last week: Roman Numerals

I liked that kata. I started with different approaches that did not work and found a simple one in the end, aided by the tests.

My first tries ended at something like this:


Expected :'IX'
Actual :'VIV'

As soon as it occured to me to treat “IV”, “IX” and so on as single digits, it was dead simple.

When I implemented the reverse, I noticed that it would be easier to check for two character “digits” like “IV” first, then for single characters. Instead of using the same list of (arabic,roman) tupels for both tasks, I decided to explicitly write both as constants $romanDigitsByValue and $romanDigitsByLength. This is a minor duplication of knowledge but I made that sacrifice to make the code more obvious. As long as these…

geschrieben von Fabian Schmengler
am 15. Februar 2017 - 23:03
Dies ist mein wöchentlicher Kata Post. Lies den ersten um zu erfahren, worum es hier geht.

Letzte Woche: Römische Zahlen

Die Kata war aufschlussreich. Ich habe mit verschiedenen Ansätzen begonnen, die nicht funktionierten und fand schließlich, mit Hilfe der richtigen Tests eine einfache Lösung.

Meine ersten Versuche endeten mit Ergebnissen wie diesem:

Expected :'IX'
Actual :'VIV'

Sobald ich auf den Trichter kam, “IV”, “IX” usw. wie einzelne Ziffern zu behandeln, war die Lösung einfach.

Als ich die Umkehrfunktion implementierte, stellte ich fest dass es in dem Fall einfacher ist, zuerst die “Ziffern” mit zwei Zeichen wie “IV” zu prüfen, dann die mit einem Zeichen. Anstatt also die selbe Liste von (arabic,roman) Tupeln für beide Aufgaben zu nutzen und unterschiedlich zu sortieren, entschied ich mich für zwei explizite Konstanten $…

geschrieben von
am 15. Februar 2017 - 20:37
This entry is part 13 of 13 in the series Magento 2 UI Components. Earlier posts include Magento 2: Introducing UI Components, Magento 2: Simplest UI Component, Magento 2: Simplest UI Knockout Component, Magento 2: Simplest XSD Valid UI Component, Magento 2: ES6 Template Literals, Magento 2: uiClass Data Features, Magento 2: UI Component Data Sources, Magento 2: UI Component Retrospective, Observables, uiElement Objects, and Variable Tracking, Magento 2: uiElement Features and Checkout Application, Magento 2: Remaining uiElement Defaults, and Magento 2: Knockout.js Template Primer. This is the most recent post in the series. The quick version: I’ve just released […]
geschrieben von Tim Hahn
am 15. Februar 2017 - 10:01

Überall und zu jeder Zeit einkaufen können – das ist nicht mehr neu, sondern ganz alltäglich und daher ein zentrales Kundenbedürfnis, dem Händler nachgehen müssen. Denn nur, wer diesen Bedürfnissen standhält, wird stabile und wertvolle Kundenbeziehungen aufbauen können. Die Kundenforderung nach vielfältigeren, besser verknüpften Services einerseits und die Hoffnung, den Umsatz zu steigern sowie die

The post 6 Tipps – ganz entspannt den Omnichannel-Commerce meistern appeared first on Regalsprecher.

geschrieben von Ablyakim Ablyalimov
am 14. Februar 2017 - 15:43

Today, I’ll tell you how to simplify management of your product custom options with a shell script. You just need to add a criteria for a product collection, and each option of every product from the collection will be updated automatically. Our script will fetch product collections by product SKU value.

First of all, we need to add a shell script.

<?php require_once 'abstract.php'; class Atwix_Shell_Manage_Options extends Mage_Shell_Abstract { /** * @inheritdoc */ public function run() { } } $shell = new Atwix_Shell_Manage_Options(); $shell->run();

Our script will perform two scenarios – remove and create options with their values.

The “run” method looks the following way:

/** * @inheritdoc */ public function run() { $args = $this->_args; $method = key($args); if ($method == 'add') { $this->…
geschrieben von
am 13. Februar 2017 - 1:00

It's Monday morning, so you check your KPI Dashboards in Google Analytics and Magento. Everything looks ok. Great, you can get on with answering some emails. If there's a ring of truth here, then you're not alone.

Analysing performance of an ecommerce store does not need to be a data-crunching chore. It should be an exciting opportunity to learn something new about your customers and how they use your website. These insights can then be used to take pro-active actions to improve profitability and win the admiration of your colleagues!

Why Measure Performance?

I have yet to find any crystal ball solutions, so the next best thing is to use past performance as an indication of where you are heading, and why. Then add your knowledge, expertise and some gut-feeling to determine the best actions to take to improve on past performance. Simple.

If you don't have an analyst on your team, please don't ignore this vital aspect of running an ecommerce site…

geschrieben von Tom Klingenberg
am 12. Februar 2017 - 2:20

Recent Magento 2 releases and the longer list of fixes demanded a new stable release of Magerun 2.

Jürgen Thelen kindly ported the admin:notifications and design:demo-notice commands, so each time you see the COW warning in the backend there is a relief now. So a warm welcome to Jürgen, we still have PRs from him in the pipe.

More dedicate cron control is available with sys:cron:schedule. Thanks to Pieter Hoste not only for his contributions to Magerun but also for his good work keeping track of Magento 2 upstream issue progress which is easy to get lost with. I really appreciate it, it’s always good to have some feedback when working with the rough edges we see day-to-day with Magento 2.

There is even more. A longer list of fixes (we keep them at the top of the change log), if you run into an issue, file it on Github. Also if you’re interested, grab an issue from the list – preferable one of the bugs – and give it a little love.

geschrieben von Alexander Steireif
am 10. Februar 2017 - 17:32

Am vergangenen Montag und Dienstag war es wieder soweit. In Frankreich haben sich Repräsentanten von Magento, Agentur-Partner, Software-Dienstleister, Entwickler und Freelancer aus ganz Europa sowie den USA in Paris eingefunden, um an der Magento Live France 2017 teilzunehmen. Die Magento Live Eventreihe gehört, im Gegensatz zu der jährlich in Deutschland stattfindenden Meet Magento, zu den

The post Magento Live Paris 2017 – Rück- & Ausblick appeared first on Regalsprecher.

geschrieben von Vesna Mijatovic
am 10. Februar 2017 - 12:07

Magento often organizes Partner Enablement Events, such as live demos, webinars and quick start trainings. While we participated in a number of such demos and webinars, we’ve never been a part of an on-site training for sales and business development staff aimed at solution and technology partners. This changed last week in France, and here’s our overview of what happened in Paris.

Our Paris adventure started when we received an email in December from Magento’s Amy Schade informing us about the upcoming Magento Quick Start Training (targeted for sales people and Magento new hires) and when we saw her invitation, we decided to add another event to our list.

As a prerequisite, we all had to complete free Quick start pre-learning courses which really helped us to sharpen our Magento skills, fill the gaps and learn a thing or two about new Magento products.

Time passed by really quickly and we…

geschrieben von
am 10. Februar 2017 - 0:09

Keeping with UI Component form theme but drawing a wider circle, if you take a look at HTML source of a button on a backend Magento 2 HTML form, you’ll see something like the following

<button id="back" title="Back" type="button" class="action- scalable back" onclick="location.href = 'http://magento-2-1-3.dev/admin/cms/page/index/key/b202205a440f39f9cefe4724da28f8a6b1fa8b255f758f077cd9e8ef3181ca13/';" data-ui-id="back-button"> <button id="save" title="Save Page" type="button" class="action- scalable save primary ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" onclick="location.href = 'http://magento-2-1-3.dev/admin/cms/index/index/key/d82f1d2820123cf3f9144c3f42ce6cbd3ab129d72ff68b9219fd66fc98544c96/';" data-form-role="save" data-ui-id="save-button" role="button" aria-disabled="false">

These buttons were not things…

geschrieben von info@gordonlesti.com (Gordon Lesti)
am 10. Februar 2017 - 0:00
Magento 2 composer dependencies visualized as interactive D3 chord diagram.
geschrieben von
am 9. Februar 2017 - 18:56
Merged Layout schema validation error in Magento 2:

A peek at the complexity deep in Magento 2’s layout rendering engine.

geschrieben von Ivona Namjesnik
am 9. Februar 2017 - 14:17

As we determinedly move through 2017, we decided to look into things which we’re building upon. The old saying goes “If you don’t know history, you are doomed to repeat it.” so we’d like to avoid any mistakes possible by learning from the previous happenings. Here’s what happened in the SEO world in 2016. and what you can do to make those trends work in your favour.

Tea Pisac is one of our consultants. She works as a part of the Inchoo Consulting Group (ICG) which handles various marketing channels for our clients (PPC, SEO, Quality Assurance and User Experience) in order to make their websites work better and their businesses earn more.

She has been with us for…

geschrieben von Andreas von Studnitz
am 9. Februar 2017 - 12:47

Wir haben letzte Woche die gute Nachricht bekommen, dass gleich zwei Teammitglieder als „Magento Master“ ausgewählt worden sind: Fabian Schmengler in der Kategorie „Mentor“ und Sonja Riesterer in der Kategorie „Maker“. Herzlichen Glückwunsch!

Was sind „Magento Masters“?

Es handelt sich um eine offizielle Ehrung von Magento Inc., die Einzelpersonen für besonderes Engagement in der Community auszeichnet. Das kann beispielweise die Vermittlung von Wissen, das Beitragen zur offiziellen Dokumentation, die Organisation von Magento-bezogenen Veranstaltungen, oder das Halten von Vorträgen sein.

Die insgesamt 20 Nominierten werden im April auf der großen Bühne der Magento Imagine in Las Vegas geehrt, zu der sie eingeladen sind.