As we move into 2018, it is important to take a few moments to look back at how far we, as a community, have come in 2017. For this update, we would like to share with you the yearly statistics and some choice memories of the year.
In my first post about Community Collaboration in Magento, I touched on the community’s tireless bug-squashing and gave an overview of how the Magento Community Team processes pull requests (PRs). In this post, I will dig a little deeper into how you, as members of the community, can contribute. I will also go behind the scenes of the Magento 2 repository.
November 2017 was an exciting mix of contribution days, community project work, and of course pull request processing. Coming off the back of the #SQUASHTOBERFEST event, the core team and maintainers had their work cut out with the amount of open pull requests the community has provided. This month saw a record level of processed pull requests as well as a fantastic level of new contributors.
The Instant Purchase module contribution by Creatuity is an excellent example of community initiative. Creatuity took risks on their own and implemented the whole module from scratch without being certain whether it would be accepted to core.
This module allows all merchants on the Magento 2 platform to offer a streamlined, single touch process by which customers can make purchases. This feature utilizes the Braintree vaulted credit card method that’s native to Magento 2, allowing logged-in users to place an order with a single touch that’s billed and shipped to the default information already stored on their account.
Keeping in line with our efforts to improve the quality of all extensions on Marketplace, as of 1/2/18 we will be implementing Varnish cache validation during Technical Review for all M2 submissions.The Varnish test verifies products do not break Varnish caching when in production mode.
October 2017 was the debut of our #SQUASHTOBERFEST event, focusing on prioritizing issues in Magento Commerce and Open Source 2.2 to be squashed by the community. We had high expectations for this event, and the community did not let us down. We had the largest number of pull requests in a month ever. As a token of our thanks, any contributor with two or more submitted pull requests over this event will receive a limited edition Magento t-shirt.
Enterprise companies need to leverage the power of a strong CMS with a best-in class ecommerce system, but for too long, none of the existing platforms on the market provided both. Drupal's ecommerce options have historically been limited, and Magento’s primary concern is more with commerce than content. Combine the two, and you've got a best in class use case for each system.
Here are five lessons Third & Grove learned when doing this type of integration.
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!