Posted in Drupal
July 19, 2017
Sprint Week 2017 Recap
Acro Commerce Sprint Week has wrapped up for another year. For those who are new to this idea, each year we bring most of our staff together to have a week of fun that includes a lot of Drupal contrib work.
Contrib work is community development of all aspects of the Drupal software, including code, design/UX, documentation and more. You can read a bit more about it on our pre-sprint week blog post.
Our goals for 2017 were pretty big. We had a lot of people grouped into several teams, each working on a different aspect. Overall, we think we did pretty well!
Keep reading or jump to a section below:
Services
One of the goals of this sprint was to open up services for the Drupal Commerce cart module by adding endpoints for decoupled Drupal or 3rd party usage. This sets the stage for better cart integration with 3rd party APIs.
The team got a good start and were able to accomplish the following:
- Created /cart/init POST endpoint that will initiate a cart.
- Created /cart/{order_id} GET endpoint that will return the current state of the cart.
- Created /cart/{order_id} POST endpoint which accepts payload with items and quantities to be added to cart, and it updates the cart as per payload.
- Created unit tests to verify the functionality of the code. This still needs some work but it's a good start.
We don’t have the code to share at the moment, but, this start will be further refined and pushed out at a later date. For those interested, you can read more and follow progress at https://www.drupal.org/node/2894400.
UX
The UX team was our largest team this year. This team broke out into several smaller groups to tackle a number of items.
Material Admin Theme
Almost every single Drupal website has a custom theme that gives the website a unique look and feel. However, while the front end is custom, the majority of these sites use the default Drupal theme for the admin side of the site. This is the non-public facing part of the site.
Recently, we’ve wanted something a little more modern for the admin theme. Something that takes good design and pairs it with science-based usability decisions. For this, we’ve turned to Google’s Material Design and have started work on a new admin theme using it as a foundation.
Here’s a before and after screenshot of the Material theme in action. We’re hoping to have a 1.0 release soon.
Content list page
(Default Drupal admin theme)
Content list page
(Material admin theme)
Drupal Commerce Dashboard
The main dashboard for Drupal Commerce is still pretty bare bones. It’s basically just a list of links and descriptions, which is Drupal’s default behaviour for this type of thing. While this works, the dashboard is the first page many people see when using Drupal Commerce, so, we wanted something more intuitive and stylish.
Prior to Sprint Week 2017, one of our senior front-end developers who is spearheading this initiative had already been conceptualizing the dashboard with the Drupal Commerce community. We wanted to take this and get started on the development. Progress was made and the new dashboard is starting to take shape.
View screenshots and follow progress at https://www.drupal.org/node/2885483
Drupal Commerce Setup Wizard
Starting from scratch with Drupal Commerce can be a little confusing if you haven’t done it a few times already. There are a lot of different pieces to a store, so finding all of the initial settings can be somewhat frustrating. This is the motivation behind creating a setup wizard to guide people through the initial setup of a store. A wizard helps get the necessary configuration done quickly and easily.
Some of our team had already done some design/UX groundwork ahead of time. Like the dashboard, this sprint we just wanted to get started on the code. Once completed, the wizard will give users a step-by-step interface for setting up store details, currencies, taxes, payment processors, etc. Once these initial settings have been completed, you should theoretically be able to get started with the content of the store, such as products.
View screenshots and follow progress at https://www.drupal.org/node/2878968
Currency Setup UX
Sometimes developers aren’t the best at communicating with the rest of the world. Luckily, the rest of the world is also helping to develop the software! This was the case when one of our project managers discovered some confusing language when setting up currencies in Drupal Commerce. What was expected vs. what actually happens when using the primary setup tools didn’t match up, leading to confusion. This has been resolved and will soon make its way into a dev release of Drupal Commerce.
View the details and patch status at https://www.drupal.org/node/289396
Documentation
Another big team this year was the documentation crew. While not very exciting, documentation is critical to the usability of Drupal as well as its ongoing development. The documentation team split into two groups, one for core Drupal 8 documentation and one for Drupal Commerce 2.x documentation. Some new pages were created while others were updated for Drupal 8.
Here’s a list of where progress was made. Note that some documentation is pending review and so may be updated.
Drupal 8 Core Documentation
Writing and contributing documentation
Server Scaling and Performance
Database API documentation port to Drupal 8
- https://www.drupal.org/docs/8/api/database-api/database-api-overview
- https://www.drupal.org/docs/8/api/database-api/database-configuration
- https://www.drupal.org/docs/8/api/database-api/instantiating-a-connection-object
- https://www.drupal.org/docs/8/api/database-api/dynamic-queries/introduction-to-dynamic-queries
- https://www.drupal.org/docs/8/api/database-api/dynamic-queries/grouping
- https://www.drupal.org/docs/8/api/database-api/dynamic-queries/fields
- https://www.drupal.org/docs/8/api/database-api/dynamic-queries/expressions
- https://www.drupal.org/docs/8/api/database-api/dynamic-queries/distinct
- https://www.drupal.org/docs/8/api/database-api/dynamic-queries/count-queries
- https://www.drupal.org/docs/8/api/database-api/error-handling
- https://www.drupal.org/docs/8/api/database-api/functions-and-operators
- https://www.drupal.org/docs/8/api/database-api/fetching-into-a-custom-class
- https://www.drupal.org/docs/8/api/database-api/transactions
- https://www.drupal.org/docs/8/api/database-api/result-sets
- https://www.drupal.org/docs/8/api/database-api/update-queries
- https://www.drupal.org/docs/8/api/database-api/insert-queries
- https://www.drupal.org/docs/8/api/database-api/merge-queries
- https://www.drupal.org/docs/8/api/database-api/static-queries
- https://www.drupal.org/docs/8/api/database-api/delete-queries
JavaScript API documentation
- https://www.drupal.org/docs/8/api/javascript-api/add-javascipt-to-your-theme-or-module
- https://www.drupal.org/docs/8/api/javascript-api/ajax-forms
Form API confirmation form documentation
Managing content (reorganized documentation)
Installing Drupal 8 with Composer (updated documentation)
- https://www.drupal.org/docs/8/install/step-1-get-the-code
- https://www.drupal.org/docs/8/install/step-2-install-dependencies-with-composer
Drupal 8 installation
- https://www.drupal.org/docs/8/install/before-a-drupal-8-installation
- Ubuntu quick install guide
https://www.drupal.org/node/2894005 - Windows local install guide
https://www.drupal.org/docs/develop/local-server-setup/windows-development-environment/installing-drupal-on-windows-for
Drupal Commerce 2.x Documentation
Commerce content creation
- Creating a coupon
http://docs.drupalcommerce.org/v2/creating-a-coupon.html - Creating a promotion
http://docs.drupalcommerce.org/v2/creating-a-promotion.html
Commerce configuration
- Order workflows
https://github.com/drupalcommerce/commerce-docs/pull/119 - Changing the order workflow
http://docs.drupalcommerce.org/v2/orders/changing-the-order-workflow.html - Creating a product type
https://github.com/drupalcommerce/commerce-docs/pull/123 - Payment gateways
https://github.com/drupalcommerce/commerce-docs/pull/120
How to contribute to commerce documentation
Added tab support to docs
Updated recipes layout and requirements
- https://github.com/drupalcommerce/commerce-docs/pull/116
- https://github.com/drupalcommerce/commerce-docs/issues/110
Commerce Install
The goal of this team was to create a prototype for a custom Drupal Commerce install. The idea is that a person could select options for their installation, then, based on their selections a Composer file would be dynamically generated to make the initial Drupal Commerce install a snap. Pretty cool stuff.
This Commerce Install team was able to get a working prototype completed! There’s still some work to do before it’s released into the wild, but, it’s getting close. I’m sure we’ll toss up an announcement of some sort when it’s completed.
POS (point of sale)
The Point of Sale module provides an interface for Drupal Commerce to allow in-person interactions with a Drupal Commerce storefront. This is powerful because it allows a single solution for both online and brick-and-mortar stores.
Currently, the Point of Sale module is only available for Drupal 7. The POS team was tasked with starting to port it over to Drupal 8. They made some good headway! Here’s a recap.
Development Reference
- Commerce POS project homepage
https://www.drupal.org/project/commerce_pos - Drupal 8 POS module build plan
https://www.drupal.org/node/2893664
Merged commits
- Custom order type
https://www.drupal.org/node/2893667 - Setup commerce_pos_reports
https://www.drupal.org/node/2893676 - Setup basic module structure
https://www.drupal.org/node/2893666 - Setup custom store type
https://www.drupal.org/node/2893672
Pending commits
- Setup the register config entity
https://www.drupal.org/node/2894035 - Labels
https://www.drupal.org/node/2894039 - Initial setup of custom order admin UI
https://www.drupal.org/node/2893679
UX issues reviewed or added
- https://www.drupal.org/node/2894390
- https://www.drupal.org/node/2894385
- https://www.drupal.org/node/2894378
- https://www.drupal.org/node/2894350
- https://www.drupal.org/node/2894347
- https://www.drupal.org/node/2894328
- https://www.drupal.org/node/2894349
- https://www.drupal.org/node/2894355
Sprint Week 2018
Now the focus shifts to 2018. We’d love to see others in the online community join us for next year's Sprint! The Acro Commerce Sprint Week in 2018 will be happening the second week of July (9th to 13th). Mark your calendars and get in touch next year if you’d like to take part with us.