Poulissen - Audio Video Center

The case
The online equivalent of the offline store Poulissen: a 20+ year old family business, awarded best national hifi-store several times. Timeless values and character, digitalized and made future ready. With a main purpose to sell online in a store-like atmosphere and drive customers to visit in-store, to keep things personal. A perfect match between offline and online: real life, Drupalized.
Project description
The project started out of a need, at the end of 2016. Poulissen had a website and shop, running on Drupal 6 and Ubercart 2. But they were running on fumes, since Drupal 6 reached end of life earlier that year. What started as a migration that was supposed to be launched a few months later, practically became a whole new website and shop. The complete project took up a full year, with the last few edits still in the making – out of our own excitement (so Exitable) over Drupal 8 and Commerce 2.

What happened?

First we decided to wait for Drupal 8 and Commerce 2, to make sure Poulissen.nl would be ready for the future. It took a little longer than expected for Drupal 8 to be released and when Commerce 2 came out, we missed a lot of features we thought would make it even better and more complete to fit into the objective for Poulissen.nl: a website and shop that reflects the personal character and high end feel of the offline store.
We could either wait a little more, to make the site and the implementation of Commerce 2 a little bit better everytime, or we could fix or build it ourselves. In a lot of cases, we did the latter. We started to become real active members of the community, for the first time. (In several cases with the help of Matt Glaman, see: Challenges).
We started fixing and building and improving and fixing some more, getting more and more excited everytime. We more or less lost ourselves in the endless possibilities of Drupal, but in a good way.

So yes, objectives have been achieved: Poulissen.nl is running on Drupal 8 and Commerce 2. But it has become so much more:
- We improved the management of orders and shipments.
- We improved the brand experience by getting that personal and high end feel of the offline store into the online equivalent on the hifi brand-pages.
- We drove customers to visit the offline store by improving the option for a quotation request: a list of products for a possible customized price, inviting customers to come try them in the specialized listening-area in store.
- Then we improved product-pages as well, building them in a more spherical setting, leading towards more and deeper product specifications.
- We improved and enhanced product-filters, custom built for clients with little to great knowledge of hifi and from general to specific wishes. Products are even labeled which streaming-services they support, for example.

In total, there’s a project that maybe got a little out of hand – but we learned so much about the Drupal community and all the possibilities it provides for our clients. It has been an exciting adventure, creating a magnificent super-customized future-proof result we’re more than proud to call ours.
Update synchronisation Drupal vs Commerce (beta > 1.0)
While building the platform, Drupal Commerce was still in beta. And the beta-releases were not backwards compatible. Keeping track of all patches used because not all functionality was ready and tested. Getting hold of nice patches, of creating our own and still building a shop was a big challenge. But the enthusiasm and speed of releases kept us going.

Still not all functionality ready (coupons / order comments)
We had to convince our client he still had to wait for a couple of solutions. We created our own fixes our add-ons and shared them, but we are still working on them to make it function like it should in Commerce. The system is now fully functional and our client can work with it. But it will still take some time to get everything right.

Getting new features during development (and production)
Starting with beta also means getting new features during development (and production). So a good testing and deployment process is really necessary. We spent a lot more time testing than normal. But it paid for itself, and we now have more in depth knowledge of commerce than we would have thought.
Community contributions
Patches in issue-queue

Contributions Issue queue
- E.g. Small patch we use ourselves to start something bigger https://www.drupal.org/project/commerce/issues/2908196
- Testing solutions https://www.drupal.org/project/commerce/issues/2857157
- Omnikassa is not available yet for Commerce 2.0. We built a solution to make it work. Still working on it (catching all responses from omnikassa) so we can give it back and share
Extension of the example module
- Added VAT (btw) example to the Commerce Example Module
With the help op @MGlaman via Slack
- Lots of contact with other developers via Slack. Learned alot and shared alot. Especially the #commerce channel.