geschrieben von Ashlee Colliver
am 8. Dezember 2016 - 20:45

We all knew it was coming, it was only a matter of time before Google officially announced mobile-first indexing. This means that Google will first look at the mobile version of a website for its various ranking markers. If a site doesn’t have a mobile version, then it will look at the site’s desktop version.

Why is this change needed?

The change comes from Google hearing feedback for quite some time. From a user’s perspective, it will make mobile searches much more efficient and useful. Google gets more searches from mobile devices than desktop on a daily basis, but the ranking system only looks at the desktop version of content to decide if it is relevant to the user’s search. If the mobile version of the site has less content than the desktop page, then the mobile user may not get the information they are looking for. Currently, while Google searches are mobile the actual index is desktop, and this change will align indexing with many user’s primary search…

geschrieben von Fabian Schmengler
am 8. Dezember 2016 - 1:43

I’m proud to annouce that I will present the Nomad Mage session of January 2017. Nomad Mage is the Magento offspring of Nomad PHP and describes itself as:

Nomad Mage® is a virtual user group for Magento developers who understand that they need to keep learning to grow professionally. We meet online monthly to hear some of the best speakers in the community share what they’ve learned.

My topic: “Keep Magento Out of Your Magento Extensions – Refactoring to Framework Independent Code”

To port an existing Magento 1 extension to Magento 2, it can be helpful to first extract the business logic into a reusable library. This also makes for more testable and future-proof code. But how can it be done?

On Nomad Mage I’m going to walk through real examples to show you how such a refactoring can be approached. Although we will focus on refactoring existing Magento 1 extensions, the patterns you…

geschrieben von Fabian Schmengler
am 8. Dezember 2016 - 1:43

Leider ist der Eintrag nur auf Englisch verfügbar.

The post Learn Refactoring to Framework Independent Code appeared first on

geschrieben von
am 7. Dezember 2016 - 18:30
Be Careful with the "new-less" form of uiClass object instantiation:

Last time we said Magento’s uiClass based objects don’t require the new keyword. This is true. However, when you’re using the inheritance features of these objects its possible to supply a custom constructor. If you do this, and your custom constructor function isn’t written in a very specific way, the new-less feature stops working.

geschrieben von
am 7. Dezember 2016 - 17:59
This entry is part 5 of 5 in the series Magento 2: uiElement Internals. Earlier posts include Magento 2: Defaults, uiElement, Observables, and the Fundamental Problem of Userland Object Systems, Magento 2: Javascript Primer for uiElement Internals, Tracing Javascript's Prototype Chain, and Magento 2: uiElement Standard Library Primer. This is the most recent post in the series. Today, after our string of javascript primer articles, we’re ready to really start. While we’ve called this series “uiElement Internals”, before we can talk about uiElement objects, we need to talk about uiClass objects. The uiClass module returns a javascript constructor function. However, […]
geschrieben von Covos
am 7. Dezember 2016 - 13:03
Ab und zu fällt in einem Theme auf, dass plötzlich break-Tags ( [crayon-584806ae825cf553310234/] ) in der Artikelbeschreibung auftauchen, wo jedoch in der Artikelbeschreibung keine sind. Es ist hierbei egal, ob man mit dem WYSIWYG-Editor arbeitet oder mit der HTML-Ansicht. Im … Weiterlesen →
geschrieben von
am 6. Dezember 2016 - 20:12
This entry is part 4 of 4 in the series Magento 2: uiElement Internals. Earlier posts include Magento 2: Defaults, uiElement, Observables, and the Fundamental Problem of Userland Object Systems, Magento 2: Javascript Primer for uiElement Internals, and Tracing Javascript's Prototype Chain. This is the most recent post in the series. Today we’ll wrap up our javascript primer before diving head first into Magento’s uiElement internals. On the menu? A whirlwind tour of some Magento RequireJS helper modules. We’ll be running today’s code from the javascript console on a loaded Magento 2 page. The specific code mentioned here is from […]
geschrieben von Fabian Schmengler
am 6. Dezember 2016 - 15:35
Column not found: 1054 Unknown column ‘sales_bestsellers_aggregated_yearly.product_type_id’ in ‘field list

You might receive this error message in a fresh Magento 1.9.3 installation with sample data when trying to log into the admin panel. I got it after installing and found a few reports online, but no solution.

I don’t know the root cause yet, but to be able to log in again, you can set a different admin startup page:

n98-magerun config:set admin/startup/page system/config n98-magerun cache:clear config

If you don’t have magerun installed (you should!), change the value in the core_config_data table instead and delete the cache.

Now delete the adminhtml cookie in your browser and you can log in again. Just don’t try to open the dashboard.

Full Stack Trace a:5:{i:0;s:698:…
geschrieben von
am 5. Dezember 2016 - 20:45

In doing research for the new uElement Internals series, I discovered that Magento’s UI Component object constructors (uiClass, uiElement, uiCollection, etc) can create new objects without the use of the new keyword.

//both return a new `UiElement` object object = new UiElement; object = UiElement();

This makes these constructor objects closer in behavior to Magento’s base helper classes like Object and Array. It is curious, however, that the view model registration code

#File: vendor/magento//magento2-base/lib/web/mage/layout.js function initComponent(node, Constr) { var component = new Constr(_.omit(node, 'children')); registry.set(, component); }

choses to use the new keyword when instantiating these objects. Perhaps it’s a sign…

geschrieben von Fabian Schmengler
am 5. Dezember 2016 - 15:00

The Magento core methods to generate PDF files are rather unflexible. An alternative are tools that convert HTML to PDF.

In our current Magento 2 project, which we (integer_net) develop together with Stämpfli AG, there is a requirement to dynamically create a PDF catalog based on selected products, which has almost the same layout as the product lists in the shop. So, generating this PDF based on HTML suggested itself.

In this article I present our solution, which integrates wkhtmltopdf with the Magento layout. At the end you will find a link to the base module on Github.

Minimal Example

This is how easily the module can be used if you want to deliver a layout as PDF instead of HTML:

use Staempfli\Pdf\Model\View\PdfResult; class Example extends \Magento\Framework\App\Action\Action { public function execute() { $result = $this->…
geschrieben von Fabian Schmengler
am 5. Dezember 2016 - 15:00

Die Core Methoden zum Generieren von PDF Dateien sind auch in Magento 2 eher unflexibel. Eine Alternative sind Tools zum Konvertieren von HTML zu PDF.

In unserem aktuellen Magento 2 Projekt, das wir (integer_net) gemeinsam mit der Stämpfli AG entwickeln, gibt es die Anforderung, aus ausgewählten Produkten dynamisch einen PDF Katalog zu erstellen, der im Prinzip das gleiche Layout hat wie die Produktlisten im Shop. Die PDF aufgrund von HTML zu generieren lag also nahe.

In diesem Beitrag stelle ich unsere Lösung vor, die wkhtmltopdf mit dem Magento Layout integriert. Am Ende gibt es auch einen Link zum Basismodul auf Github.


geschrieben von Daniel Becker
am 5. Dezember 2016 - 14:36

PAYONE hat in Kooperation mit Statista eine aktuelle Online-Payment Studie 2016 veröffentlicht: Von Black Friday bis Cyber Monday saß das Geld so locker wie nie. Den Löwenanteil des Umsatzes erwirtschafteten Magento Shops. Diese und andere spannende Studienergebnisse heute im Blog.   Die Studie Untersucht wurde das Kaufverhalten im Zeitraum vom 25. bis 28. November. Mit 1,252

The post Magento Shops: Umsatz im Weihnachtsgeschäft auf Rekordniveau appeared first on Regalsprecher.

geschrieben von Simon Sprankel
am 5. Dezember 2016 - 10:40
After applying the pain-in-the-ass Magento secuity patch SUPEE-8788, I encountered a „Column not found: 1054 Unknown column ‚main_table.status‘ in ‚where clause'“ error on the admin order grid. The issue is tough to debug as there are no custom templates or extensions involved in the call stack. The full error and call stack looks like that: … Magento Order Grid Column Not Found After SUPEE-6788 weiterlesen
geschrieben von
am 5. Dezember 2016 - 5:27
This entry is part 3 of 3 in the series Magento 2: uiElement Internals. Earlier posts include Magento 2: Defaults, uiElement, Observables, and the Fundamental Problem of Userland Object Systems, and Magento 2: Javascript Primer for uiElement Internals. This is the most recent post in the series. While part of a series on Magento 2, today’s topic is another pure javascript adventure. We’re going to run through some debugging techniques for tracing the javascript object prototype chain, the one we mentioned in our first javascript primer. Even if you think you understand this, you may want to read all the […]
geschrieben von
am 5. Dezember 2016 - 1:58
This entry is part 2 of 2 in the series Magento 2: uiElement Internals. Earlier posts include Magento 2: Defaults, uiElement, Observables, and the Fundamental Problem of Userland Object Systems. This is the most recent post in the series. Before we can get started exploring Magento’s uiElement object system, there are some javascript fundamentals to cover. This may be review for some of you, and may be brand new content for others. While you don’t need to have mastery of these concepts to use Magento’s new object system, if you’re trying to reason programmatically about the uiElement internals you’ll want […]
geschrieben von
am 2. Dezember 2016 - 1:00

Bringing new version of your code base may be an annoying job for you and your team if you don't have a specialist DevOps in your team. To ensure you process your deployment every time with same procedure, you could use a specific tool for that job. Especially after some Magento-Core updates it is a good way to deploy your code with one of these tools.

why using a deployment tool?

There are a lot of deployment tools in the wild. Some automate more or less than others, most use different programming languages, some need a root-server to deploy to other machines. Big benefit of these tools are speed, consistency, rollbacks and sometime parallel deployments. If you are working as team on a projects, you can guarantee that everyone deploys code the same way.


I decided to use deployer as this tool come in our native…

geschrieben von Tom Klingenberg
am 1. Dezember 2016 - 11:41

Long time no stable releases, Magerun 2 Version 1.3.0 opens up a new release cycle incorporating more and more stability fixes and improved commands for the new Magento platform.

This ones coming from SymfonyCon which reminded us for the upcoming cloud based setups we need to ship new features for which we need to ship the current version first.

We recommend to upgrade the version for everyone. Magento 2 is still an emerging field and Magerun still has some rough corners. So stay current.

Extract from
  • Fix: Fatal error when running Magerun 2 inside a Magento 1 tree (by Tom KLingenberg, #253)
  • Fix: Add missing areas to the observer list (by Pieter Hoste, #249)
  • Fix: Do not drop all sales_order_status* tables (report by Brent Jameson, fix by Tom KLingenberg, #239)
  • Fix: Prevent Mysql deadlock on admin password change (by Tom KLingenberg, #242)
  • New: Add Magento CE 2.1.2 (by Raul E Watson, #252)
  • New: Debug output on –…
geschrieben von
am 1. Dezember 2016 - 1:00

I'm really glad to open this 2016 Advent Blog. For sure, like me, you were probably confrontated to the question of the performance of your Magento project. In fact, it's definitely a common topic for all of us.

How many times, I had to explain to my customers why their shop is slow after they have been installed by their previous agency or newbie developer a 70 USD Template slowing down the whole shop. It's cheaper and even better to use the standard RWD template of Magento instead to use those multi-purpose templates. You will hear from your customer: "I don't like this template!", "ok, why not!" you will answer. But hey, the core is good enough to make something which fits to the taste of your customer and the effort is definitely the same as buying a template, fixing all the issues and customizing it for your customer.

Of course, let's be fair, it's not only those kind of templates, to not say crappy templates, which may have an impact on the…

geschrieben von
am 30. November 2016 - 23:46
@api coverage for Magento 2 Javascript:

According to this forum thread from one of Magento 2’s architects, it sounds like Magento 2.2 is going to bring @api style coverage to Magento’s RequireJS module. This is a positive step in that it will clarify which javascript functions we can rely on working version to version. This is an uncertain sign in that Magento’s core engineering team don’t have the best track record in understand what third party developers actually need. Tentatively hopeful though.

geschrieben von Covos
am 29. November 2016 - 17:06
Super ärgerlich und nervig aber mittlerweile häufiger vorgekommen: Bei der Extension Login und Bezahlen mit Amazon von Creativestyle fiel auf, dass Einstellungen, die man als Admin im Backend vornimmt nicht abgespeichert werden. Es gibt zwar jedes Mal eine nachricht „Die … Weiterlesen →