With Black Friday approaching, ecommerce retailers will be competing to attract mobile shoppers. For most retailers, however, this presents a challenge, as mobile traffic is rising but conversions lag behind. And the main culprit for poor performance is slow-to-load pages. As the Aberdeen Group points out, for every one-second delay it takes a page to load, the result is a 7-percent loss in conversions. To address this problem, Google launched Accelerated Mobile Pages (AMP), which delivers a consistently fast experience to handheld devices.
Magento is becoming a Progressive Web Application platform. That is to say, we at Magento are making a suite of tools for building online stores as Progressive Web Applications. These tools will help developers learn PWA techniques, build lightning-fast PWA frontends, and create PWA components and extensions for reuse or sale on the Magento Marketplace. Taken together, we’re tentatively calling this suite of tools the Magento PWA Studio.
This blog post summarizes current thoughts on the proposed Magento persistence layer for Magento 2. This work is currently not assigned to be completed by a specific release. This blog is part of a series sharing internal thinking as we progress to gain community feedback as we proceed.
Contributions to the Magento Open Source or Magento Commerce is the best way to give back to the Magento community, it helps to have constant improvement of the framework, keep it up to date with the development tools, best practices. To recognize the efforts, Magento is putting in place a program that will track and allow rewarding Magento Solution Partners for their contributions. Magento will keep track of every pull request which comes from the partner and partners with the best track record of contributions will be specifically promoted by Magento and have a variety of benefits available through the Magento Solution Partner Program. This will provide better visibility on the partners’ landscape in the community and access to the promotion during Magento events.
The Magento 2.2 launch is quickly approaching and that means that Magento Marketplace’s Extension Quality Program (EQP) will soon start accepting extensions and themes compatible with Magento 2.2, even before the product officially launches.
GraphQL is an API style that Facebook has released as open source that is getting traction on other projects, including GitHub. This blog post explores reasons why GraphQL could be interesting for Magento 2 to add alongside REST and SOAP as web API protocols.
Magento uses the EAV (Entity Attribute Value) model so that Administrators can dynamically add attributes to entities such as “Product” and “Customer. This blog post provides a quick overview of the EAV model as a precursor to future blog posts discussing the planned introduction of a higher-level database persistence API.
This blog post explores the proposed new strategy to simplify the Magento installation and upgrade processes. This new concept will allow a developer to get away from writing updates for each new version in favor of declaring the final result that the developer wants to achieve.
While chatting with some folks in the MageFront Slack channel, a question came up of “should HTML be removed from layout files.” Currently containers in the layout files have HTML markup in attributes. It avoids “yet another template file” but at the cost of mixing HTML into layout files blurring the line between markup and structural layout information. This blog post describes possible strategies for such a change.
The startSetup() and endSetup() methods are used in setup scripts. They are often at the beginning and the end of an upgrade/install method, like in “upgrade()” method of Magento/Catalog/Setup/UpgradeData.php
The question is “do you really need them?” Or does it just “look necessary”? This blog post explores what these functions do and then explains when you do and do not need to use these methods.
We are considering some changes in allocating IDs for entities. This includes well known entities (Product, Category, Customer, Order, etc.) and other secondary entities (newsletter subscriptions, authentication rules, etc.). This blog post discusses pros and cons of different strategies with a focus on Magento. We wanted to open this discussion up for community feedback. This is being considered as a part of possible future database API work. Comments are welcome!
Service contracts (defined using PHP interfaces) are currently included in same module that implements the interfaces and are versioned with the rest of Magento. One strategy under consideration is to separate into two modules the PHP interfaces that define service contracts and their implementation. The version number of the modules holding the service contracts would then only change if the contract changes. This provides more stability for extension developers.
If you have tried to implement a payment integration in Magento, you might have had a trouble with the sale (authorize & capture) payment operation. This post describes how the Place an Order flow is implemented in Magento, the “bridge” between Magento and payment service providers, and how to implement the sale operation when using custom payment methods without breaking the Place an Order flow.
Magento purchased the Bluefoot CMS extension from Gene Commerce (thanks guys!) and are merging it into Magento 2.3 Enterprise Edition as a part of the standard core product. This extension provides a drag-and-drop interface for creating rich content with embedded widgets. This blog post describes the current integration vision (this vision is subject to change) and the capabilities that both theme developers and Admin users will have. Feedback is welcome!
I like microservices – I have used them on some big projects. But should Magento move to a microservice architecture? I think Magento should become microservice capable, but not mandate them. I like how a recent tweet put it “Microservices have yielded simpler components – but more complicated systems”.
At the end of the Imagine conference this year, instead of the traditional bar camp, Sherrie Rohde tried something new – DevExchange. Rather than presentations, groups of developers shared there experiences and thoughts on a current hot topic. The first topic I sat in on (well, stood up for really – there were almost as many people standing as sitting) was on Headless Magento.
This post is first in a series talking about planned improvements to the persistence layer in Magento 2. Currently, Magento 2 “business logic” has SQL queries directly embedded into the code. One of the areas of active investigation within Magento is to improve the separation of business logic from persistence logic. This blog post is a high-level introduction to the scope of work planned. This work is still reasonably early in the research cycle.
Magento Dependency Injection implementation comes with the very powerful concept of Virtual Types. However, with great power comes great responsibility. Virtual types provide a declarative way to create multiple instances of a single PHP class, each with a different constructor argument. This allows developers to implement new functionality or change Magento behavior with less code and so with fewer bugs. As with any other subject in programming, a good naming of virtual types allows writing code that is easy to understand and support. In this post we describe the future naming scheme that Magento will be using from now on for naming of virtual types. Feedback is welcome!
You can buy extensions from the online Magento Marketplace (marketplace.magento.com) and they appear in your Composer repository for download (repo.magento.com), but how does this work behind the scenes? Why do I need to go through Marketplace to get free extensions, but not to get Magento Community Edition (CE)? And why does Magento Enterprise Edition (EE) appear only after I pay? This post describes the relationship between the Marketplace online store, the Composer repository, and the entitlements that link the two.
In the introductory post to the Magento developer blog, Ben Marks mentioned a number of developer-focused initiatives which we are implementing this year. Rather than keep you all guessing, I'd like to share our roadmap for these initiatives.