Mar 25 2020
Mar 25

Every digital business owner strives to provide the most engaging experiences both for desktop and mobile users. They might want to build a mobile app. However, the task of great web development companies is to offer alternatives to every idea.

One of these interesting choices here is a progressive web app (PWA). Read on to learn more about PWAs, what they are, what makes them beneficial, as well as progressive web apps and Drupal integration.

What is a progressive web app (PWA)?

A progressive web application is a web application that loads like a usual website but delivers modern experiences similar to those in native apps. They include push notifications, offline work, device hardware access, etc. PWAs unite the features provided by modern browsers and the pros of mobile experiences.

Progressive web app example

Why use PWA? The PWA benefits

  • By integrating a PWA into your Drupal website, you enrich the latter with cool technologies and provide app-like experiences. This can boost your business significantly. Let’s go into more details and list some of the PWA benefits:
  • The cost of developing a PWA is lower than with native applications.
  • A progressive web app is also faster to build than a native app.
  • PWAs work for all users regardless of their browsers thanks to the progressive enhancement approach.
  • Progressive web apps can be easily added by users to the homescreen with no need to go to an app store.
  • They are responsive so they deliver smooth experiences across desktop, tablet, and mobile devices.
  • Features like push notifications are huge attention catchers able to significantly increase your user engagement.
  • PWA can work offline or on slow networks and load fast thanks to the use of service worker scripts, which improves user experiences and expands your reach.
  • PWA is secure thanks to the use of HTTPS that prevents data manipulations.

What’s inside? The PWA components

Every progressive web application has three key components:

  1. The app shell stores the basic JavaScript, CSS, and HTML needed for your application UI and quickly serves it from the cache.
  2. The service workers are JavaScript files that run on the background of browsers and serve the response from the cache to offline users, and can be scripted to provide push notifications, etc.
  3. The web manifest is a manifest.json file that holds your app configuration (name, look, color, logos, etc.) and allows your users to add the app to their home screen.

How to add PWA functionality to Drupal

There is a module for everything in Drupal. The integration of a progressive web application with Drupal is no exception. This integration can be provided with the Progressive Web App Drupal module.

The Progressive Web App module in Drupal

The Progressive Web App Drupal module injects the PWA features into your Drupal site without any complexities. It creates the standard setup, and JS developers are able to additionally write service worker scripts to further customize the app-like behavior of the PWA.

Here are some of the module’s features for the smooth Drupal and PWA integration:

  • The module has a service worker that takes care of caching and offline work. When active, the service worker makes the pages load faster. It provides the serving of pages from the cache. Among the additional tweaks, there are fallback images showing for uncached images.
  • The Drupal module creates a configurable manifest.json file with all the needed metadata. It allows the "add to home screen" prompt in eligible browsers.
  • Site admins are able to configure the manifest from the Drupal UI.
  • Other modules on the Drupal website can add their modifications to the manifest.

The module’s configuration page is found at admin/config/pwa/settings where you can fill in the necessary data in the manifest or change the provided defaults (your app name, description, default language, start URL, theme and background color, and much more). This page also includes the settings for your PWA’s service worker that out-of-box deals with caching.

Progressive Web App module in Drupal

Progressive Web App module in Drupal

Progressive Web App module in Drupal

System requirements for the Progressive Web App module

In order to use this PWA integration module, you will need to fulfil these two key technical requirements:

The PHP version on your server should be 7.2 or higher. The module creators plan to further raise this minimum PHP requirement in line with the upcoming PHP updates.

Your server has to support secure connections using HTTPS. This is required by the W3 specification.

Let our team help you with progressive web app and Drupal integration

If you are interested in a fast, engaging, and secure PWA for your Drupal site, our Drupal development team is ready to assist you.

We will perform the smooth integration and configure your PWA to behave in accordance with all your requirements, including the creation of custom service worker scripts. In addition, we will take care of the technical requirements for the integration (update your PHP and switch your site to HTTPS if it hasn’t yet).

Let’s discuss the details of your successful progressive web app and Drupal integration. Try a progressive web app and may it help your business progress!

Mar 06 2020
Mar 06

There’s one thing that can give you better positions in Google, more visitors, and increased conversions in the same “package.” This thing is an improved website speed. Today, we will discuss what helps you achieve this on a Drupal 8 site.

Drupal is able to power even content-heavy websites — and stay light! The 8th version has plenty of tricks in this realm, some of which were newly-introduced in it (like the BigPipe module) and have gained the respect of many developers. So let’s begin our tour on the ways to improve website speed in Drupal 8.

Great ways to improve website speed in Drupal 8

These tips approach website speed optimization from different angles to create the perfect picture. Their choice may depend on the site, so consider ordering Drupal 8 performance audit from our experts. However, the very common and popular ones are as follows.

Drupal 8 caching opportunities

Caching is a known technique to improve website speed. It allows you to store the copies of web pages to serve them quickly to browsers and avoid server overhead. The main great news is that the D8 core comes packed with robust built-in caching tools:

The Internal Page Cache

The Internal Page Cache core module improves website speed for anonymous users, serving your web pages to them very fast. It does not work with dynamic content for anonymous users (e.g. a shopping cart).

The Internal Dynamic Page Cache

The Internal Dynamic Page Cache core module does the caching to improve speed both for anonymous and authenticated users. It caches your web pages excluding the personalized parts and turns the latter into placeholders.

The BigPipe

The BigPipe core module was initially created by Facebook to handle dynamic pages with high speed. It loads the unpersonalized page elements first and dynamic ones next so users can quickly start interacting with the site. Drupal’s creator Dries Buytaert demonstrated how it can improve website speed.

BigPipe nodule demonstration

Cacheability metadata

Cacheability metadata in D8 allows for flexible handling of the cache. This data can be provided by all things that are renderable (or used to determine what to render). Here are three 3 properties in cacheability metadata:

  • cache tags allow you to refresh the cache when something changes (based on some entity data or configuration values)
  • cache contexts allow you to show different content depending on some context (user role, permissions, URL, etc.)
  • cache max-age determines how long the item should be cached (0 for uncacheable ones), which makes it great for time-sensitive caching scenarios

Caching in Drupal 8 Views

There are fine-grained caching settings offered by modules that deal with content display (such as the core Views module, the contributed Panels module, etc.) For example, the Views allows you to configure tag-based and time-based caching in Advanced settings.

Caching in Drupal 8 Views

Bandwidth optimization: CSS/JS aggregation in Drupal 8

A useful way to improve website speed in Drupal 8 is to aggregate your CSS and JavaScript files. This reduces the number of HTTP requests needed for the page to load, as well as the amount of data transferred. Out-of-the-box, D8 offers two options here enabled by default at /admin/config/development/performance.

Contributed modules like the AdvAgg (Advanced CSS/JS Aggregation). It comes with a bunch of submodules such as Advanced Aggregates, Advanced Aggregates CDN, Advanced Aggregates CSS/JS Validator, Advanced Aggregates External Minifier, Advanced Aggregates Minify CSS, and many more. They fit every purpose and scenario when you want to improve website speed.

CSS/JS aggregation in Drupal 8

Responsive image styles in Drupal 8

Image optimization is an essential task for anyone who wants to improve website speed. Drupal has a built-in system of image styles to trim images (crop, scale, etc.) to fit every display mode. Moreover, D8 allows you to provide responsive images that will look optimal on every device. In addition to providing user-friendly experiences to your audience, this technique improves website speed because there is no need to load large images on mobiles.

The Responsive Image and Breakpoint module in the core enables you to set up breakpoints in a theme’s or a specific module’s YAML file. According to them, respective image versions will be shown to different resolution devices. See a detailed guide on responsive web design in Drupal 8.

Responsive image styles in Drupal 8

Lazy loading for better performance in Drupal 8

Using the lazy loading technique with images, videos, or other media, is widely popular. Its aim is to save resources and improve website speed. Lazy loading allows you to only load the media that are in the current user’s viewport.

In D8, lazy loading can be applied with the help contributed modules where one of the most popular is the Lazy-load and the Image Lazyloader.

Using the latest version of PHP to improve website speed

Since PHP improves with each new version, it’s reasonable to use keep it updated on your website’s server. It will make your site’s code cleaner and more efficient, so it’s a great way to improve your website speed. The current PHP version supported by D8 is PHP 7.3. Our Drupal support experts are always ready to help you with it.

Cleaning up the unnecessary modules

As it has been in all times, you will greatly improve your site speed by disabling the unused modules or replacing the heavy ones with better alternatives. In D8, this has become much easier since plenty of great modules (or similar capabilities) have been moved into core.

For example, the Drupal creators strive to make the core Layout Builder the one and only module for all layout-related purposes, replacing the very popular contributed ones like Panels, Panelizer, Display Suite, etc. The new Media handling system also eliminates the need for a bunch of contributed modules. Further examples abound.

That said, to improve your website speed, it’s great to update to the latest D8 version, discover its capabilities, make an audit of modules no longer in need, and configure the new ones so they meet your needs. You can also entrust this to our Drupal development team.

Integration with JavaScript frameworks

JavaScript frameworks (React, Vue, Angular, Gatsby, and many more) are known for their exceptional capabilities in high loading speed. They also help you create interactive interfaces that users love.

Today, it’s a trend to integrate them into D8 sites. Roughly speaking, there are two key ways for doing this:

  • headless, or decoupled setup where Drupal serves as a backend sending data via an API to a frontend application on React (or other JS framework)
  • creating separate interactive elements and embedding them into your particular website’s pages handled by Drupal.

There are numerous libraries, starter kits, and source plugins from the JavaScript framework creators in this sphere.

However, the best news is that D8 is built on an API-first principle and has enhanced integration capabilities. The core modules such as HAL, HTTP Basic Authentication, JSON:API, RESTful Web Services, and Serialization that do everything to provide the perfect data sharing in the right format. There are also very nice contributed modules, for example: 

  • REST UI that provides a user interface for managing the core REST resources
  • GraphQL that allows you to manage queries using the GraphQL query language
  • Subrequests that groups sets of requests together to improve website speed
  • RELAXed Web Services provides a generic RESTful API for all nodes and extends the core REST capabilities

Our experts can improve your website speed

We have reviewed the common ways to improve website speed in Drupal 8. There are plenty of other tools out there and steps that can be made based on your site’s review. Ask our Drupal support specialists to give your site an extra performance boost that your business will notice!

Feb 28 2020
Feb 28

High-quality content is a huge business booster. However, its creation takes time and effort. You will need to publish content regularly in order to keep your website fresh, maintain your SEO rankings, and keep your audience engaged.

Luckily, there are ways and tools to facilitate regular content production. Consider, for example, the idea of scheduled publishing on your website. We will discuss its benefits here and take a look at a great scheduling tool — the Scheduler module for Drupal websites.

The idea of scheduled publishing for your website

Scheduled publishing means that you or your content creators will be able to:

  • have content automatically published at predefined dates and times
  • have content automatically deleted at predefined dates and times

Scheduled publishing benefits and use cases

Scheduling tools can make your publishing workflows better organized, more flexible, and time-saving. Here is how:

  • You can quickly post plenty of content in advance with no need to stay tied to the PC. Your content can be scheduled to appear on non-working hours, weekends, special dates, during your vacation or business trip, etc.
  • With scheduling tools, you don’t have to worry about the outdated content clean-up — you can just schedule it for deletion in advance, based on how long it is relevant.
  • Scheduling helps you automatically run marketing campaigns with specific start and end dates. They can be tied to your product launches, holidays, seasons, etc.

Marketing campaigns based on holidays

The Scheduler module for scheduled publishing in Drupal 8

The Scheduler module does its job of publishing and unpublishing your Drupal nodes perfectly. It can work, for example, as a future blog post scheduler for your website. The module has overall 1,250,000 downloads irrespective of the version, which proves how popular scheduling is. Let’s take a closer look at what it offers in the Drupal 8 branch.

The Scheduler module installation

The Scheduler comes with a submodule — the Scheduler Rules Integration. If you enable it as well, your scheduled publishing can reach an especially high level (based on particular conditions via the Rules Drupal module). Let’s keep it simple this time and discuss the classic scheduled publishing only.

Scheduler Drupal module installation

Enabling scheduled publishing & unpublishing for a content type

You will need to go to the necessary content type (article, news, gallery, product, etc.) and enable the scheduling feature for it in Structure — Content types — [Your content type] — Edit. Check the boxes for enabling scheduled publishing and unpublishing.

More options will now be available. Among the most interesting ones are:

  • changing the node creation time to match the scheduled publishing time — this will make your Drupal content look fresher making
  • making scheduled publishing required — this will make sure your editors don’t forget to schedule the nodes

Enabling scheduled publishing & unpublishing for a content type with the Drupal Scheduler module

On the same tab, you can specify the scheduling layout — a vertical tab or a separate fieldset. This is how it will appear to your editors.

The date-only format as an option for the Scheduler

To facilitate scheduled publishing, you can choose to make only the date schedulable. Your editors will not have to regularly enter the exact time. The time will be a default, but they will be able to change it if needed. The date-only option is a general one and can be enabled at Configuration — Content authoring — Scheduler.

Date-only format with the Drupal Scheduler module

Scheduling your Drupal 8 content to be published or unpublished

Now let’s see how the scheduled publishing looks during your Drupal node creation. To the right of the node editing form, there is now the “Scheduling options” tab. Enter the publishing and unpublishing date and time or leave either of them blank if you do not need them. The time is tied to your website’s time zone.

Scheduling your Drupal 8 content to be published or unpublished

We have scheduled the post “Congrats on the first day of spring!” for March 1, 2020, at 7.00 AM. It should appear on March 1 and disappear the next day.

Content scheduled for publishing in Drupal

You now also have a “Scheduled” tab that shows all your nodes that are currently scheduled for publishing or unpublishing.

Scheduled content tab from the Drupal Scheduler module

Lightweight Cron as the Scheduler task manager

What if the time has come but your scheduled articles or other nodes have not yet appeared? This means that the Cron hasn’t yet run. The Drupal Scheduler module relies on the Cron for the automatic publishing and unpublishing of your nodes at regular, preconfigured intervals. Every time the Cron runs and discovers the scheduled nodes, it publishes or unpublishes them.

You can choose to use the Lightweight Cron created specifically for the Scheduler. It allows you to make more granular settings as to the frequency of running the Scheduler tasks and avoid overloading the Drupal Cron.

The Lightweight Cron settings are found at Configuration — Content authoring — Scheduler. You can run it at any minute on-demand with one button to see the due tasks immediately completed. You can also make granular frequency settings in the Crontab tool on your website’s server. Contact our Drupal support team at any time for help.

Lightweight Cron as the Scheduler task manager

Set up scheduled publishing with us!

Does the scheduled publishing idea look interesting to you? Or maybe you would like to try other ways and tools for easy Drupal content workflows? Drupal 8 now offers plenty of options in this area, some of which are included in the Drupal core of the recent versions.

For scheduled publishing or any other Drupal website feature, you can always rely on our Drupal development and support experts!

Feb 24 2020
Feb 24

Every contribution makes Drupal shine brighter! The InternetDevels team knows it so we decided to hold ID Drupal Contribution Day on Saturday, 22. We gathered to improve a bunch of modules and make them ready for a smooth Drupal 9 upgrade. Let’s see how it was.

Attentive and helpful Contribution Day mentors

Every Drupal code sprint or similar event needs special gurus who curate the work of newcomers and help everyone. You will easily recognize them — they usually have a beard ;) However, the most important quality of our mentors is their big experience in teaching at our Drupal 8 courses and mentoring Drupal interns.

These two guys (both named Vova) are among our best developers, active contributors, and maintainers of Drupal modules. So they understand the importance of contributions and are always glad to engage new people in it!

ID Drupal Contribution Day — mentors

Working on Drupal issues

So after one of the mentors gave an introductory speech, we got to work. At ID Drupal Contribution Day, there were issues to every skill level and of a different character — improving the stability of modules, fixing their coding standards, writing documentation guides on, etc.

We worked with the UpTime Widget, Stripe API, Media Watermark, Readme, Registration Confirm Email Address, Twig Tweak, Webform modules (many of which are maintained by our mentors) and other contributed Drupal modules.

The special achievement is two patches to Drupal 8 core made by one of our mentors, Vova, in the area of coding standard improvements for the DrupalDateTime and LocalTaskManager classes.

ID Drupal Contribution Day — working on issues

Getting ready for Drupal 9

As the scheduled release of Drupal 9 is getting closer, it’s easy to notice more “Drupal 9 preparation” tasks on all recent code sprints. ID Drupal Contribution Day had tasks on preparing the modules for Drupal 9 as well:

  • removing the deprecated code with the help of the DrupalCheck and other tools
  • adding the core_version_requirement key in the *.info.yml files (that we described in detail after the release of Drupal 8.7.7).

Pizza contributes to the contributors’ work!

Helpful mentors, interesting issues, great modules… all this is vital for a successful code sprint, but something is missing. Another important component of a code sprint is pizza! It came in very handy to replenish the energy of our contributors.

ID Drupal Contribution Day — pizza

Great prizes: tickets to DrupalCamp Kyiv 2020

At the end of the ID Drupal Contribution Day, all active participants received a nice gift — a ticket to Drupal Camp Kyiv 2020. It’s a chance to feel the spirit of the Drupal community, get valuable knowledge, and come back inspired for new contributions.

ID Drupal Contribution Day — prizes

Let the contributions go on!

It’s great to see this never-ending circle of sharing to Drupal when experienced contributors bring new ones in! InternetDevels development company and Drupal Ukraine Community enjoy making this happen.

See you on the next code sprints and let’s use every chance to give back to Drupal!

Feb 06 2020
Feb 06

A useful Drupal 9 guide that features everything else 
you wanted to know about the upcoming release ;)

Drupal keeps moving forward, offering more and more advanced digital experiences. The scheduled release of Drupal 9 in 2020 was announced a while ago, and this year has come. What about you — are you doing some Drupal 9 planning for your website?

We are here to help you with it! So you can:

  • either directly contact our Drupal support & maintenance team with one simple request “Prepare me for Drupal 9 please”
  • or start with reading our D9 checklist for website owners.

If the word “checklist” sounds a little cumbersome, we will give you a little hint: a Drupal 9 upgrade is going to be incredibly easy for those who are on D8! For those who are on D7, we will also share another Drupal 9 checklist. In addition to useful checklists, our blog post is also going to feature everything you might want to ask about Drupal 9. So let’s begin!

When is it coming? The Drupal 9 release date

The Drupal 9 release date is one of the most frequently asked questions. We are pleased to answer it — the D9 release is planned for June 3, 2020!

Although we expect D9 to be released in June, the exact day is not certain as was recently announced by the Initiative Coordinator Gábor Hojtsy. Most people took the June 3 release date for granted, but it is still not guaranteed, writes Gábor in his blog post.

The community has a huge job to do in meeting the alpha and beta release requirements. So Gábor Hojtsy encourages more contributors to participate. According to their active effort, the release date may be:

  • June 3, 2020 (most likely)
  • August 5, 2020
  • December 2, 2020

Why do you need to upgrade to Drupal 9?

Next year, in November 2021, both Drupal 7 and Drupal 8 reach their end-of-life, which means an end of official support. It is desirable that all sites move to D9 before then (see the Drupal 9 checklist chapter to learn how to do this).

And, of course, a great reason for a Drupal 9 upgrade is that all development efforts will soon be focused on creating modern features for it. The big changes are not directly coming in June — D9.0 is going to be just a cleaned-up version of D8’s latest minor release. The most exciting things will start with Drupal 9.1 (several months later).

The community is preparing something amazing, but not all features are uncovered yet. Let’s take a glimpse at a couple of things that are known.

Some of the new features in Drupal 9:

  • D9 will be available to D8 websites from day one thanks to full backward compatibility! No need to fuss with upgrades this time, they are going to be very easy. Only a few preparations are needed (see the checklist chapter).
  • Drupal 9 will also be using the latest libraries and components so your website has better performance, cleaner code, more efficient development, and much more. Among the most important examples are the latest versions of the Symfony framework (4 or 5) and the Twig template engine (version 2).
  • We have already taken a glimpse at the new Drupal front-end theme Olivero. Its official overview was titled “Drupal 9: The Most Beautiful CMS Ever!”. Olivero’s color palette, typography, forms, buttons, sidebars, and everything else is meant to give websites an attractive and professional look, increase their usability and accessibility to all users.

New Drupal 9 frontent theme Olivero

  1. reducing development costs and efforts
  2. prioritizing the beginner experience
  3. driving the future of the open web with accessibility, inclusiveness, security, privacy, and interoperability
  4. making Drupal the best-structured data engine for more integrations, more devices, and more channels

Strategic Drupal 9 areas announced by Dries

How to prepare for Drupal 9?

This is the main question of our today’s Drupal 9 guide and the answer depends on your current version. So we are sharing two checklists with you: the D7 and the D8 checklists.

Drupal 8 site owner's checklist for a smooth Drupal 9 upgrade

As of November 2021, Drupal 8 will reach its end-of-life and stop receiving support (including security updates). But there is no need to worry because you have already made the best decision — choosing Drupal 8. Since D9 is being built in D8, this makes your upgrade checklist very easy:

  • 1) Review your website’s goals

Time flies, and what was relevant yesterday, may become unnecessary today. On the contrary, you may need something new. So the first optional point in the checklist is to think about what digital experiences your website provides to your customers and what else it could do.

  • 2) Talk to your editors and administrators

The next optional point in the checklist is to ask your content editors, administrators, and other team members who do things on your website every day. What could work better? Drupal 8 has brought so many wonderful improvements in content editing, and the ninth version should continue this path.

  • 3) Make a module audit with developers

Based on your reviewed requirements and ideas in points (1) and (2) of this checklist, ask developers to help you prepare a cleaned-up and updated list of modules for your desired functionalities. To get an audit of modules, you can contact our Drupal support & maintenance team. During the module audit, the best practices are to use the core where possible, since many nice features have been moved to it. Examples include using the core Content Moderation instead of Workbench Moderation, the core Media instead of the contributed Media, the core Layout Builder instead of Panels, etc.

  • 4) Order an update to the latest minor version (required)

Use the latest version of the core, modules, themes, and third-party libraries. According to the new innovation model, every six months a new core release with valuable features comes out, and between them, there also are patch releases. By keeping up with the latest minor version, you are already preparing for Drupal 9. What version are you on? The current one is 8.8.2! Ask our developers to update you and you will be much closer to D9. These updates do not take long (usually from half an hour to an hour).

  • 5) Order a cleanup from deprecated code (required)

This is the cornerstone of Drupal 9 readiness checklist. Websites that are not using deprecated APIs and functions will be instantly ready for Drupal 9. Ask our Drupal support experts to do this cleanup. This is not going to take much time. They will use D9 preparation tools like the Drupal-check command-line tool, the Upgrade Status contributed module with a UI for deprecated code checking, the Rector automatic deprecated code removing tool, etc.

Drupal 7 site owner's checklist for a smooth Drupal 9 upgrade

Similarly to D8, D7 is end-of-life in November 2021, which means a stop of support as well. Drupal 7 website owners face a couple of options:

  • commercial support
  • direct upgrade to Drupal 9
  • upgrade to D8 and an easy jump to D9 as soon as it comes

We recommend option 3, and here’s why. Staying on Drupal 7 with commercial support means you are shut out of the innovation because no one is going to prepare new and exciting features in D7.

When it comes to a direct update to Drupal 9, we are ready to do it if you want, but consider the following. You’ll need one big upgrade anyway because D7 is totally different from both D8 and D9. The option to stick to a well-studied D7-D8 upgrade path looks much better. In addition, you can start enjoying modern functionalities much sooner.

Dries Buytaert in his State-of-Drupal presentation compared the versions to railway tracks: once you move to the Drupal 8 track, you will never have to change your tracks again, and all future upgrades will be easy. But the D7 track leads to nowhere.

Once you choose Drupal 8 track you will never change tracks again

So your checklist will look like this:

  • 1-2-3) Repeat the first 3 steps of the checklist for Drupal 8

The first three checklist steps look similar. However, with D7, they are more required because more serious changes are needed. Review your website’s goals and features, talk to your editors, and share the results with our support team so we can help you make an audit of modules. Based on the necessary functionalities, we’ll check which modules have a D8 version, which ones need a replacement, which ones need a rewrite, and so on.

  • 4) Schedule an upgrade to Drupal 8

Order your website upgrade to D8 in accordance with the best practices. We’ll move your content and configuration to a clean Drupal 8 instance of the latest version. The upgrade time may vary depending on your website’s complexity. However, it has become much smoother and faster now with new, stable D8 migration modules.

  • 5) Order one final little check for deprecated code

Your fresh Drupal 8 website should be as close to Drupal 9 as possible. However, you can ask us after the D9 release to do one more check and clean it up from deprecated code. And then congrats — you are ready for Drupal 9!

Let our Drupal team complete your checklist!

Hopefully, the above Drupal 9 checklist will come in handy. Maybe checklists look a little scary but in reality, it’s not difficult to accomplish them. Just contact our Drupal support & maintenance team we will help you with every item in the checklist.

Let your business flourish from the most modern features Drupal development can offer!

Jan 29 2020
Jan 29

Aesthetic and engaging website navigation menus largely define your site’s success. They help your visitors easily get from point A to point B and finally reach point C — a conversion!

If your site is built with Drupal, you are in luck. There are plenty of modules to build modern navigation menus and improve your website navigation. We will see how to create a very attractive website navigation design with one of them — the Menu Item Extras Drupal module.

Best practices for website navigation design

Website navigation menus bring you the most value if they are built in accordance with the best design practices. Here are some of them.

  • Make the purpose of the menu links clear

It should be obvious to your website’s visitors at a glance what they will get when they follow a particular menu link. To achieve this, you can use descriptive labels written in simple, user-friendly language, or use icons and similar design elements to enhance the visual effect.

Example of good website navigation design

  • Limit the primary menu to 7 options

Avoid clutter in your links so your users do not get overwhelmed by choices. Of course, it depends on your website, but the optimal UX design recommendation is keeping the primary navigation under seven items.

  • Make the navigation menu stand out visually

Your website’s primary menu should have a design that captures your users’ attention. Use good contrasts, clear fonts, visually enhancing icons and images, and more to achieve this.

Example of engaging website navigation design

  • Put the navigation menu in an expected place

The main navigation menu should be located in a visible and obvious place where visitors expect to see it. This is usually the top or left or right top of your website’s pages. Footer navigation is popular as well.

  • Take care of mobile navigation

Make sure your navigation is designed to be as easy-to-use on mobile devices as it is on desktops. With limited screen space, they usually have a design of a hamburger, flyout, off-canvas menu, etc. It’s best to use responsive navigation menus that adapt to different device screens.

Better website navigation design with Menu Item Extras Drupal module

At least some of the above best practices for navigation menu design can be fulfilled by the Menu Item Extras module in Drupal. With it, the purpose of your links can be made clearer, and your navigation can stand out and catch your Drupal website visitors’ eye.

The Menu Item Extras enables you to add extra fields to your menu items. This means that ordinary navigation links can have a richer design thanks to adding other elements as Drupal fields (related images, icons, background images, etc.)

Drupal Menu Extras module

Enabling the Menu Item Extras Drupal module

When installed, the Menu Item Extras module also brings with it another module — the Menu Item Extras Demo Base. So while enabling the main module, you can optionally the additional one, too, if you need an illustrative sample for your Drupal website navigation design.

Enabling the Drupal Menu Extras module

Adding an image field to a navigation menu

We can now add any field to any desired menu that we can select in “Structure — Menus” (Main navigation, Footer, User account menu, some custom menu, etc.). Field management works the same way as in Drupal content types. Let's add an image field.

Creating an image field for a menu link in Drupal

We can also manage its display to configure how it will look to our users — for example, hide its label and choose a special image style to give a consistent design to all images.

Configuring an image field for a menu link in Drupal 8

Adding menu links with images

And now, when we add a menu link, it will have a new field for an image. Let’s add a few links like this to our Drupal website’s Main Navigation. We specify the link title, existing content URL, make sure the parent link is the one we need (Main Navigation), and add an image.

Adding menu links with images

Let’s check the website’s front page now and see how our main navigation design looks. Now it is enriched with images and is much more enticing for visitors. It’s hard to resist clicking!

Navigation link with images thanks to the Menu Item Extras Drupal module

Of course, this is just a rough sketch that will look better after the navigation design is brushed up with good front-end experts.

See a video about adding images to navigation menu items with the help of the Menu Item Extras Drupal 8 module.

[embedded content]

Order a professional website navigation design

The options for site navigation designs are endless. Let our Drupal development and UX design experts create the website navigation design that will attract your potential customers and lead them confidently throughout your website. Contact us!

Jan 15 2020
Jan 15

If users have questions, this is great — because this means they are interested. Providing clear and informative answers can give you enormous benefits. So it’s worth including FAQ (Frequently Asked Questions) in your content marketing strategy.

Here we will discuss reasons for this, as well as show how an FAQ section is created. This post will be particularly interesting for those who have a Drupal website, as well as those who are just choosing a CMS. See how a very nice Drupal module — the FAQ Field — creates a FAQ section. Our explanation will be accompanied by a video.

The advantages of an FAQ page or section (+ examples)

An FAQ in any form depending on your website’s needs (a glossary of terms, frequently asked questions with answers, a set of instructions, etc.) could do the following for you:

  • An FAQ section or an FAQ page saves your team’s time in answering the users’ routine questions about your products, services, terms of use, website’s work, etc.

Example of FAQ on a website

  • The questions and answers increase the website’s user-friendliness by helping users quickly reach their goals.
  • Content like this adds authority to your brand by showing that you care for your visitors, willingly share useful information, and possess enough expertise.
  • The question-and-answer sections give a good logical structure to your pages and can be presented in a variety of designs (accordion menu, lists of anchor links, etc.)
  • Listing the common questions just the way users ask them on Google can significantly increase your search traffic.

Example of FAQ on a website

  • This is also the perfect way to get into Google’s featured snippets above all search results. It is the key step in optimizing your website for voice search.
  • Frequently asked questions with answers can help you encourage the buying decisions, resolve some of the common customers’ doubts about your product, share your vision, and more.

Example of FAQ on a website

The FAQ Field Drupal module to create an FAQ section

One of the simplest ways to create a FAQ section on a Drupal website is to use the FAQ field module. Let’s review its features.

Installing the FAQ field module in Drupal 8

A FAQ field for your content

When installed and enabled, the module allows you to add an FAQ field to a content type (article, blog post, product, story, etc.). Your content pieces will get a frequently asked questions section next to them.

FAQ field for content in Drupal 8

The FAQ field module can be compared to another Drupal module in this realm — the FAQ module. The latter creates a content type for FAQ while the former simply creates a field.

Having just a field gives you the additional flexibility to add frequently asked questions to your existing content types (e.g. e-commerce products).

A variety of FAQ designs

The FAQ field module allows you to choose between these design options on the Manage display tab of a content type:

  • HTML definition list
  • jQuery Accordion
  • HTML anchor list
  • simple text (themeable)

Configuring the display of FAQ in Drupal 8

The default for your FAQ section is the accordion menu with the first question opened:

FAQ section in Drupal 8 as jQuery accordion

You can have all questions closed and requiring an action (click) to open. To do this, use the accordion settings cogwheel, set the first default question to “None” and check “fully collapsible.”

Configuring jQuery accordion in Drupal 8 to show all FAQ closed

Now see the “HTML anchor list” option (that can be set as a bullet list or numeric list):

configuring the display of FAQ in Drupal 8 as an anchor list

Other useful features of the module include the FAQ height style adjustment and animation settings. To help your users find questions, it can be used together with modules like the Search API.

To enhance our story, we invite you also to enjoy the video about using the FAQ field Drupal module created by our team.

[embedded content]

Let professionals create an FAQ section on your website!

We have demonstrated a simple but nice way to create a FAQ section on your website. Ask our Drupal development team to build the frequently asked questions section or page that will look exactly in accordance with your wishes.

Dec 26 2019
Dec 26
Drupal Commerce 2.16: cart expiration, exact promotion time & more!

E-commerce opportunities are endless nowadays. More and more business owners decide to hire e-commerce developers and skim the cream off online sales. Today, we will describe the new opportunities offered by Drupal Commerce 2.16.

Read more
Dec 13 2019
Dec 13
User-friendly event schedules with the Smart Date Drupal 8 module

ebsites that host various events have their own usability secrets. Among the tips for building a great event website, perhaps the most important is the “what, where, when” of your conference — the event’s date, time, venue, and key subject should be clearly displayed in the website’s prominent place.

Read more
Nov 15 2019
Nov 15

The “lucky dozen” is here for us — our amazing InternetDevels development company is turning twelve today! The 12 months after last year’s birthday has rushed by like the wind. But each month had something nice, useful, and outstanding to look back on. Let’s begin!

Some nice moments from these 12 months to remember

November: supporting awards for talented students

Every future web development Jedi begins their star journey somewhere! We want to support them in any way we can.

In late November 2018, InternetDevels together with its programming school OxIT sponsored the “Student of the Year” awards where gifted students from our region’s universities competed in several categories.

InternetDevels sponsors the Student of the Year award

December: creating the unique Drupal City map

In December, as the holidays were approaching, we were filled with a fairy-tale spirit. Together with our child company WishDesk, we created a fascinating map of Drupal City. It is made completely of real Drupal module, theme, or distribution names.

The map is not just for entertainment — our mission is also to help everyone learn Drupal modules and be inspired by Drupal’s greatness.

Drupal City Map made of Drupal module, theme, and distribution names

January: celebration with our long-term customer YaWave

Long-term customers are our great treasure. One of them is the revolutionary crowdfunding platform YaWave.

They celebrated the 6th anniversary of their amazing web development project. Our dedicated team is happy to be a vital part of it! So we enjoyed this anniversary celebration in the beautiful city of Lviv in January.

InternetDevels celebrates anniversary with a long-term customer YaWave

February: great results in Drupal Code Sprint

Drupal Global Contribution Weekend is always a chance to give your time and effort to Drupal. In early February, our developers participated in a large code sprint devoted to this annual event.

One of them was an official mentor, organizing the work of others, and sharing his skills. Another was especially active in creating patches and made 10+ of them on within a day.

InternetDevels participates in Drupal Code Sprint

March: a journey to the Mountain Camp in Davos

Awakening spring, Swiss mountains, and expert Drupal talks make an amazing combination! In March, our representatives visited the Drupal Mountain Camp in Davos.

“Open source on top of the world” is the event’s official slogan. On top of the world is exactly how you feel when you are part of such a great event and listen to what’s hot in Drupal development.

InternetDevels at Drupal Mountain Camp in Davos

April: our child company Drudesk turns 4!

April is always a special month for us. Four years ago, all website owners across the globe received a real gift. This is because we established the website support service Drudesk.

Attentive, caring, and professional guys and girls from Drudesk can solve any issue in your website. Bug fixes, all kinds of audits and optimization, new functionality, and anything else you wish can be simply sent as a task.

Drudesk website support agency turned 4 years old

May: the breathtaking heights of Himalai

Mountains do not allow everyone to approach them. You need to have courage, patience, and respect. When the Himalai open their heart to you, they teach you to be thankful for every moment and feel the joy of life.

Our senior developer Zemelia was full of impressions after he had reached the Everest Base Camp at 5,364 meters and climbed the 5,643-meter Kala Patthar.

InternetDevels developer travels to Himalai

June: interviews with amazing Drupal contributors

In June, along with our restless child company WishDesk, were prepared an outstanding blog post. Step by step, we interviewed Drupal contributors and experts, asking them 3 questions about Drupal.

We are very grateful to all the experts who took their time and shared their thoughts with our readers! Check out what Drupal contributors say about Drupal. This includes incredibly famous names in the Drupal world, as well as our company’s developers.

Interviews with outstanding Drupal contributorsJuly: skill-sharing at Drupal Cafe

Our senior developer from the JYSK team, Daylioti, gave a speech at Drupal Cafe Lutsk together with his Kyiv colleague. The guys chose a really interesting topic: “Cloud Native: Basics and Tools for Drupal.”

Daylioti paid special attention to describing the Docker commander tool that he created. It offers a user interface to run Docker commands and it is widely used on the project.

InternetDevels developer speaks at Drupal Cafe Lutsk

August: maintaining useful Drupal modules

Our developers never forget to contribute their modules to Among the ones actively maintained this year are:

  • UpTime Widget that lets you stay aware of your website’s uptime by connecting to the popular free uptime monitoring service
  • Registration Confirm Email Address that creates an additional field in the registration form to confirm your email and avoid mistakes

To make the modules more user-friendly and clear for everyone to use, the developers helped describe them in the blog posts and updated the documentation.

Uptime Widget Drupal module

Registration Confirm Email Address Drupal module

September: training with our long-term customer JYSK

We want to mention again our long-term and respected customer — the international retail chain JYSK. AT the end of September, key representatives of their team arrived from Denmark to Kyiv.

Their goal was an interesting training course on RTTM (Reduce Time To Market) and Scrum with us. Our guys and girls showed great results in the training games!

This year, JYSK reached a significant milestone — a record turnover of 1 billion Danish krones a year. Properly built e-commerce websites help businesses flourish, and we are happy to be involved!

InternetDeverls and customer JYSK hold a training together

October: preparing this year’s 7th study course

We have already mentioned our programming school OxIT whose mission is to raise new web development talents. After last year’s birthday in November, we have held 7 educational courses (in Drupal 8, quality assurance, and project management).

We prepared the 7th course for this year in October. We are happy to share skills, give chances, and invite the best candidates to proceed with an internship.

OxIT programming school by InternetDevels

OxIT programming school by InternetDevels

Our child company WishDesk also prepared a cool animation featuring these vivid moments. So, despite the fact that the 12 months have rushed by like 12 hours around the clock face, they are impossible to forget!

Happy birthday to the InternetDevels team and the company’s founder Leviks! Let’s treasure every moment and believe the best ones are yet to come!

Nov 06 2019
Nov 06
Shopping cart usability & Commerce Cart Flyout Drupal module

The shopping cart is a vital place in your online store where the moment of truth often happens — the customer either proceeds to checkout or abandons the purchase.

The situation can be changed in favor of option 1 if you increase shopping cart usability. Among the nice Drupal 8 shopping cart modules, we would like to discuss one today. Its name is the Commerce Cart Flyout module in Drupal 8. Let’s see what it does in the usability arena!

Read more
Oct 16 2019
Oct 16

Every online store owner is looking to boost e-commerce sales. A lot here depends on the platform the website is built with — some of them are able to give you more than others.

We believe — and we can prove — that Drupal is the best solution for e-commerce websites. Drupal online stores are usually based on one of the two pillars of Drupal e-commerce development:

  • Ubercart
  • or Drupal Commerce

However, one of these pillars has been getting weaker lately. So if you have a store on Ubercart, let’s discuss why you should consider an Ubercart to Commerce migration.

Making the shift should make your store richer in features, give it reliability for the future, and help you boost e-commerce sales.

Why you should consider Ubercart to Commerce migration

Ubercart and Drupal Commerce are both officially contributed modules, but they are more than that. They represent full-fledged e-commerce platforms and serve as the basis for online stores with all the necessary features present out-of-the-box.

Add-on modules can further extend their capabilities — for example, we posted a collection of useful Drupal 8 modules for e-commerce that help you boost sales in many ways. This collection featured both Ubercart and Drupal Commerce add-ons. However, the situation is changing now — let’s see in what way.

Ubercart: how e-commerce began for Drupal

Ubercart was the first solution that appeared in Drupal's e-commerce development and gave birth to Drupal Commerce. Its first release for Drupal 5 was in 2007. Ubercart is known for its user-friendliness and simplicity.

Already out-of-the-box, it has configurable product catalogs, single-page checkout, flexible system of product attributes, handy reports about the store activity, easy order creation, and other standard features your store may need.

However, if you want to think about your online store’s future and boost e-commerce sales, the next chapter may be a little discouraging for store owners with Ubercart.

Vague future prospects for Ubercart in Drupal 8

Unfortunately, it looks like the development community is shifting their efforts to Commerce and has begun to forget about Ubercart. All this considerably impacts the creation of new and innovative features for the UC.

Even Ryan Szrama, the lead developer for Ubercart, is now the lead developer for Drupal Commerce. One of the most painful things here is the absence of a stable Drupal 8 release. The latest version of Ubercart for Drupal 8 is in an alpha state, which means it is not ready for live sites. It was released back in 2016, which is a sign of a very weak development process. Commits to the Drupal 8 branch are getting very rare.

Sooner or later, everyone will have to face the fact that Drupal 7 is reaching its end-of-life in 2021. The Drupal world is already preparing for Drupal 9, which is coming in June of 2020. Experts recommend an upgrade from Drupal 7 to Drupal 8 as the best way to prepare for Drupal 9. In this case, websites that are clean from the deprecated code will jump to Drupal 9 easily.

Since Drupal Commerce fully supports Drupal 8 and Ubercart effectively does not, your Ubercart to Drupal Commerce migration will be needed as part of the natural website upgrade strategy.

Drupal Commerce benefits to boost e-commerce sales

Drupal Commerce is having a true development boom. Drupal Commerce 2.0, the first stable release for Drupal 8, came in September 2017. And we already have the 8.x-2.14 version released on August 2019.

Drupal Commerce demo

Our colleagues from Drudesk have outlined a few of the great Drupal Commerce 2 features that boost e-commerce sales by making the stores convenient and effective:

  • 70+ payment gateways supported
  • single or multi-stores multiple currencies
  • unique SKUs for product variations
  • a great choice of payment types
  • automatic country-based tax calculation
  • customizable workflows for different order types
  • configurable shipping methods and shipping integrations
  • flexible checkouts

and much more.

The rise of the decoupled commerce architecture

It should be especially noted that Drupal Commerce supports the decoupled architecture that is a hot trend in today’s development. In decoupled Drupal Commerce, the presentation layer is entrusted to a JavaScript framework and is separated from the e-commerce backend.

decoupled Drupal Commerce example

This helps you boost e-commerce sales by significantly enhancing the user experience. Namely, it provides high website speed, real-time cart updates with product previews when the user changes the product quantity, sizes, etc., push notifications, and more. Among the interesting modules specifically for decoupled commerce are:

  • Commerce Cart API provides a RESTful interface for the interaction with shopping carts through a lightweight API.
  • Commerce Cart Flyout creates a sidebar that flies out whenever a user clicks on the shopping cart and wants to view or edit the product details.

Commerce Cart Flyout module for Drupal

Migrate from Ubercart to Drupal Commerce with us

So let a future-ready and feature-rich online store help you boost e-commerce sales! If you are with Ubercart, entrust our Drupal team with doing a smooth Ubercart to Commerce migration, as well as your complete website's upgrade to Drupal 8. Drop us a line and let’s discuss the details.

Sep 18 2019
Sep 18

The Drupal world is looking forward to the “ninth edition” of the great drop. It’s going to continue Drupal’s chosen path with its API-first orientation, the latest versions of third-party libraries, advanced editor-friendliness, and much more.

The Drupal 9 release is scheduled to come on June 3, 2020. One more big step has just brought it closer — the Drupal 8.7.7 version.

This is a very special update indeed. In this blog post, we will tell you what’s new in it and why you should update to Drupal 8.7.7 as part of your site’s easy and smooth journey to Drupal 9.

What’s new in Drupal 8.7.7: a big surprise inside

Drupal 8.7.7 came on September 4. Although it’s not even a minor update — it's been called a patch release — it brought a major new feature by introducing a new core versioning system that helps websites be more ready for Drupal 9.

New core version requirement key in Drupal 8.7.7

The new core version requirement key is meant for module and theme creators to mark their project’s compatibility with Drupal core versions. This compatibility can apply to multiple versions — for example, D8 and D9. This was not possible with the old “core: 8.x” key.

Drupal core contributor Gábor Hojtsy described this feature in his blog post. He emphasized that 8.7.7 is the first release to support modules compatible with multiple major core versions.

Gábor Hojtsy's quote about Drupal 8.7.7

The key is to be added to the info.yml file of the module or theme:

name: My Module Name

type: module

core_version_requirement: ^8 || ^9

Websites that update to Drupal 8.7.7 now will have another benefit. The new requirement key also allows marking the compatibility with minor and patch releases (e.g. ^8.7, ^8.8, ^8.7.7, ^8.8.0, ^8.7.23, and so on). “Such precision was never possible before!”, Gábor Hojtsy writes.

What happens to the old “core: 8.x” key?

  • The old key still exists for core versions prior to 8.7.7. They do not work with the new core_version_requirement key. So developers will need to list both types of keys in order to allow their code to work with the older and newer versions.
  • If modules or themes are not supposed to work with versions older than 8.7.7, it’s enough to just use the new key.

You can read more details about the key in the announcement. But why is marking the Drupal 9 compatibility so important, and how should an update to D8.7.7 help your website’s future? The reason comes next.

Drupal 8.7.7 is a step towards your smooth upgrade to Drupal 9

The topic of D9 compatibility for modules and themes is so hot because many D8 websites have a chance to be fully ready for Drupal 9 the day it arrives.

D9 is being built on the basis of D8, but without deprecated code and with new versions of third-party libraries. Websites that are clean from deprecated code and are kept updated will be instantly welcomed to “cloud number 9”!

So if you update to Drupal 8.7.7 now, you will be closer to D9 than ever. Thanks to the new core versioning system, your modules and themes will be ready to “jump” to the ninth Drupal as soon as it comes.

Update to Drupal 8.7.7 and prepare for Drupal 9 with our team!

Our development team will help you prepare for Drupal 9 easily:

  • perform your website’s update to Drupal 8.7.7
  • update your modules and themes
  • find and replace the deprecated code
  • apply the new core version requirement key
  • follow all subsequent updates for your Drupal 9 readiness
  • make an upgrade to Drupal 8 (if you are still with the seventh version)

The future looks really bright for websites that follow the latest recommendations. Let yours be among them!

Sep 04 2019
Sep 04

Your website’s users are its dearest treasure. Drupal 8 offers everything to make your users happy and satisfied. They can publish content with ease, quickly find things through the robust search in Drupal 8, use their native language thanks to Drupal 8’s multilingual improvements, and so much more.

But let’s get to the beginning of their journey — user profiles. We will take a tour of building the structure of user profiles in Drupal 8.

First, let’s talk about some basics before moving on to a few interesting tweaks that make profiles richer and more engaging. These will involve new Drupal 8 core modules such as:

  • the Media Library to enrich profiles with multimedia
  • the Layout Builder to shape the profile layout with the handy drag-and-drop feature

And we will also use the not so new but always essential Views module that is part of the Drupal 8 core to help us display the needed data more precisely. Let’s begin!

Building user profiles in Drupal 8

1. Introduction: using fields to build user profiles

Users are fieldable entities in Drupal 8 just like content types. This means you can build user profiles with any fields, and every account will have them.

These can be any fields imaginable — first name, last name, picture, email, link to the website, and so forth. They can be created in Configuration — People — Account settings — Manage fields with the use of the relevant field types.

Managing fields in Drupal 8 profiles

The order in which the fields will appear to visitors can be specified by the drag-and-dropping at “Manage display,” hide or show their labels and use formatters.

Manage display to reorder fields in Drupal 8

Every field can be made required or optional on the field “Edit” page.

Making fields required or optional in Drupal 8

A special group of field types is “Reference”. It allows you to connect to other entity types. With this, you can allow users to:

  • list other users of your website (i.e. “My mentors”)
  • select options from taxonomy vocabularies (i.e. counties, cities, or spoken languages)
  • list their favorite content from your website

and much more.

One of interesting referenced entity cases comes next with the Media Library.

adding referenced entity field in Drupal 8

2. Making profiles richer with the Media Library

You can allow users to embed media of various types from Drupal 8’s Media Library into their profiles. This includes images, videos, audio, files, and remote videos from YouTube or Vimeo. For example, they can list their featured photos, favorite music videos, and so on.

The Media Library appeared as an experimental module in Drupal 8.6 for media handling. New Media Library interface in Drupal 8.7 impressed even the experts with its stylish design and handy features.

Media Library in Drupal 8

For media embedding, the Media and the Media Library core modules need to be enabled. Then it’s necessary to set the Reference field type to “Media,” specify the allowed number of values and select the media type.

Media field settings in Drupal 8

Adding Media field in Drupal 8

With these settings like on our picture, the user’s account will have the fields for up to 5 featured photos that users can embed into profiles directly from the Media Library.

Adding media from Media Library in Drupal 8

It’s great to know that in Drupal 8.8, there will be a media embed button added to the CKEditor dashboard.

3. Displaying the needed data in profiles via Views

More opportunities are open thanks to adding collections of entities, or Drupal Views. Remember, for example, we mentioned the referenced entity field open to other users such as the “My mentors” field?

referenced entity user field in Drupal 8

However, this just listed the mentor’s usernames on the user profile. What if we want the mentors’ pictures to be shown?

Views comes to the rescue! We can arrange mentors’ photos as Views and attach it as a block or page to the user profile.

We need to:

  • go to Structure — Views and create a new view block of the “user” type that will use fields
  • add the field for the user picture and, in the field settings, relate it to our “My Mentors” field
  • add a relationship in the “Advanced” section of Views to the “My Mentors” field
  • create a contextual filter in the “Advanced” section of Views that will display only the mentors of the particular user

Views in Drupal 8 that shows each user's mentors

Contextual filter by user ID in Drupal 8

With this done, we now have a block that shows the pictures of mentors on each user page. However, this block is not yet added anywhere to the site.

4. Shaping user profiles with the Layout Builder

It’s time to finally unite it all together. The Views block can be attached to the profile using the traditional Drupal block layout as a simple option. However, the new Layout Builder that appeared in Drupal 8.5 offers an amazing drag-and-drop interface for this purpose!

The Layout Builder is used with all fieldable entities, including user profiles. In addition to enabling the module, we need to enable the Layout Builder on the Manage Display tab of the particular entity type (in this case — user account settings).

Enable Layout Builder for entity type

The Manage layout button takes us to the drag-and-drop interface where we can add sections with a different number of columns, set their width proportions, and add blocks to them. Blocks include Drupal fields, Views blocks, forms, menus, and much more.

adding blocks in Layout Builder Drupal 8

Every Drupal block is configured on the right sidebar with all settings traditionally available in “Manage display.”

Configuring field in Drupal 8's Layout Builder

We are creating a three-column section and adding profile fields as blocks, including the “My featured photos” filed and the “My mentors” Views block. We will save the result and see how our profile looks.

User profile created in Drupal 8's Layout Builder

Of course, it still needs a good touch of HTML and CSS. However, we have only touched the tip of the iceberg of what core Drupal 8 modules can do for building user profiles. The opportunities are endless!

Building user profiles in Drupal 8 with our team

Let your user profiles look exactly as you wish, with no limits to your imagination. Entrust building user profiles to our Drupal team who will use core, contributed, or custom modules created specifically for your case. Contact us!

Aug 15 2019
Aug 15

Drupal is moving to the future and adopting more and more innovative trends. No wonder high tech engineering leaders trust Drupal and build their sites with it.

Drupal in high-tech: innovative companies + innovative CMS

A perfect match! Thinking about Drupal’s innovative spirit, we want to mention some of its many capabilities, so here are at least a few:

Great examples of high tech company websites built on Drupal

Let’s learn more about Drupal for high tech company websites by looking at the following examples.


Electric cars, solar panels, and renewable energy are the three pillars of expertise of the incredible innovator Tesla. The high tech giant has also chosen the right CMS — Tesla’s site is built with Drupal and Adobe Experience Manager.

Tesla website built with Drupal

An amazing web design with background videos and zooming effects allows customers to see the products almost like they were there in real life and be inspired. Users can select among 30+ regions to see the website version in their native language.Tesla website built with Drupal

While choosing the products, you can specify all parameters and see the changed picture without a page reload. There is also an online payment feature.

Tesla website built with Drupal

General Electric

While we are discussing Drupal for high tech industry leaders, we want to mention General Electric Company (GE). Its innovation builds, powers, moves, and cures the world. And Drupal powers their website where we can learn this and more about them.

The site’s users can select among such GE businesses as aviation, power, renewable energy, healthcare, lighting, and so on. The large and handy search bar on the main page also quickly takes them to where they wish. The stylish design of many sections features background videos.

GE website built with Drupal

As 130 countries are currently home to GE operations, users can select and visit their specific site version.

GE website built with Drupal


Iteris Inc. produces innovative sensors and other solutions that predict the state of traffic, weather, soil, etc. to boost the agriculture and transportation industries. While Iteris products win high tech innovation awards, Drupal has won their trust as a CMS.

Iteris website built with Drupal

Iteris chose Drupal 8 to revamp their website as part of the rebranding campaign. The site is great from frontend to backend — from the stylish design with the main page’s slider to complex permissions for particular user types.

Iteris website built with Drupal


The Pfizer multinational pharmaceutical corporation uses technology and innovative science for advanced patient care.

Pfizer website built with Drupal

Their website has 50+ country/region and language options. The content is presented in five key categories: “Your Health,” “Our Science,” “Our People,” “Our Purpose”, and “Our products.”

Pfizer website built with Drupal

There is a strong search feature for Pfizer’s products, the option to find the clinical trial results, and much more.

What about your future website?

Hopefully, these examples of high tech company websites built on Drupal have inspired you. They are just a few from the million+ Drupal sites worldwide in various industries — e-commerce, education, business & finance, and so on. In addition to being innovative and powerful, the CMS is very versatile and flexible.

So contact our development team to discuss how Drupal can be helpful in your case or with your website idea!

Jun 26 2019
Jun 26

Streamlining the content creation and approval processes is necessary on many websites. Editorial workflows in Drupal 8 are easy to create and manage. This is achieved by the Content Moderation and Workflows modules.

These modules are Drupal 8’s innovation — they have appeared in the core and reached stability during the time between the introduction of Drupal 8.2 and Drupal 8.5. So welcome on this tour of creating and managing editorial workflows with them!

Drupal 8 editorial workflows with Content Moderation in a nutshell

By default, Drupal offers you the “Published” and “Unpublished” states for content, as well as a system of permissions for particular roles to manage it. However, with the Content Moderation and Workflows modules, the process gets much more advanced.

With them, you, out-of-box, have an editorial workflow that has such content states as “Draft,” “Published,” and “Archived”, as well as configurable transitions between them. Transitions look like “Publish” (move from Draft to Published), “Archive” (move from Published to Archived), and so on.

The workflow can be customized to your liking. This is achieved by adding custom content states (like “First edit”, “Second edit,” “Needs review,” “Needs work,” or any other) and creating the appropriate transitions.

An important benefit is that you can have a published version of content available to visitors, and at the same time have a working copy to review or edit. The content revisions are stored in the database.

You are also able to create multiple content workflows and apply each to a specific content type. And, of course, granular content moderation permissions are available.

Our Drupal development team will be happy to help you create the content moderation workflows to meet your organizations’ needs.

A closer look at managing editorial workflows in Drupal 8

Enabling the modules

It begins with enabling the Content Moderation and Workflows modules on the Extend tab.

  • The Workflows module provides a UI and an API for managing the states and transitions between them. The states and transitions are supplied by other modules (in our case, Content Moderation).
  • The Content Moderation module provides the content states and transitions for editorial workflows.

Enabling modules for editorial workflows in Drupal 8

As soon as the two modules are enabled, we see the built-in “Editorial” workflow in Configuration — Workflow — Workflows.

Built-in editorial workflow in Drupal 8

Managing the states and transitions

We see states and transitions listed and provided with the options to “Add a new state” and “Add a new transition.”

Managing states and transitions in Drupal 8 editorial workflows

The transitions should be named clearly, with the use of verbs. They should show from which state and to which state they lead. In this example, the “Restore to Draft” transition restores the content from Archived to Draft:

Transition between states in Drupal 8 content workflows

Applying the workflow to specific content types

Our workflow can be applied to particular content types, custom block types, or media types (the latter is true if you have the Media module enabled). So you can have different editorial workflows for articles, news, blog posts, photos, videos, and so on.

Applying Drupal 8 editorial workflows to content types

Setting content workflow permissions

It’s important to make sure that all workflow participants have the necessary permissions. This is configured on the People — Permissions tab. The appropriate roles like Author, Editor, and so on, can be created on your website according to your workflow needs.

The permissions are in the “Content Moderation” section and many of them are in the “Node” section. Both thesesections should be carefully checked.

For example, the Author should be able to create new content, edit their own content, view their own unpublished content, have the permission to “Create New Draft” transition, and so on. The Editor should be able to restore content from draft to publish, view any unpublished content, and so on. Both should be able to view the latest version, view revisions, and revert revisions.

Permissions for content workflows in Drupal 8

With everything configured, your editorial workflow could look, for example, like this.

  • The author creates a draft and the editor checks it and transfers it to the published state.
  • The author then suddenly decides to change something and edits this piece of content. The edited copy is saved as draft and is seen to the Author and the Editor in the “Latest version” tab of the content piece.
  • The editor reviews the content again.
  • All this time, the published version remains available all readers as before.

Let’s create an editorial workflow for your team

No matter how complex your desired workflows are, they can be configured with just Drupal 8 core features. Entrust our development team with creating editorial workflows for your website. Enjoy efficiency in content editing!

Jun 12 2019
Jun 12

It’s exciting to see how once unimaginable things become popular digital practices! A vivid example is artificial intelligence. We have shared with you an article about artificial intelligence coming to your apps thanks to cognitive services. What about Drupal websites — are they ready for AI? The answer is a definite yes! Let’s see how artificial intelligence and Drupal 8 come together.

Benefits of artificial intelligence for Drupal 8 websites

Smart machine thinking is meant to create a new level of user experiences. By leveraging the huge potential of artificial intelligence on your Drupal website, you will be able to:

  • offer smarter, more engaging, and more advanced features to your users
  • better analyse your users’ behavior
  • create more personalized experiences for them
  • raise e-commerce conversions through more targeted offers
  • streamline and automate many workflows and take the load off your staff
  • raise your company’s image as customers see you using advanced technologies

and much more.

Useful Drupal modules for artificial intelligence & their capabilities

The Drupal community is highly interested in innovative trends. The AI has been a hot topic at the biggest Drupal meetups including DrupalCon Baltimore and Drupal Europe Darmstadt. And, of course, useful Drupal modules have been created that bring artificial intelligence to websites. Let’s review a few of them.

Azure Cognitive Services API 

We have mentioned Microsoft Azure Cognitive Services at the beginning, and here is a module that connects them to Drupal websites. 

The Azure Cognitive Services API Drupal module allows developers to enrich Drupal websites with features like speech, vision, and facial recognition, emotion detection, and much more. There is a pack of 4 submodules.

  • Azure Face API

The Azure Face API module integrates with Microsoft Face API service. It is meant to detect and recognize human faces. The tool is able to compare similar faces and group their pictures together, as well as identifies people who were previously tagged. Face API can detect age, gender, hair color, and more.

Azure Face API

The current capability of the module is detecting up to 64 human faces with a high level of precision. The detection result is specified in a file.

Azure Face API

  • Azure Emotion API

The Azure Emotion API connects the Microsoft Face API to your website. It recognizes the emotions of one or more persons on the picture (happiness, sadness, surprise, anger, neutral, and so on). The tool puts a bounding box on a person’s face and returns the result in a JSON file.

Azure Emotion API

Azure Emotion API

  • Azure Computer Vision API

The Azure Computer Vision API module analyzes the content on images and returns information about them. It uses tags and descriptions, identifies image types and color schemes, and can be your helpful assistant in content moderation. For example, you can configure it to apply restrictions on adult or abusive content.

Azure Computer Vision API

  • Azure Text Analytics API

The Azure Text Analytics API module is meant for natural language processing. Its key features are:

  • Sentiment analysis. It detects negative or positive sentiments and gives them a score.
  • Key phrase extraction. It extracts the key points in the text. 
  • Language detection. It detects the text language. (The module supports almost 20 languages for now).

Azure Text Analytics API

Azure Text Analytics API

Automatic Alternative Text

Adding ALT text to images is a rule of thumb in today’s web. It is vital for web accessibility and SEO. The Automatic Alternative Text module provides ALT text automatically by using Microsoft Cognitive Services — namely, Computer Vision API.

It detects the content of images and describes it in human-readable text while specifying the level of confidence. The tool can generate more than one ALT tag, create thumbnails, and much more. 

Automatic Alternative Text

Cloudwords for Multilingual Drupal

It’s a fact that Drupal 8 is a great choice for multilingual websites, but everything is even greater with this module. The Cloudwords for Multilingual Drupal module uses AI to help you create high-quality multilingual campaigns. 

The module lets you manage your content localization quickly and efficiently. It also has strong workflow automation and project management capabilities. 

Drupal Chatbot

The era of chatbots is already here! The Drupal Chatbot module allows you to create a basic voice or text-based chat bot. The module uses Dialogflow as natural language processing agent, but you can also extend it with Alexa. 

The Drupal Chatbot can be enabled as a block and extended with various functionalities. For example, it supports Latest Pages, Top Rated Pages, Latest Article Search, and so on. The module is actively being developed.

Drupal Chatbot

Drupal Chatbot

Chatbot API

The Chatbot API module facilitates the integration of various chatbots and personal assistants with your Drupal website. It creates a layer to serve Drupal data to these services.

For now, the module supports Alexa and Dialogflow, for which it uses submodules, and works together with the corresponding modules (Alexa and Dialogflow Webhook). However, it’s just the beginning, and more integrations are expected.

Acquia Lift Connector

The Acquia Lift Connector module integrates your website with the Acquia Lift personalization tool. It enables you to create highly personalized offers based on user’s behavior. The module offers real-time audience segmentation, behavioral targeting, A/B testing, and more.

It has a unified drag-and-drop user interface with all the customer information where you can create personalizations. Acquia Lift uses machine learning to automatically recommend content to users.

Acquia Lift Connector

Acquia Lift Connector

Embrace artificial intelligence on your Drupal 8 website

Just imagine, all this and much more could come to your website today! Our Drupal team is ready to help you with building AI integrations based on these and other modules. And if there is no module yet for your idea, we will create a custom one. Enjoy artificial intelligence and Drupal 8!

May 22 2019
May 22

Drupal allows you to find the most effective solution for every business case. Large organizations often need more than one website but a collection of related sites, which would be easy to manage. To meet this need, there is the Drupal multisite feature that has become popular among education websites, government websites, corporate websites, and so on. Let’s explore what Drupal multisite is, how it works, and when it is the best choice.

What is Drupal multisite?

Multiple sites combined in the same Drupal installation — that’s the basic essence of Drupal multisite feature. Instead of one site, you have a collection of websites that are created, managed, deployed, and updated from one place because they share one codebase. They have different web addresses and also may differ in nuances according to your requirements.

Drupal multisite architecture

In the multisite setup, different Drupal sites share:

  • Drupal core
  • codebase
  • available modules
  • available themes

At the same time, they do not share:

  • base domains or URLs
  • databases
  • enabled modules
  • enabled themes
  • configurations
  • files
  • user profiles
  • content

Here is an example of Drupal multisite feature created by our company for a global retail chain of goods for homes. Websites for different countries work from the same Drupal core and have different features enabled from the admin dashboard and saved in configuration.

Drupal multisite example

Drupal multisite benefits

For some companies, a strong multisite feature is one of the reasons they have chosen Drupal at all. Here’s why.

The Drupal multisite is valued for its big savings in time, effort, costs, and resources across website development, installation, and management. Sites are hosted on the same server, have the same codebase, and all the processes can be performed on them at once. This is especially noticeable when there are numerous sites.

For example, updates and upgrades don’t have to be repeated for all websites — one action is enough. This includes core, module, and theme updates, as well as updates to the server OS, applications, and database software.

With multisite, it is also easy to introduce new features. Say you create a new module for your site — and it is easy to share it across others.

Another benefit of Drupal multisite is the presence of useful solutions and tools. Among them:

Drupal multisite risks

In some cases, Drupal multisite can present risks — the "flip side" of its benefits. They have caused some heated discussions in the Drupal community.

Namely, if there are any traffic spikes or security issues on one site, this can potentially influence others. And any mistakes during website updates or changes can harm other websites as well.

So Drupal multisite setup and maintenance is a responsible task for experienced teams with advanced technical skills. Websites should be managed with great care, best practices and tools, and always kept up-to-date.

And, of course, multisite should be chosen when it suits the particular case, recommendations for which we will discuss next.

When Drupal multisite is the best choice

As usual with benefits and risks, they are relative, and depend on the situation. Here is when Drupal multisite is a good fit, smooth in management, and most beneficial:

  • First of all, a “rule of thumb” for choosing multisite is that functionality should be similar across websites.

They may look differently due to different enabled themes, or even represent completely different industries.

Alternatively, they may look similar (like in the case of departments for the same organization), and have similar functionality with slight differences necessary for specific departments.

  • You can consider multisite if you are not planning to introduce serious feature changes to selected sites from your “cluster.” If serious changes are planned, they should apply to all sites.
  • Multisite is most successful if sites in the collection are the responsibility of the same development and support team. And, remember, it should be a careful and experienced one.

If the functionality on websites is significantly different, it is better to use other approaches instead of multisite. It’s possible to considerably optimize codebase management using Git version control system, Composer package manager, and more. 

Let’s discuss multisite for your case

To decide whether you will benefit more from the multisite setup or from separate sites, from just multilanguage, and so on, you can always consult our development team. We will also be your development or optimization team to fulfil these ideas. Our 11 years of expertise let us do it perfectly.

Remember, we started this post by saying that Drupal has an effective solution for every business case. And it’s true. Let’s find one for you!

May 02 2019
May 02

“After soliciting input and consulting others, I felt JSON:API belonged in Drupal core.”

Dries Buytaert, creator of Drupal

Here is the news that will make the supporters of API-first Drupal simply lose their breath. Among the new features of the freshly released Drupal 8.7.0, is JSON:API in Drupal core! It is now part of Drupal 8 web services responsible for data exchange with third-party applications. Let’s learn more about JSON:API’s work, its road to Drupal’s “main squad,” and why JSON:API in Drupal core as of the release 8.7 is a significant achievement.

API-first Drupal future has arrived

New times dictate new trends. Businesses today can benefit from much more than just websites. They can embrace different channels through the “Create Once, Publish Everywhere” (COPE) method. Their content can “fly” to mobile applications, Internet of Things devices, and so on, via an API.

Being API-first means being fully ready for this interaction. API-first Drupal future has been the Drupal community’s priority in a recent couple of years. The new Drupal 8 in 2015 came packed with a REST API, which became more and more enhanced in the subsequent minor releases. This is the result of the API-first Drupal Initiative and hard work of the community.

In addition to Drupal 8 core RESTful web services, there emerged an ecosystem of projects for API-first Drupal:

  • contributed modules like GraphQL, Simple OAuth, Open API, Consumers, RELAXed Web Services, Subrequests etc.
  • decoupled distributions Contenta CMS, Reservoir, and Headless Lightning
  • Waterwheel.js SDK

Among the tools, of course, the JSON:API contributed module, which has now finished its way to Drupal core. Congrats!

The road of JSON:API to Drupal 8 core

The JSON:API specification was increasingly popular in the JavaScript community. Dries Buytaert in 2017 recommended the young JSON:API contributed module for Drupal 8 core. As the Drupal creator said, he felt JSON:API belonged there. Still, enormous work was ahead.

The module’s main creator and maintainer was Mateu Aguiló Bosch (e0ipso). But Dries asked Wim Leers and Gabe Sullice of Acquia to devote as much time as possible to helping to get this module ready for the core. Overall, as Wim Leers wrote in his article, the project had as many as 103 contributors.

According to Dries Buytaert, by the time JSON:API was committed to Drupal 8.7 branch, it had taken:

  • 28 months
  • 450 commits
  • 32 releases
  • 5,500+ test runs

Record-breaking module: immediately stable in core!

Usually, Drupal contributed modules are added to the core as experimental and only become stable when polished to perfection. However, JSON:API was the first module in history to be added to Drupal core as stable from day first! This is what Mateu Aguiló Bosch, the module’s main creator, said.

How JSON:API module works

When enabled, JSON:API in Drupal core immediately makes your Drupal entities (blog posts, users, comments or whatever) available via a web service API. For JSON:API, your entities are resource objects. It creates URLs by which the entity types and bundles can be accessed using HTTP methods.

According to Dries, both developers and content editors can create their content models directly in the Drupal user interface. In addition to the great authoring experiences, Dries said, they get a powerful and standards-compliant web service API that allows to pull this content to JS applications, digital kiosks, chatbots, voice assistants, and so on.

It is possible to:

  • fetch the selected entity fields only (for example, blog titles)
  • include relationships (for example, blog authors) and avoid additional requests
  • filter the resource collections
  • sort the resource collections
  • do the pagination of the resource collections

and much more.

What this news means for the users of JSON:API contributed module

According to Wim Leers, the users of JSON:API 8.x-2.x contributed module on Drupal 8.5 or 8.6, can simply update to Drupal 8.7 and delete the contrib. There should be no disruption in its work. Please note that the contributed module will no longer be supported by the end of 2019.

Update to Drupal 8.7 and enjoy JSON:API in core!

Congrats again to the tireless team of JSON:API creators! The API-first Drupal approach gives us an unlimited freedom in fulfilling our customers’ third-party integration ideas. So if you wish to: smoothly update to Drupal 8.7 create data exchange solutions with JSON:API in Drupal core expand your business reach to new channels Contact our Drupal developers!

Apr 10 2019
Apr 10

When it comes to creating websites quickly and easily, there’s hardly anything that compares to Drupal distributions. These are ready Drupal builds with core, theme, set of modules, libraries, and configuration ready for a particular industry, website type, or use. One of the hottest uses today is decoupled Drupal architecture. Of course, Drupal has got distributions for it that give you decoupled Drupal out-of-box. They include Reservoir, Headless Lightning, and the hero of our article — Contenta CMS.

Decoupled Drupal as the trend of the day

One of the main creators of Contenta CMS distribution, Mateu Aguiló Bosch aka e0ipso, in his speech mentioned the following. He noticed “the explosion of devices and places where people want to consume content.”

Projects are no longer about websites, said the developer. They are also about having an iOS and an Android application, putting something on a Roku, an Apple watch… or even at a smart oven!

Here is where decoupled Drupal comes in. This is an architecture that allows you to entrust front-end experiences to other technologies, while Drupal serves as a data source.

This results in expanding your digital reach and, in many cases, using the best characteristics of these front-end technologies. The popular choices for Drupal today are JavaScript frameworks like Vue, React, Angular, Gatsby (built with React), and more. They are primarily characterized by blazing fast performance and interactive features.

Thanks to the API-first Initiative, Drupal is well-suited to this kind of interaction. Great helpers for developers are RESTful web services in Drupal 8 core, and now — JSON:API in Drupal 8.7 core as of May 2019. This is enhanced by useful contributed modules like GraphQL, Subrequests, Relaxed web services, and so on.

Contenta CMS distribution for decoupled Drupal out-of-box

Despite the wealth of decoupling tools in Drupal, distributions offer the easiest approaches to the setup. The idea about a decoupled distribution emerged at DrupalCon Baltimore, and then the Contenta CMS distribution was created.

Contenta works on an “API-First” basis and uses JSON:API. Its main aim is to make decoupled Drupal setup easy even for Drupal novice. It also allows front-end developers get a powerful Drupal backend without having to know “drupalisms.”

In addition to the decoupled Drupal CMS (Contenta JSON:API), there are demos for the most popular front-end technologies — Contenta React, Contenta Vue Nuxt, Contenta Angular, Contenta Gatsby, and so on.

The benefits of Contenta CMS distribution

  • decoupled Drupal out-of-box from first second
  • collection of the most needed modules
  • friendliness to non-Drupal developers
  • demo content
  • detailed documentation
  • demo front-end applications

Key modules included into Contenta CMS

  • JSON:API is a zero-configuration module that automatically creates API endpoints to expose your Drupal entities in the JSON format.
  • JSON:API Extras helps you make settings for the JSON:API module (enabling or disabling the resources, overwriting their names, and much more).
  • JSON-RPC implements a remote procedure call (RPC) protocol. It lets you execute remote actions, for example, clear caches or put the site in maintenance mode.
  • ContentaJS improves performance even in case of frequent requests. This is achieved by creating configuration endpoints that Node Server reads for automatic bootstrapping.
  • GraphQL helps you expose data based on a GraphQL schema. The main benefits are exact queries and improved performance with no round-trips to the server.
  • Decoupled Router helps you manage page routes on the front-end by providing an endpoint for exact path aliases.
  • Consumers registers your Drupal data consumers and helps you create variations based on which consumers is requesting the data.
  • Consumer Image Styles integrates with JSON:API and allows application developers to specify the image styles they need.

Let your decoupled Drupal setup be the smoothest!

If you want to try decoupled Drupal, be it Contenta CMS distribution or “classic” Drupal installation, you can always entrust this to our Drupal team. We offer development and support services, so you can reach out to us at whatever step you are in. Maybe decoupled Drupal is the luckiest choice for your website!

Mar 27 2019
Mar 27

Every store owner dreams that their shopping cart stay full of goods and successfully proceeds to checkout. There are some general shopping cart tips to achieve this. Today, we will focus on Drupal Commerce stores that have many ways to make your cart convenient and attractive. To implement them, there are useful Drupal 8 modules for your  Drupal Commerce shopping cart, which we will review right now.

The built-in Drupal Commerce shopping cart

Drupal Commerce 2.x for Drupal 8 online stores comes with a full-fledged shopping cart. It offers a add-to-cart form, which allows customers to add and remove goods.

The add-to-cart form is customizable and fieldable. It is found on the "Manage form display" tab of the “Order item types” section. You can enable the product quantity field, the unit price field, and add more fields.

The form can be attached to content types as referenced entity, so that you can, for instance, post articles with the option to buy a product.

Drupal Commerce 2 offers a shopping cart as a block that can be put anywhere on your website. The shopping cart contents can show on every page. The cart can also be customized via Drupal 8 core Views.

HTML and CSS can further customize its display. Finally, extra features can be added by contributed modules.

Useful Drupal 8 contributed modules for Drupal Commerce shopping cart

Commerce Cart API

The Commerce Cart API module was introduced at Drupal Europe in Darmstadt by its creator, Matt Glaman of Commerce Guys. In his speech “The road to a headless Drupal Commerce future” he emphasized the importance of JavaScript-based e-commerce solutions.

As Matt also wrote in his article, the Commerce Cart API module improves the shopping experiences by providing users with progressively decoupled components.

The module offers lightweight RESTful endpoints for dynamic shopping cart interfaces. Its default implementation is the Commerce Cart Flyout module.

Commerce Cart Flyout

The Commerce Cart Flyout module uses progressive decoupling principle to give users modern cart update experiences.

It provides a flyout sidebar that shows whenever a user clicks on the shopping cart block or presses the “add to cart” button. The user can view the cart contents, change the product quantities, or remove products without the page reload.

The module’s JavaScript logic is built on Backbone.js and Underscore.js, which provides for a very clean structure. According to Matt Glaman, they were chosen because they ship with Drupal core. The module is highly customizable and offers nine ready Twig templates.

Commerce Ajax Add to Cart

The Commerce Ajax Add to Cart for Drupal Commerce shopping cart is a popular module with 25,420+ total downloads, but it is in the beta stage for Drupal 8. With it, the add-to-cart actions are performed using AJAX. The shopping items are updated with no page refresh, and a popup message shows when a new product is added.

Ajax Add to Cart

Here is another module that ajaxifies the process of adding products to cart. This is the Ajax add to Cart module for Drupal 8 shopping cart. When a user adds a product, a popup is instantly generated, and the shopping items are updated.

Commerce Variation Cart Form

The Commerce Variation Cart Form module provides an add-to-cart form for individual entities of product variations. The form is added to product variations as a field.

This is useful when you need to display individual entities with its own add-to-cart functionality. You can also replace the standard Drupal Commerce add-to-cart form with them.

Commerce Add To Cart Link

With the Commerce Add To Cart Link Drupal 8 module for Drupal Commerce shopping cart, you can have the “add to cart" field as a link instead of a form. A common use case is to display the link on product listings (overviews, related products, and so on).

The link is rendered via Twig template, which lets developers feel free in customization. The module has a submodule Commerce Add To Wishlist Link that provides a link for adding products to your wishlist with the Commerce Wishlist module.

Commerce Combine Carts

The Commerce Combine Carts combines multiple shopping carts of the user into one. The module is in the beta version for Drupal 8.

It works in two ways:

  • combines all of a user’s order items into this user’s main shopping cart
  • combines all of a user’s shopping carts into one when the user logs in

Let’s shape your Drupal Commerce shopping cart and whole store

Our Drupal team is ready to help you use these and other modules, or create custom ones for your Drupal Commerce shopping cart. We can also build you a Drupal 8 online store from scratch or optimize your existing one. Contact us!

Mar 06 2019
Mar 06

Drupal 8 has dozens of useful performance optimization modules. We have already reviewed the core BigPipe module and the contributed Subrequests module. Today, we are pleased to discuss a new tool to speed up Drupal sites — the Quicklink module in Drupal 8. Using the example of its work, we will see that a fast website is always a step ahead of the users’ intentions. Let’s go.

The essence of the Quicklink module in Drupal 8

The Quicklink module is meant to speed up Drupal 8 sites through the mechanism of link prefetching.

First, links in the user’s viewport are detected. These are links that the user might want to visit next. When the browser goes idle, the content from the links begins to be saved in the cache. If then the user navigates to one of these links, the content is there already.

The Quicklink module is based on GoogleChromeLabs Quicklink library. This lightweight JavaScript library weights less than 1 kb when compressed.

To detect the links, the module uses the Intersection Observer API. The requestIdleCallback method is responsible for waiting until the browser goes idle. Quicklink also discovers slow connections, for which it does no prefetching.

The module follows good Drupal performance improvement practices. More details are coming below.

How the Quicklink module in Drupal 8 works

Installing the Quicklink module

The Quicklink library will be loaded from a CDN by default, or you can choose to store it locally. The module can be installed manually or via Composer. Its creators recommend installation with Composer, for which you will also need to check the Composer.json file.

Configuring the Quicklink module

When the module is installed and enabled, its settings are available in the site admin dashboard at Configuration — Development — Quicklink Configuration.

The Quicklink module’s default settings are suitable for most websites. Let’s take a closer look at its options, which are presented in 5 tabs.

1) In the “Prefetch Ignore Settings” tab, we can choose which links to ignore (not prefetch). To follow Drupal performance practices, the module ignores these links by default:

  • admin links (that have /admin, edit/, or are otherwise known to be admin links)
  • AJAX-enabled links (the ones that have a use-ajax class or end in /ajax)
  • links that have hashes (#)
  • links that have file extensions (so we don’t prefetch PDFs, MP3s etc.)

It is also possible to add particular URL patterns to ignore.

2) In the “Optional Overrides” tab, we can:

  • override the CSS selector where the module looks for hyperlinks (the default is the whole document)
  • override the domains allowed for prefetching
  • provide the specific paths allowed for prefetching

3) In the “When to Load Library” tab, we can control in which context the Quicklink library will load. The recommended Drupal defaults are:

  • to load the library for anonymous users only
  • disable prefetching during sessions (for example, in Drupal Commerce cart)

We can select the content types for which the library will not load.

4) In the “Extended Browser Support” tab, we can choose to use or not Intersection Observer polyfill from This will allow the Quicklink to work with such browsers as Safari or Microsoft Edge.

5) In the “Debug” tab, we can turn debug mode on. This will save Quicklink logs for further display on the Developer Tools console. This will give us detailed information when we want to analyze the performance and see why prefetching was ignored for some links.

We can see the prefetching process on the Network tab of Chrome Developers Tools. The “Initiator” column will list the request initiator as “Quicklink.”

Performance improvement for your Drupal 8 website

Quicklink module in Drupal 8 expands developers’ arsenal of speed optimization options. Our Drupal team is ready to help you use the Quicklink module, as well as examine your website from different angles and improve its speed.

Feb 27 2019
Feb 27

Drupal 8 websites can easily exchange data with third-party websites or apps. These can be iOS or Android devices, applications on Vue.js, React, Angular, or other JS frameworks, and so on. Web services in Drupal 8 core take care of the smooth interaction. To share Drupal data, developers often use REST export with Views in Drupal 8. Today, we will take a closer look at Views REST export.

REST export with Views in Drupal 8

The Views module is in Drupal 8 core, and lets us quickly create collections of content, users, taxonomy terms, and more. We can organize Drupal data into a View and prepare it for export in the JSON format needed by third-party apps. As a result, we will have a RESTful API endpoint, where other resources can call to get our data.

Enabling the Drupal 8 modules for REST export

To provide REST export with Views in Drupal 8, we begin with enabling the core “Web services” modules. Two of the four will be enough for today’s example — RESTful Web Services and Serialization.

Creating a RESTful View

We are going to share Drupal content. For this, a custom content type or a default one (“Article” or “Basic page”) will be OK. Let’s use “Article.” We can create a couple of test articles (Article 1, Article 2, Article 3) and then move on to the View creation.

In the “Structure — Views” tab of our site’s admin, we click “Add new view,” and do 3 things:

  • Give our View a name.
  • Check “Provide a REST export” option (which we see next to the usual “Create a page” and “Create a block” options).
  • Write a REST export path (where other resources can call to get our content).

Configuring the RESTful View

Our RESTful View looks almost like the classic version, but the output is in JSON. It has standard Views capabilities, so we can:

  • choose to display fields, entity, or search results
  • do filtering and sorting
  • limit the amount of results
  • create contextual filters

and much more.

Let’s filter our View to only show the “Article” content type.

Now we choose to display fields:

And we add a couple of fields to the View — “title” and “body.” It is also possible to specify a custom URL path for each field in the field settings, if we for some reason do not want to use their default ones.

An unusual but important element in the RESTful Views interface is the “Serializer” tool in the “Format” section. In its “Settings,” we can select the formats to output our content in.

In our case, we have a choice between JSON and XML (other modules would add more formats). If no format is chosen, the default output will be in JSON.

Let’s save our View. The data in JSON is available through the URL path that we provided (json/content). This is our REST API endpoint, and it has this structure:


We receive JSON output in ASCII format that is encoded for security reasons. Our JSON is ready to be sent to third-party apps and then decoded by them.

To check if the code validates, as well as to see how it looks in a more “attractive” way, we can use a Chrome app or one of online JSON formatters & validators.

Here’s how one of them processes our code:

Another JSON formatter does more decoding for our JSON better, and makes it even more human-readable:

JSON validates, so our View is ready to share content. We have successfully configured REST export with Views in Drupal 8.

Let’s create the desired export for your Drupal website

Although the REST architecture supports CRUD (create, read, update, and delete) operations, Views is only for R (reading).

So if you want mobile app users to be able to edit your Drupal 8 content, REST export with Views in Drupal 8 will not do for you. We could offer you a different solution then like a full REST API in the JSON format, custom endpoints, and so on.

Whatever are your ideas about third-party integration, our Drupal team will help you implement them!

Feb 13 2019
Feb 13

Various forms are the heart of website’s interaction with the user. They are vital for usability, conversions, marketing analytics, and more. So form building tools are in demand — the Drupal Webform module ranks 7th on the 42,000+ list of contributed modules. The Webform module has recently received its stable version for Drupal 8. We will give it an overview and show an example of creating a simple form with the Webform module.

Webform module in Drupal 8: finally stable

The Webform module lets us create any kind of forms from simple to complicated multi-page ones. It also adds settings and features to them like statistics collection, email notifications, confirmations, data export in various formats, fine-tuned access, conditional logic, filtering and sorting, pushing results to CRM, downloading results as CSV, and more.

The stable version for Drupal 8 finally arrived on December 25, 2018. Drupal creator Dries Buytaert congratulated the Webform module creator Jacob Rockowitz via Twitter and called the release a big milestone.

The release was soon followed by Webform 8.x-5.1 on January 1 and Webform 8.x-5.2-beta1 on January 25.

Defining forms in a YAML file or admin interface

One of the most remarkable new features of Webform module in Drupal 8 is the ability to define a form in a YAML file. Webform module creator Jacob Rockowitz also built the YAML Form module specifically for Drupal 8. As of Webform 8.x-5.x, the YAML Form merged into Webform. So developers now can go to the YAML file by clicking the “Source” tab.

But there is also a user interface for form creation that is intuitively understandable even for website administrators. The admin dashboard contains examples and videos, as well as a built-in contact form.

The Webform ecosystem of modules in Drupal 8

The Webform module for Drupal 8 is a complex module with 20 submodules that demonstrate its varied capabilities. The minimum ones to enable are Webform and Webform UI modules.

There is a also number of contributed modules that work together with Webform and extend the its capabilities still further: Webform Views, Webform REST, Webform Analysis, Webform Encrypt, Webform Composite Tools, Webform Invitation, CAPTCHA, Honeypot, MailSystem, SMTP, and more.

Creating a simple webform with the Webform 8.x-5.1 module

We will create a feedback form for customers from scratch. With the Webform and Webform UI modules enabled, we go to Structure — Webforms, click “Add webform," name “Let us know your thoughts," and save it.

The form then needs to be completed with fields that are called “elements” in Webform. The “Add element” button leads us to the list of 60+ available fields, both simple and complex.

We will need a field for the customer’s name. For this purpose, there is a complex “name” element with sub-elements (First name, Last name etc.) that can be checked or unchecked to be included in the form or not.

If no complex name structure is needed, we can use a simple “Text field” element for the name. Let’s call it “Your name (optional)” in the “Title.”

For the email field, we select an “Email” element and add a placeholder for email addresses

An element of “Checkboxes” type will let customers check some options. For our feedback form, we list the company’s services as “option values”.

To let customers give their votes, we will us an element of the “Rating” type and set the value range from 1 to 10.

A “Text area” element will host customers’ comments.

On the list of all fields for our form, we can drag and drop the fields to change their order, or check them to quickly make them required/optional.

Let’s choose where the submitted forms will go. On the form’s dashboard, we select Settings — Emails/Handlers and click “Add email.” There, we configure the “sent to” email address (in our case, it’s the default [site:mail] is OK). We also add a custom subject “You received a new form submission.”

The “View” tab takes us to our form on the website. If we submit something and check the admin email, we see new messages about form submissions.

Let’s create the forms your Drupal website needs

This was just a very simple form example where we have not even touched advanced options — conditional logic, access, submission handling, JS effects, and so on. The Webform module in Drupal 8 has unlimited capabilities, and our Drupal team can create you the forms that will work in accordance with all your requirements.

Jan 09 2019
Jan 09

Everyone loves attractive layouts for web pages. Luckily, Drupal has plenty of awesome page building tools. You will hear tool names like Panels, Panelizer, Paragraphs, Display Suite, Page Manager, Twig, and more. Our Drupal team loves to take the best of them from our arsenal, combine them when needed, to achieve amazing results for our customers. But today we would like to focus on a wonderful new tool, Layout Builder, that appeared in Drupal 8.5. We will take a closer look at creating layouts in Drupal 8 with its help.

Layout Builder in Drupal 8: let’s get acquainted

The Layout Builder module has already been compared to the Panelizer, Panels, or Display Suite modules in its capacities. This makes sense, because according to the Layout Initiative, it is meant to become the number one tool for creating layouts in Drupal 8 core. The module is currently experimental but is expected to reach stability in Drupal 8.7 in the spring of 2019.

The Layout Builder lets you define the layout of any fieldable entity type (content type, user, and so on), or its individual entity. You just select from the predefined sections and add blocks and fields to them as you wish.

The module’s UI is simple and intuitively understandable for administrators, as well as equipped with the drag-and-drop feature to swap the blocks and shape your page. Developers, in their turn, will appreciate that layouts can be defined in a module or theme and have Twig templates.

Creating layouts in Drupal 8 with the Layout Builder

Let’s take a look at Layout Builder in action. We will see how it works on this example of creating a layout for articles. We will begin with enabling the Layout Builder module in core.

Creating a layout for a content type

We go to our Article content type in Structure and select “Manage Display.” Instead of the traditional fields, we see “Manage Layout” button. We also make sure the “Use Layout Builder” option is checked in the “Layout Options.”

The “Manage Layout” button takes us to the page where we configure the article content type layout.

By clicking “Add Section”, we can select from the ready layouts with a different number of columns. The unnecessary sections can be removed.

By clicking “Add Block,” we can add standard Drupal blocks and content type fields (like “Authored by,” “Body,” “Image” etc.) from the list on the right, as well as create custom blocks. The blocks can be dragged anywhere you wish throughout the layout.

Every block has a “Configure” and “Remove” tabs in the right-hand corner next to it. Blocks can also be configured when clicked on the list to the right of the page. For example, we have just configured the article image by attaching a custom image style of 500x500 to it.

So here goes our simple two-column layout with the image and the author on the left and body on the right.

When everything is ready, we click “Save Layout.” After that, all articles will be created according to this pattern.

Creating a layout for an individual node

In many cases, you do not need the same layout for all content type items. Layout Builder lets you make every content item layout customizable by checking the appropriate option on the “Manage Display” tab.

The Layout Builder offers the handy “Layout” button near each node that leads you to its individual layout customization page. The procedure is the same as in creating a layout for a content type.

Creating different layouts within the same content type

We see how Layout Builder can build articles pages, but let’s now complicate things a little and review a special case. What if you are using the same content type for several actual types of content, and want your website to generate different layouts for them?

That was exactly the case with one of our customers. They wanted different layouts to be generated for every content type on the homepage and on the content listing page. A select list menu was used to switch between the actual types of content within the same content type, which was based on the “list” field. According to this field value, specific types of content were filtered out in Views for homepage and content listing page.

The Layout Builder could be helpful here. If the Views is based on ‘Content,” it can choose a specific view mode. And it is awesome that the Layout Builder module can create layouts for particular view modes within the same content type!

View modes can be registered in the “Manage Display” tab of the content type, and each of them needs to have the “Use Layout Builder” option enabled, and each will have its own “Manage Layout” button.

When we worked with this customer, the Layout Builder was in alpha and we successfully used a different solution, which involved Display Suite and Twig templates. Every case is unique, and deserves a special approach.

Let’s build the perfect layout for your website pages!

We have made a little overview of creating layouts in Drupal 8 with the Layout Builder. Let your website have beautiful and properly arranged layouts that work exactly according to your wishes. Just contact our Drupal development team, and we will select the optimal tools from Drupal’s “treasury,” as well as apply customization when needed, to build you the layouts that you will love!

Dec 12 2018
Dec 12

Your future awesome e-commerce website may be closer than you imagined. Drupal makes site creation quick and easy thanks to distributions. Ready distributions in the sphere of commerce are among the numerous reasons why Drupal is the best solution for e-commerce websites. They allow to quickly create an online store and spend much less on it.

You can always rely on our Drupal team for any help in selecting the optimal distribution for you and brushing it up to meet your needs. So now let’s review top e-commerce Drupal distributions.

For a start, what are Drupal distributions?

Distributions are Drupal packages that contain the core, particular modules and theme, predefined configuration, useful libraries, and so on. Drupal has 1200+ distributions, usually tailored for websites of a certain type or industry. When nothing extraordinary is needed, distributions let you avoid reinventing the wheel and get your desired website sooner.

Great e-commerce Drupal distributions

Commerce Kickstart

Commerce Kickstart is more than number one among Drupal e-commerce distributions — it is also the most popular Drupal distribution of all. It has been downloaded more than a million times. Why? Commerce Kickstart lets you quickly create an online store based on Drupal Commerce, the famous e-commerce platform for Drupal.

In addition to Drupal core, Drupal Commerce, and a set of helpful modules, Commerce Kickstart offers an attractive theme, preconfigured catalog of products, shopping cart, user login feature, search feature including filters for refined searches, product category page, social media integration, payment gateway integration, hero banner, and more.

Commerce Kickstart comes in 3 versions:

  • Commerce Kickstart 1.x for Drupal 7: The version with the minimum modules and configuration.
  • Commerce Kickstart 2.x for Drupal 7: The improved package for creating a full-featured store
  • for Drupal 8: Instead of the Drupal 8 version for the distribution, there is a browser-based tool to build a Composer file for your future online store.

Easy Booking

This distribution is primarily designed for hotel, hostel, or inn websites. However, it can be refurbished to fit many other kinds of websites that need a good booking system.

Easy Booking is available for Drupal 7 website and has not yet been ported to Drupal 8. The distribution is powered by Drupal Commerce and Drupal Rooms, two famous solutions for websites. Among the interesting and useful features of this distribution are:

  • an online booking system with a checkout
  • email notifications to the the administrator
  • a flexible system for managing rooms and their properties
  • an easy-to-manage room availability calendar
  • a front-page slideshow
  • “Our services,” “News,” and “About” sections
  • a colorized Google Map
  • responsive design

and more.

Presto! — Drupal 8 Starter Kit with Commerce Integration

“Presto!” is a distribution for Drupal 8 that contains optimally pre-configured e-commerce features based on Drupal Commerce. However, its maintainers only recommend installation via Composer to make the e-commerce functionality work.

The distribution also has plenty of general configuration that will be very helpful for online stores. This includes Google Analytics integration, XML sitemap generation, automated human-readable URL creation via Pathauto, social sharing options, pre-configured Paragraph types (Promo bar, Carousel, Block etc.), and more.

Opigno LMS

The next on our list of Drupal e-commerce distributions is Opigno LMS, which is primarily associated with education thanks to the famous e-learning platform at its base —.Opigno LMS. However, online learning is a blend of education and e-commerce.

So the Opigno LMS distribution has strong features for online selling of of learning courses that could also be useful to many other websites. It also offers quizzes, awards for successful students, certificates, forums, chats, and much more.

The distribution has a stable version for Drupal 7 and a release candidate version for Drupal 8, which means its full-fledged Drupal 8 version is underway.

RedHen Raiser

Here is an interesting distribution designed for Drupal 7 websites with fundraising campaigns. The RedHen Raiser distribution is based on the RedHen CRM with its useful RedHen Donation and RedHen Campaign modules.

This distribution is commerce-ready and allows for the easy adding of payment methods. It offers single-page donation forms, progress widgets, mini blog, automated start and end dates, and much more.

Let’s quickly create an online store for you with a distribution!

E-commerce Drupal distributions are definitely a huge time and cost saver, so there are no more excuses for you in not getting your desired website today ;) Drupal e-commerce development is one of our areas of expertise, so contact our Drupal team — and we will help you select the optimal distribution and customize it to meet your ideas!

Nov 07 2018
Nov 07

Every big Drupal release opens fantastic opportunities for websites. Three years ago, the eighth Drupal version came to this world — and the world fell in love with top-notch Drupal 8 improvements. Drupal 8 has been getting more and more awesome on its way from Drupal 8.1 to Drupal 8.5, and the latest version, Drupal 8.6, is cooler still. Drupal 8 is on its peak, but the cycles of development never stop. That’s why the Drupal community has already announced the expected release of Drupal 9 and end-of-life for Drupal 8 and 7. Let’s see what it means for Drupal 8 and 7 website owners and what action is needed from them. And, of course, our Drupal team is ready to help them take this action.

The planned release of Drupal 9 and end-of-life for Drupal 8 and 7

A little while after D8 was released, the most impatient and curious users began to ask questions about the future Drupal 9. When will it be released? What will it offer? Will websites need another upgrade?

Despite the fact that the development branch for Drupal 9 was started years ago, no one could know its release year for sure. There were even suggestions that Drupal 9 would never come at all — raised by a totally new approach to updates in Drupal 8 and the regular innovation mode.

However, the situation changed in September 2018, at the world-wide meetup for drupalers — Drupal Europe in Darmstadt. The “phantom” of Drupal 9 finally took shape. D9 will come, and the year is set! Drupal founder Dries Buytaert announced the Drupal community plans on it, as well as illustrated it  with images:

  • Drupal 9 release: 2020
  • Drupal 8 end-of-life: 2021
  • Drupal 7 end-of-life: 2021

What the future release of Drupal 9 means for Drupal 8 and 7

End-of-life for Drupal versions: hey, what does it mean?

End-of-life, or EOL, is the moment when official support for a particular Drupal version drops. The Drupal team stops watching over it and creates no more updates and patches for it, including those in the security area. This means more vulnerabilities to hacker attacks and, of course, no new features.

For example, February 24, 2016, was the EOL for Drupal 6. The service of upgrades from Drupal 6 to Drupal 7 or 8 became a very popular one with our Drupal team, because many customers applied for that. By the way, if you are still using Drupal 6, it’s high time to upgrade — better late than never!

Usually the two latest Drupal versions are supported: the newly released and the previous one. However, in the case with D9, the EOL for D7 comes a little bit later and for D8 a little bit earlier than usual — in 2021 for both.

Although the end-of-life sounds a little scary, there is no need to worry. See the next chapters for more information.

What Drupal 9 release means for Drupal 8 websites

What the future release of Drupal 9 means for Drupal 8 and 7

Drupal 8 is in the center of community’s ideas and is getting lucrative technological innovations all the time. Despite the EOL in 2021, the future looks particularly bright for D8 website owners. And here’s why.

Compared to Drupal 7, Drupal 8 is a technological breakthrough. That’s why upgrades from D7 to D8 are often lengthy (depending on the site complexity). But if you have moved to D8 from D7, that was your LAST cumbersome upgrade. No more of that from now on!

Drupal 8 websites will move to D9 quickly and smoothly. Lightning-fast upgrades will be provided for those that are using the latest Drupal 8 minor version and no deprecated APIs. This golden rule of keeping up-to-date and avoiding deprecated APIs helps even contributed and custom Drupal 8 modules be instantly compatible with Drupal 9! Our Drupal web studio is always ready to take care of this for you.

So an upgrade from D8 to D9 will be something you will barely notice. The secret is, according to the principle of continuous innovation, Drupal 8 releases backwards-compatible minor versions every half a year. Drupal 9 promises to be almost identical to the latest minor version of Drupal 8 with deprecated code removed, as stated in the article by Dries Buytaert “Making Drupal upgrades easy forever”.

What Drupal 9 release means for Drupal 7 websites

What the future release of Drupal 9 means for Drupal 8 and 7

We wrote that the future looks bright for Drupal 8 website owners, but it also looks good for Drupal 7 website owners! They only need to take more decisive action. So what should they do considering the dropping of support in 2021?

  • They might hope for a commercial support program for Drupal 7 that the community is thinking to implement, but relying on it looks like staying with the past.
  • They might also wait for Drupal 9 and jump directly to it. But they will need a big upgrade someday anyway — to Drupal 8 or 9, which are very close relatives. The time passes, and all this time they could be enjoying Drupal 8 without putting their success on the shelf.
  • The best option is to move to Drupal 8 in the nearest future. Just one upgrade will be their ticket to the future hassle-free upgrades (to Drupal 9, 10, and beyond). And, of course, they will be in line with the times and have all the Drupal 8 innovations. Our migration experts are ready to smoothly move you to Drupal 8.

So there’s no need for a fortune-teller to predict your future in relation to the release of Drupal 9 ;) The future looks bright for you in any case! The only condition is that have good drupalers on hand.

Drupal updates and upgrades, as well as Drupal support are among our areas of expertise.

Contact our Drupal team, and let’s choose the best action for your website!

Oct 03 2018
Oct 03

Hopefully, content editors and website owners are ready to gasp in admiration — because we know they will when they discover Gutenberg editor in Drupal 8. The eighth version of Drupal already boasts with easy content publishing, custom layout creating, and, as of Drupal 8.6.0, improved media handling and remote video embedding. However, there is no limit to perfection! Gutenberg editor is bringing unprecedented content creation features to Drupal 8.

Gutenberg editor in Drupal 8

Where the Gutenberg name comes from

In the XV century, Johannes Gutenberg of Germany invented the printing press, which revolutionized book creation forever. The Gutenberg editor was named after him, and is expected to bring revolutionary web content creation experiences. Well, every epoch needs its own Gutenberg!

The essence of Gutenberg editor’s work

Gutenberg is a modern, open-source user interface for creating rich pages. It is an app built in JavaScript — more precisely, React.js.

Content editors can play with Gutenberg UI to shape the exact look of their pages. They can achieve theming effects otherwise available only to CSS and HTML experts — but easy for anyone with this editor.

Any page elements can be added as blocks and formatted to your heart’s content. These can be image galleries, texts, tables, lists, shortcodes, buttons, columns, social media embeds, paragraphs, quotes, verses, files, and so much more.

Bringing Gutenberg editor to Drupal 8

Gutenberg.js was created with WordPress in mind. WordPress has already adopted the editor, which is promised to be fully ready with the release of WordPress 5. However, this JavaScript app was so lucrative that the Drupal community also decided to get it.

Drupal developers Per Andre Rønsen and Marco Fernandes introduced Gutenberg to everyone at Drupal Europe in Darmstadt and created the Gutenberg Drupal module to connect the editor to Drupal 8 websites.

This Drupal 8 module is in alpha state for the moment of writing, so it is not completely ready for use. The module has a number of issues, and the same applies to Gutenberg editor itself.

Considering the extensive works being performed for both the app and the module, this situation can change very quickly.

How the Gutenberg module in Drupal 8 works

With the Gutenberg Drupal 8 module installed and enabled, the Gutenberg editor needs to be switched on for the desired content types. The “Gutenberg experience” option needs to be selected and checked.

Enable Gutenberg editor for content type in Drupal 8

The module requires a field of “long text” type with the Gutenberg text format selected.

Select Gutenberg text format for content type in Drupal 8

When it’s done, every node opens for editing in the Gutenberg UI. As we see, its interface is pretty much white space, with the menu options hidden until you need them.

By clicking a plus icon in the left-hand corner, you are offered the list of page elements that can be added as blocks. For your convenience, blocks are searchable via the search box.

They fall into six main categories:

  • Drupal blocks

Content body, title, image, user ID, picture, email, comments, and many more.

  • Common blocks

Paragraph, image, heading, gallery, list, quote, audio, cover image, file, video.

  • Formatting

Coding, preformatted, pullquote, table, verse.

  • Layout elements

Button, columns, “more,” page break, separator, spacer.

Shortcode, archives, categories, latest comments, latest posts.

Over 30 social networks and media providers to embed content from.

List of blocks in Drupal 8's Gutenberg editor interface

Once a block is added, you can open its detailed settings in the right hand corner. For example, you can choose the background and text color, the size of the letters, the number of columns, and so on, depending on the block. Many blocks have an advanced option to add CSS styles.

Configuring a block in Drupal 8's Gutenberg editor

You can move the blocks up and down, align them as you wish, switch their block type, duplicate or remove them. In addition to the visual editor, Gutenberg also has the code editor.

To recap

Drupal itself works like the best of Legos. And now it is getting another interesting Lego box inside it — Gutenberg editor.

The time has come for exclusive content creation opportunities! If you wish to migrate to Drupal 8 to enjoy them, or if you need help with installing and configuring any modules like Gutenberg editor in Drupal 8 or other, contact our Drupal web development company.

Sep 06 2018
Sep 06

Congrats to everyone on the release of Drupal 8.6.0! ;) The new minor version of Drupal promises to be especially attractive for website users, owners, editors, and developers alike. Six months ago, when Drupal 8.5 was released, we approached it from a historic point of view, and described the exciting road from Drupal 8.1 to Drupal 8.5. However, the new Drupal 8.6.0 has already been called the greatest update in history! So let’s now take a tour of the awesome Drupal 8.6.0 opportunities for websites.

Drupal 8.6.0 release: so what’s new?

Reusable media thanks to the Media Library

The first two Drupal 8.6.0 novelties go hand in hand, so their descriptions will be closely connected. Let’s start with the Media Library — an experimental but incredibly useful module. Editors now can save various media for further reuse on websites.

The Media Library module only works with the Media module enabled as well. All media is available for managing and deleting on the Media subtab of Content. 

Media Library - Drupal 8-6-0

You can also grab the media from the library during your content creation by using the “Browse” button. For this, the “Media” field needs to be added to a particular content type. As with all other fields, media can be positioned in your content to your liking.

Media Library - Drupal 8-6-0

Remote videos in your content with oEmbed

In the previous description, we purposely chose to add media from the new built-in media type — “Remote video.” It appeared in Drupal 8.6.0 in addition to the existing “Audio,” “File,”“Image,” and “Video.”

This shows another awesome Drupal 8.6.0 feature in action — oEmbed. It is meant for embedding remote YouTube and Vimeo videos into your site’s content just with a simple URL.

OEmbed offers a lightweight and modern way of adding videos to content that is supported by many video content providers. Your users and editors will be delighted!

remote videos - Drupal 8-6-0

The “Media” field for the desired content type just needs to be specified as “Remote video,” and off you go with adding videos to content from your Media Library!

oEmbed - Drupal 8-6-0

A colorful demo site showing Drupal’s capabilities

Everyone will be able to know from the start how tasty Drupal’s features are! Thanks to Drupal Out of the box Initiative, users now get a ready-to-use demo food site.

All they need to do is, during the Drupal installation, to select “Umami Food Magazine” installation profile. It is not intended for use on live sites — just a test drive… or, let’s say, tasting session!

Drupal demo Umami Food Magazine - Drupal 8-6-0

The Umami Food Magazine is already filled with tasty content, and the “Recipe” content type has appropriate fields. The fictional site also demonstrates views, image styles, view modes, menus, and much more.

This experience is absolutely different from getting an empty Drupal website. It shows Drupal in action in a very informative and inspiring way.

Drupal demo Umami Food Magazine - Drupal 8-6-0

Drupal demo Umami Food Magazine - Drupal 8-6-0

The Workspaces module for switching between environments

A new and interesting experimental module Workspaces arrived in Drupal 8.6.0. In the right top corner of your website, the green “Live” button appears, inviting you to manage your workspaces. You immediately have the option to enable the “Stage” workspace.

So the module lets you switch between workspaces — “Stage” and “Live,” or custom ones that can be created. You can deploy your content changes to live as long as it is ready for it, which is very handy when working with multiple content items.

Workspaces - Drupal 8-6-0

Workspaces - Drupal 8-6-0

Stable migration modules and multilingual migrations

Drupal website migration is going to be smoother than before. In the friendly family of migration modules — Migrate, Migrate Drupal, and Migrate Drupal UI — another two reached the stable status in Drupal 8.6.0.

In addition, we welcome a newcomer — Migrate Drupal Multilingual, which is meant to handle “polyglot” websites migrations. It is still experimental, but we know that Drupal 8 experiments are usually lucky!

Drupal 8.5.6:

/home/user/Desktop/Drupal 8.6.0/Migration modules - Drupal 8-6-0.png

Drupal 8.6.0:

/home/user/Desktop/Drupal 8.6.0/Migration modules - Drupal 8-6-0.png

More options for the Layout Builder

Nice surprises continue to arrive from Drupal 8.5’s sensation — the Layout Builder module. Now, on the Manage Display tab of your content, media, taxonomy, comments, and more, you can see the options for using Layout Builder and for allowing individually customizable layouts for every content item. 

If you check the second option, each node will have the "Layout" button next to the traditional "View," "Edit," and "Delete."

The “Manage layout” button, just as before, takes you to the page where you can add layouts with different amount of columns, add blocks to them, and otherwise format it to your liking.

Layout Builder - Drupal 8-6-0

Final thoughts

This is just a brief rundown of all Drupal 8.6.0 improvements. And you could start enjoying them all right now! To update your website to Drupal 8.6.0, configure its new modules for your benefit, or finally migrate to Drupal 8, you are always welcome to contact our Drupal company.

Aug 08 2018
Aug 08

The dream of many website owners is to have email sending opportunities on their websites. Of course, it’s possible with Drupal 8, because it has infinite powers. We’ve already discussed how your Drupal 8 website can “speak” multiple languages, cooperate with any third-party systems, connect to all imaginable social media, make your images perfect on any device, engage your users with super interactive menus, win their hearts with high loading speed, let them publish content on the fly, and what not! It’s now time for a closer look at the options for a perfect mail sending setup.

Drupal 8’s mail sending opportunities

The default mail system in Drupal 8

Drupal 8 has a built-in mail system — MailManager, which also serves as a plugin manager. In addition to basic core mail plugins, developers can also declare their own plugins that implement two main methods — the format() and the send(). There are important hooks to use when working with the MailManager. The main ones are the hook_mail() for sending emails and the hook_mail_alter() for editing the existing setup.

In addition to the default mail system, there also are contributed Drupal modules that add in some important things missing in core, or connect various third-party email sending services to your Drupal website.

Some great contributed Drupal 8 modules for mail sending

The Mail System module

Definitely, here is the most important one among contributed Drupal 8 module in this area — the Mail System module. It fills in the most noticeable gap of Drupal default mail system — namely, provides an administrative interface and an API for working with Drupal mail. This module is also successfully used in combination with other modules.

The Mail System module lets you configure the default mail system by selecting:

  • the standard plugin for email formatting before sending it
  • the standard plugin for sending an email after formatting it
  • the theme that will render the emails

In addition, you can make module-specific settings by selecting:

  • the module
  • the key for identifying specific mails
  • the formatter plugin
  • the sender plugin

the Mail System module in Drupal 8

Integration modules with the example of SendGrid

You could also rely on some popular third-party email service. For instance, consider connecting your Drupal 8 website to a service for transactional and marketing emails — SendGrid, which is trusted by Uber, Spotify, Glassdoor, Airbnb, Yelp and other large companies.

The SendGrid module for Drupal will help you with the integration, after which you will be able to send emails from your Drupal 8 website quickly, reliably and with flexible options. Your emails will be sent via SendGrid cloud-based delivery system with the help of their strong RESTful API.

We have chosen this service as an example, because the Drupal module for it has had a fresh stable version in June. Others include Mailgun, Mandrill, Elastic Email, Sparkpost, PeytzMail, as well as tools like the Swift Mailer library, and so on. All these Drupal third-party integration modules are now in different levels of stability.

The Views Send module

Meet the module that lets you send emails using the power of Views, which is now part of Drupal 8 core. It allows for personalized mass mailing from a View, where each row generates one email.

Using tokens with the Views fields, you can fully personalize your emails. They will have a subject, a body, a recipient's name, email address, and more taken from the View.

The Contact Emails module

Here is another module that adds advanced features to Drupal 8 core — namely, to the core module Contact, which allows users to send email to other users or site administrators via contact forms.

The Contact Emails module brings in such options as sending emails to multiple recipients, using text formats, tokens, and more. You can send as many emails as you wish with different messages.

The Simple Mail module

As the name suggests, the Simple Mail Drupal module makes mail delivery extremely simple, which is great for simple use cases.

With it, you can also queue your emails and manage the queues with the help of another useful module — the Queue UI, which provides a handy user interface for that.

The Reroute Email module

In many cases — for example, when you do some testing — you do not want the users of the site to receive your emails. So it is useful to be able to reroute all outgoing emails to another address. The Reroute email Drupal 8 module will take care of these scenarios.

The HTML Mail module

The HTML Mail module for Drupal 8 adds some theming to your emails. Namely, it lets you theme your email messages in the same way as you theme your website.

To recap

These is just a glimpse at useful modules and opportunities for mail sending in Drupal 8. In addition, there is a very simple way of providing a perfect mail sending system on your website in accordance with all your wishes. Send a short message here to just one recipient — our Drupal 8 team! The rest of the magic will be in our hands.

Jul 05 2018
Jul 05

Convenient searching is a keystone of good website navigation and usability. Help your website users always find what they want, and they will lose all the addresses of your competitors, completely forgetting their names. It’s great that Drupal 8 has excellent search opportunities that are fulfilled by a host of helpful modules. You don’t have to to go far to seek them — we are going to give a little overview of them right now.

Drupal 8’s awesome search opportunities and modules

Core search in Drupal 8

Drupal’s core search has greatly improved in the 8th version. With nothing extra to install, the core Search module in Drupal 8 now lets you create custom search pages. These pages allow for searching for full words in any content nodes, as well as for users.

You can also decide on indexing settings and define the factors that influence the rankings (for example, the time of content creation, number of comments, keyword relevance, and more).

The core search in Drupal 8 works pretty well and is a nice choice for smaller websites that do not have much traffic or complex search needs. If this description fits you, you could order the creation of search features from a good Drupal team right now.

For more advanced search features, let’s move on to the next options.

Search API

Almost unlimited opportunities for searches in Drupal 8 are provided by the contributed Search API module. This flexible and extensible toolset is loved by Drupal developers, because it lets them to create even the most complex search interfaces.

In Drupal 8, Search API unites the functions that used to be scattered around many Drupal 7 modules. For example, it allows you to provide multiple search indexes, which you used to need a separate Search API multi-index searches module. If you are also interested in Search API’s work in Drupal 7, here is a detailed overview by our developers.

If Search API is used, the core Search module should be uninstalled to avoid conflicts like duplicate indexing.

Search API now includes Database Search submodule that provides a search backend. However, Database Search is the best fit for smaller sites, and larger ones would be better relying on more powerful and fast backends like Apache Solr or Elasticsearch.

Search API also comes packed with the Database Search Defaults module that helps with the default setup for Database Search. In addition, there is the Search API Taxonomy Term Handlers submodule that works with taxonomy.

It is awesome that Search API can index absolutely any imaginable entities in Drupal 8 from any desired data sources like content, custom blocks, comments, taxonomy, users, files, and more.

Search API lets you use highlighted search results, use stop words, apply transliteration, ignore the case, stem words for finding single-rooted words, split text into individual words — and that’s just the beginning of the out-of-box possibilities.

Combinations with other modules greatly enhance the powers of Search API. For example:

Finally, one of the greatest features of Search API is the ability to connect your site to famous search platforms like Apache Solr, Elasticsearch etc. Details are below.

Search API Solr Search

Apache Solr is a lightning-fast and powerful open-source search engine, based on Lucene and written in Java. Even websites with extremely high traffic or complex search queries are not a problem for it — Solr easily takes the load off their database.

Search features include faceted search, alternate spellings, content recommendations, highlighted results, attachment search, multisite search, and so much more.

For integrating Solr with Drupal websites, there is the Search API Solr Search module that provides a Solr backend. It work togethers with the Search API, and also needs an Apache Solr server.

By the way, we want to say congratulations on the fresh release of Search API Solr Search — on June 1, it got a stable 8.x-2.0 version!

Another great piece of news is that, as of version 8.x-2.x, the Search API Multilingual Solr Search module has merged into Search API Solr Search. It has a high level of support for non-English languages, cross-language information retrieval (CLIR) and a handy administrative interface.

We also shared with you a detailed review of Search API and Apache Solr in Drupal 7, so check that out if you are interested.


Amazon, Zappos, Walmart, eBay, and many other famous e-commerce websites have faceted searches. Basically, this means searching by multiple categories and parameters, which allows users to quickly sift out the unnecessary items and narrow down their results.

The Facets module, created purely for Drupal 8, lets site builders create interesting faceted search interfaces. It works both with the core search and the Search API. Especially popular and powerful are faceted Solr search solutions, created in combination with Apache Solr and Search API.

Elasticsearch Connector

When it comes to search platforms, Elasticsearch is a great alternative to to Solr. It is also very scalable, powerful, and flexible, based on Lucene, and written in Java. Elasticsearch can quickly index even large volumes of data. It is API-oriented and can be used with various programming languages.

Just like Solr, Elasticsearch has impressive and extensive search features. The nuances of differences between the two are worth a separate blog post. In any case, we can always help you choose what suits you best.

Of course, Drupal 8 has modules for Elasticsearch integration — for example, Elasticsearch Connector to be used together with Search API.

To recap

There are many other modules for searching in Drupal 8, and they combine with each to offer exactly what your website needs. Additional customization by developers can do miracles in fulfilling your wishes.

For choosing the suitable tools and applying them correctly, you can always rely on our Drupal development team.

We have plenty of experience with Drupal search, including the creation of a large international multi-domain online store with custom facets and Solr.

It is easy to find us without special search features — we are always here for you! ;)

Jun 27 2018
Jun 27

Dear reader, we would like to invite you to follow us. Where? On an exciting virtual journey to DrupalCamp Kyiv 2018! The 10th anniversary of the drupalers’ meetup was amazing, and unusual moments added some spicy flavor to it. A mysterious bearded man in a pilot’s helmet, bikes on the speakers’ stage, the phantom of Drupal 9, and much more lies ahead. Ready? Follow us! ;)

The creators of the future

Just like at DrupalCamp Kyiv 2017, DrupalCamp Kyiv 2016, and before, InternetDevels was a sponsor and attendee of DrupalCamp Kyiv 2018. So we happily arrived in Kyiv wearing our red T-shirts, which were noticeable from anywhere. “Follow us” read the phrase on the T-shirt’s back.

By following us, anyone could find their way through the huge, loft-styled IZONE Creative Community building.

But following us means more than that! Anyone can follow us in being active members of Drupal Ukraine Community, contributing to the development of Drupal, teaching new talents, doing everything with passion, and reaching new heights. These are one of the ways we are all creating the future! That’s why our banner said: “We are more than developers — we are the creators of the future.”

The mysterious bearded man

The future and the new heights were shown on our banner. It featured an energetic man with a pilot’s helmet and an amazing beard, which caused a lot of interest. Who was he?

The “original” was also present at DrupalCamp Kyiv 2018. This was Butmax from InternetDevels. Look at the photo and find 10 differences!

DrupalCamp Kyiv and its air

Oh, that unique atmosphere at Drupal Camps! The organizers may be busy, the participants may be tired after their trip to Kyiv, but everyone is so enthusiastic, happy to see each other, and ready for complete drupalization!

Great speeches: the 3 dimensions of Drupal

Drupal unites people of various professions. At DrupalCamp, you can see Drupal developers, QA engineers, HR managers, project managers, marketing specialists, and many others.

So the speeches at DrupalCamp Kyiv were divided into 3 main areas: development, business, and project management.

The complexity level of all speeches was also graded from 1 to 3. So, looking at the schedule, everyone could decide what suited them better.

But even with that, it was hard to choose among the speeches. They came in 4 streams at the same time. Brilliant speakers and the freshest Drupal topics gave you a real torment of choice!

We all immersed ourselves into the intricacies of Vue.js integration with Drupal 8, the novelties in Drupal 8 core, the ins and outs of GDPR, the use of the Lazy Builder, Drupal 8 caching, custom entities, Robo and BLT, and so much more.

We also heard the expected release date for Drupal 9, whose phantom is already in the air, attracting everyone’s interest. It may arrive two years from now. It may, or it may not — only time will tell! ;)

And, of course, InternetDevels representatives were active at the speeches!

InternetDevels speaker at DrupalCamp Kyiv 2018

Contribution makes the world go round! Our senior Drupal developer Andrew Zahura, aka Ahiles, gave a truly useful speech about how to contribute to Drupal.

Drupal is an open-source CMF that everyone can use for free. But it’s great to share something back! Any drupaler can contribute their modules to Drupal, create patches, make translations, update the documentation, and much more.

However, many think they are too busy for that, and many do not know what steps to take exactly. But, after the speech by Ahiles, will hopefully be bursting with new contributions!

Certificates of appreciation

All sponsors received their certificates of appreciation. Noticeably, this year’s DrupalCamp had many individual sponsors who wanted to develop Drupal.

Here is our certificate of appreciation. InternetDevels are happy to support DrupalCamp Kyiv 2018 and Drupal itself!

Prizes: from toy RC cars to full-sized bikes

A very nice part of the event was dealing with prizes from the sponsors and the organizers. Here are some of them.

Even when drupalers grow up, they cannot resist playing with toy RC cars. One of the sponsors arranged a car race whose winner got a car! We are not sure he was able to drive home on it, but nothing is impossible for drupalers!

Another “vehicle” prize was a full-sized bike whose winner was chosen in a draw — and it turned out she had a birthday on the same day as the DrupalCamp 10th anniversary!

The organizers also held a drawing with PhpStorm licenses by JetBrains. As is known, PhpStorm is every Drupal developer’s best assistant.

Afterparty: time to have fun!

All the guests from other cities and from abroad could feel the might of the Dnieper river, because the afterparty was held at River Port Pub. And, of course, everyone enjoyed the communication with old and newly-made friends.

Code sprint: time to code!

A code sprint the next day after a party? Challenge accepted, as real drupalers would say! Saturday was a very productive day for great Drupal minds at Port Creative Hub.


Congrats on the 10th anniversary to DrupalCamp Kyiv 2018, and many thanks to its organisers, sponsors, and participants!

We would like to note what one of the sponsors said in their speech. DrupalCamp Kyiv gathers 400 people, while DrupalCon gathers 2,000. So the difference is only 5 times, which is very little, considering it’s Ukraine vs. the whole world. DrupalCamp Kyiv is 1/5 of the global DrupalCon!

So let’s continue bringing DrupalCon Ukraine closer — with events like DrupalCamp Kyiv, DrupalCamp Lutsk, and more. We know we can make it!

Let’s create the future together!

May 02 2018
May 02

Sites have truly unlimited opportunities in Drupal 8 — they are not even limited by the “website” concept! They can go far beyond it, and easily exchange data with all imaginable applications. Special opportunities for that have appeared thanks to built-in web services, which are listed among Drupal 8’s main improvements. Let’s see what web services can give you, how they work, and what extra special options are added by other Drupal 8 modules.

Web services: benefits and principles of work

The main web services role is that of a “communicator” between a Drupal website and an external application. This may mean pulling data from a Drupal website, or, vice versa, pushing it there.

Could you imagine the possible gains from outputting your website content, say, to an iOS or Android app? In addition, payment gateways, CRMs, inventory management systems, smart watches and any other apps are ready to work with your Drupal 8 website. And that’s just the beginning of what is possible in the hands of good Drupal developers!

Web services help websites and apps find “common language” — Drupal’s HTML data is magically transformed into the formats that are easily understandable for apps (JSON, XML, HAL+JSON, and so on).

Thanks to web services, you can create an API on your site that other apps can ask to connect to, and you can grant permissions to them. Drupal nodes, taxonomy, collections of content (views) or other information can be fetched from your site.

A glimpse at headless Drupal

The icing on top of the cake is a headless, or decoupled Drupal approach. More and more websites are adopting it nowadays. Drupal backend, as a source of data, is combined with a front-end based on some JavaScript framework (React, Vue, Angular, Node, Ember, etc.).

In this way, JavaScript frameworks can share their best with your Drupal website! You can engage users to the maximum with dynamic features. Interactive dashboards, fast chats, push notifications are just the beginning of the list. And the speed can be fantastic!

Web services in Drupal 8

Drupal 7 and even Drupal 6 had some support for web services, but that was in the form of contributed modules.

Thanks to Web Services and Context Core Initiative (WSCCI), Drupal 8 has web services built into core, and it has been greatly enhanced.

Core Drupal 8 modules for web services

So the big integration story begins with enabling the four core Drupal 8 modules responsible for web services.

  • The Serialization module serializes and deserializes your Drupal website data to and from formats like JSON, XML, or HAL+JSON by normalizing and encoding it.
  • The HAL module adds data normalization by means of the Hypertext Application Language.
  • The RESTful Web Services module exposes your site’s entities or other data in particular API endpoints.
  • The HTTP Basic Authentication (Basic Auth) module authenticates the username and password from a request.

Some contributed Drupal 8 modules for web services

In addition, there are extra opportunities brought by very helpful contributed Drupal modules.


This contributed module offers a handy user interface for using core web services. When it is installed and enabled, this interface appears in Configuration — Web services — REST.


Here is a module that lets API builders use GraphQL — a modern query language. This is a nice alternative to the REST architecture traditionally used for APIs. Queries are shaped by the client side precisely to get all they want immediately. Obtaining structured data (including that with a complex hierarchy) is based on the schema.


The JSON API contributed module also offers an alternative to REST. It generates an API server with the JSON API specification. According to Drupal founder Dries Buytaert, both JSON API and GraphQL couuld be promising modules in Drupal core some day.


The most popular module for web services in Drupal 7, the Services module has changed greatly for its 8th version. Its benefits include great API customization options, support for configuration entities, multiple response formats, etc.

RELAXed Web Services

While providing a RESTful API, this module offers advanced support for translations, file attachments, revisions, UUID references, opportunity for clients to subscribe to real-time change notifications, etc.


The Subrequests module we once described is a new and interesting module for Drupal 8. It groups any sets of requests together to improve performance. The JSON document named “blueprint” contains all the necessary information.

Final thoughts

All these core modules, as well as these and other contributed modules, do an awesome job! However, unlike simple cases of setting up an API, more complex ones usually require some custom code writing.

Whatever your ideas about third-party integration are, you can contact our Drupal developers. They will handle even the most complicated projects with web services.

Let your website go beyond the boundaries and give you more!

Apr 18 2018
Apr 18

Let us invite you to an exciting masquerade! Its mission is to check what each user can see or do on your website. Drupal has an awesomely flexible system of user roles and permissions, as well as opportunities for fine-grained user access. These are the keystones of Drupal security, smooth user experiences, and cool features. You can make the most out of them, and then test the result for different users with the help of the Masquerade module. Interested? Let the masquerade begin!

How the Masquerade module works

The essence of Drupal Masquerade

To check new features or settings related to user access or permissions, site builders and administrators usually create test user accounts.

Without the Masquerade module, they have to log in and out of these test accounts, which is not always convenient. The Masquerade module lets them switch accounts with no login procedures and surf the site as a particular user. They can easily try on the “mask” of any user and then take it off by clicking “Unmasquerade.”

Who can masquerade as who: user permissions

Usually, it’s only the administrator that’s allowed to do the masquerading. However, permissions to use masquerade can be fine-tuned in People — Roles — Permissions.

As you see, there is no option to masquerade as anonymous user, since it is considered a little buggy.

How to masquerade as a user

The module works a little differently in Drupal 6, 7, and 8. In today’s example, we will look at Drupal 8.

So, with the Masquerade module  installed and enabled, the “Masquerade as” option will become available next to each user in the dropdown list of “operations.” We can also see it on each user’s page.

In addition, there is a handy form for quick user switching that can be placed anywhere on the website, like any other block. In Structure — Block layout, we click on the site’s region where we want to see it, click “Place block”, find “Masquerade — Forms” on the list, click “Place block” again, and finally save the blocks.

It is very handy to have the “Masquerade as” form in the left sidebar. The “Unmasquerade” link is at the top of the page.

An example of Masquerade module’s use

It’s now time to invite a couple of our masquerade participants! Our authenticated users will be Colombina and Arlecchino.

In our example, authenticated users can post their content, and each user should have a “My masquerade photos” page where only they see the photos they authored.

For this experiment, let’s make sure that at least some pieces of content for this content type are authored by Colombina and Arlecchino. We can change this in the “Authored by” option of each piece of content.

Let’s now create a simple views with all photos. It now shows all of them yet with no filtering according to user.

To achieve this, we will go to views advanced settings. There, let’s add a relationship to author, as well as create a contextual filter that only displays the content if its author matches the current user ID. And the Masquerade module will then help us check if each user really sees their own photos only.

So our roleplay begins — we are going to the “Masquerade as” form in the left sidebar and masquerading as Colombina. That’s right, we can only see her content. Awesome!

Since only the administrator can use masquerade and we are now “Colombina,” the “Masquerade as” form disappeared from the sidebar.

Let’s click “Unmasquerade” at the top of the page to return to admin’s account, and then masquerade as Arlecchino. We only see Arlecchino’s content. Wonderful!

We should never forget to unmasquerade back. The masquerade has been successful and it is now over.

Final thoughts

That’s been a brief overview of what the Masquerade module can do for testing purposes. Drupal hides many more secrets, and its possibilities are unlimited.

Contact our team if you want to create amazing access-based features for your users, set up an order to all roles and permissions, get help with testing, and so much more!

Mar 29 2018
Mar 29

Audience boosters, sales increasers, brand builders… All this and more applies to social networks! Drupal lets you easily integrate these unmatched promotion tools with your website. We have shared a great collection of Drupal social media integration modules in part 1 and 2. Time flies, and we would now like to make an overview of social media integration modules that are specific for the latest Drupal version — Drupal 8.

Drupal 8 social media integration modules

So here are some modules that will be very useful in your business promotion via Facebook, Twitter, LinkedIn, Pinterest, Instagram, Flickr, Tumblr, YouTube, Google+, Delicious, and lots of other social networks. Some of them are general, or cross-network modules, while others are made for particular social networks.

Some general Drupal 8 social media integration modules

Easy Social

As the name suggests, this Drupal 8 module is meant for those who want to quickly set up simple social sharing buttons. It includes default widgets for Twitter, Facebook, LinkedIn, and Google+.

AddToAny Share Buttons

This social media integration module has vector buttons with AddToAny icons in SVG format, as well as a universal sharing button. Its pros include displaying well on Retina devices, Ajax support, loading optimization and more.

Social media share

Here is a tool that also makes it easy to share your site’s content to various social networks. It offers a special social media field type. The flexibility of the module makes absolutely all kinds of pages shareable.

Social Media Links Block and Field

The module offers an easily configurable “Follow us” block, various icon sets of all sizes, support for Panels, and more. As of Drupal version 8.x-2.4, it also has a Social Media Links Field submodule.

Social Timeline

Share various social network content on your site’s timeline! Here is a social media integration module that offers a wide choice of networks by default, supports keywords, hashtags, social filters, multiple custom feeds, and more.

Social Counters

This module will count your likes/subscribers in various social networks and save this information in the Drupal cache. The Drupal 8 version has the ntegration with the Views and Plugin API.

Shortcode Social

The Shortcode module lets your website’s users easily embed social media content into WYSIWYG editor with the help of shortcodes. No traditional iframes or embed codes are needed.

OneAll Social Login

Your users will be able to register and login to your Drupal 8 site from their accounts in over 35 social networks. This makes registration easy, as well as giving you their social data based on permissions.

Sharethis block

Encourage your users to “share this” by showing the appropriate block of buttons thanks to this social media integration module. You can put it wherever on your website you want it and enjoy flexible block configuration options.

Social SimpleSharer

Here is a module that creates two social sharing blocks on your Drupal 8 site: for a full-sized icon and for a smaller one, too. It offers nice styling options and is unique for not using JavaScript.

Some network-specific Drupal 8 social media integration modules

Facebook Instant Articles

Here is a fresh module whose stable Drupal 8 version has been released on March 15. It allows posting Drupal content to Facebook as Instant Articles, which load lightning-fast on mobile devices.

Facebook Page Plugin

The module offers a block about your Facebook page for your site. It shows how many people liked your page, and which of them are users’ friends. It also lists recent posts and encourages readers to like your page in one click.

Facebook Album

You can display public albums from Facebook pages as galleries or Colorbox pop-ups. The module offers options like configuring album and photo height and width, including or excluding albums from display, and more.


Your Drupal 8 site will have a nice Twitter feed of latest posts. The module uses Twitter REST API and the jQuery Timeago plugin, has a user-friendly way of showing dates (for example, “3 hours ago”), and is highly configurable.

Pinterest Hover button

The Pinterest “Pin it” hover button will appear on your Drupal 8 site’s images. You can configure its size, color, shape, and more. The Drupal 8 version of this module supports responsive images.


Thanks to this module, your Drupal 8 site will show videos from a particular YouTube channel. The first video will come as iFrame, others as thumbnails, and there will be a handy vertical scroll bar.

Video Embed Instagram

This is a special module for Instagram that works with the general Video Embed Field module. It allows for posting Instagram videos on your Drupal 8 site by adding the video URL in the video embed field.


Let your website be sociable! And great Drupal 8 social media integration modules will let it socialize to the maximum.

For help with the perfect social media integration — from configuring Drupal 8 modules to creating custom solutions — always contact our Drupal team!

Mar 21 2018
Mar 21

What should a dream theme for a Drupal 8 website be like? Responsive, modern-looking, highly customizable, rich in powerful features, and intuitively understandable, perhaps? Many developers would say a theme based on the Bootstrap framework includes all these things. It is a good practice to create Drupal 8 Bootstrap subthemes for websites from the Drupal Bootstrap theme. In addition, there are many free Bootstrap-based Drupal 8 themes ready to be installed on your site right away.

So Drupal offers options for everyone! If you wish, use the popular Drupal Bootstrap theme that has 160,000 overall installs and recently had its fresh release — 8.x-3.11. You can create a subtheme from it or make your own theme from scratch — theming in Drupal 8 is very convenient thanks to novelties, like the use of Twig engine and YAML files.

Or you can choose one of nice, free, ready-made Bootstrap-based themes for Drupal 8. They can also be further customized to your liking — by yourself or with the help of our Drupal developers. Let’s start enjoying our little collection!

Some nice free Bootstrap-based Drupal 8 themes

Startup Growth Lite

The Startup Growth Lite theme is based on the latest Bootstrap 4. It features 12 excellent color schemes with 2 versions of each, layouts for 1, 2, and 3 columns, mobile menus, and more. It is also meant to work great with Drupal Commerce.

Bootstrap Mint

Thanks to the mobile-first Bootstrap Mint theme, Drupal 8 sites can enjoy a responsive slideshow (Bootstrap carousel), dynamic columns, a responsive multi-level dropdown menu, layout choice from 1 to 4 columns, Retina-ready icons, 25 regions etc.

BusinessGroup Zymphonies Theme

This free Bootstrap-based theme is created in a business style. Its attractions are multi-level responsive menus, a custom Bootstrap slider, a sidebar that can be positioned left, right, or to full width, Font Awesome icons, flexible social media link options, and so on.


Aegan is a lightweight and modern-looking theme that is available in 8 colors, supports multi-level menus and Font Awesome, features a customizable slideshow, offers flexible options to configure social media icons, and more.


Here is a multipurpose, easy-to-use, and responsive theme for corporate, business, and portfolio websites. It has 17 regions, Font Awesome support, 1, 2, and 3 column layouts, and other features.

Bootstrap Business

Drupal 8 business and corporate sites may enjoy another free responsive Bootstrap-based theme. It offers 20 regions, HTML5 and CSS3, supports the Superfish module for great menus and the Color module for color adjustments, and more.


All travel agencies can say “Bon Voyage” to their customers in a beautiful way! Perfect cross-browser compatibility, easy navigation, the “back to top” button, animation, CSS3, HTML5, JQuery, and other features make this theme a good choice.

Showcase Lite

The Showcase Lite is a mobile-first Drupal 8 theme for companies that want to showcase their products or services. It features 34 regions, Superfish menus, HTML5 and CSS3, a layout for 1, 2, or 3 columns, and so on.

Magazine Lite

Here is a free mobile-first theme from the same creators and with very similar features (Superfish menus, HTML5 and CSS3, a 1, 2, or 3-column layout, and 34 regions to present your content). However, it is specially designed for news and magazine sites.

Ice Magic

Ice Magic is a free responsive Drupal 8 theme that has unmatched color adjustment opportunities thanks to the Color module and Google Material Design Colors. It also offers great integration with Bootstrap CSS and JS components, Font Awesome, and more.


Inspired by these free Bootstrap-based Drupal 8 themes? These are just a couple of nice examples. If you wish to choose one and install it on your Drupal 8 website, customize it to your liking, or maybe create a new theme, free free to contact our developers.

Let your dream theme present your content in the best way, capture your users’ attention, and easily guide them through your website.

Mar 07 2018
Mar 07

To honor the Drupal 8.5.0 release on March 7, we will not just describe what’s new in it. Drupal 8 has already had 5 awesome minor releases: Drupal 8.1.0, Drupal 8.2.0, Drupal 8.3.0, Drupal 8.4.0, and now Drupal 8.5.0. Each of these versions gives us great novelties that make Drupal 8 easier to use for editors, faster, more innovative, and more.

So let’s now flashback and look at 5 great features in each of the 5 great releases. Drupal 8.5.0 will receive the most of our attention. And, for dessert, we will sum it up with a colorful infographic.

Drupal 8.5.0 release: how we have arrived to it

The road to Drupal 8.5.0: step 1 — Drupal 8.1.0

The BigPipe module

Drupal 8.1 gives us a new awesome experimental module for performance optimization. The BigPipe module lets site users immediately see the static page elements and receive the dynamic ones next.

Modules for migration

We get a “family” of experimental modules for smoother upgrades and migration from Drupal 6 or 7 to Drupal 8. They are the Migrate, Migrate Drupal, and Migrate Drupal UI modules.

CKEditor improvements

As of Drupal 8.1, CKEditor begins to support native browser spell-checking. It also gets a language button in its toolbar for adding language attributes to parts of multilingual text.

Easier help tours

Drupal help tutorials, aka “tours,” throughout a website’s administrative interface, becomes easier to find and use. Everyone can better understand how Drupal works.

Better Composer support

Composer, the greatest assistant of all times to PHP-based CMSs, can be used for managing all third-party packages needed by websites as of Drupal 8.1.0 .

The road to Drupal 8.5.0: step 2 — Drupal 8.2.0

The Place Block module

It is now easy to place and configure blocks with the experimental Place Block module. It offers a “Place block” link in the admin toolbar, which opens the theme regions with quick block adding and editing options.

The Settings Tray module

Another experimental module for configuring blocks emerges in Drupal 8.2. The blue “Edit” button initiates the block editing mode with a handy block configuration tray popping up in the sidebar.

The Content Moderation module

This experimental module lets site administrators define content moderation states. They also can decide which user roles are allowed to change these states.

The Datetime Range module

Drupal 8.2 gets a new experimental Datetime Range module. It offers a new field type for defining not just simple dates but date ranges (the beginning and end dates).

Content revisions enabled

For new content types, content revisions will be enabled by default. This makes it easy to roll back to the needed content versions and never lose any important content.

The road to Drupal 8.5.0: step 3 — Drupal 8.3.0

New CKEditor 4.6

We get a fresh version of CKEditor with an updated UI, a new feature for pasting from Word, drag-and-drop options, the AutoGrow plugin for working with large screen sizes, and more.

The Workflows module

This new experimental module gives us a handy UI for creating workflows with certain states. It can pair well with the Content Moderation module, but can also be used for non-content workflows.

Field Layout and Layout Discovery

We enjoy a new pair of experimental modules for layouts, the Field Layout and the Layout Discovery. They make it handy to arrange fields and allow modules or themes to register their layouts.

BigPipe stable & improved

One of Drupal 8’s hottest novelties, the BigPipe module, reaches stability in Drupal 8.3.0. It has also received some improvements, for example, better usability on mobile devices.

More support for web services

Drupal cooperates with external applications better and better! The REST API allows for user registration, 403 responses coming with explanations, anonymous REST API performance rises, and more.

The road to Drupal 8.5.0: step 4 — Drupal 8.4.0

Multiple modules reach stability

In Drupal 8.4.0, a bunch of modules become stable (Layout Discovery, Workflows, Datetime Range, Inline Form Errors, and Media). Next come more details about the latter two.

The Media API

Here is a remarkable novelty for media handling (e.g. creating media types, saving media to your library, and reusing them). In Drupal 8.4.0, the Media API is ready, but the module is currently hidden from the dashboard.

The Inline Form Errors module

A great usability and accessibility improvement arrives with Drupal 8.4.0 with the Inline Form Errors module. It lists form validation errors both next to the form and in the summary above.

Even more support for web services

In Drupal 8.4.0, web services receive still more attention, which results in a 15% performance boost for authenticated REST requests, REST features enhancement, and more.

New Symfony, jQuery, Drush, and more

In Drupal 8.4.0, we see updates of Symfony to 3.2, jQuery to 3, and jQuery UI to 1.12. Drush 8.1.12 becomes required. The support for Internet Explorer 9 and 10 discontinues.

Drupal 8.5.0 and its new great features

The Layout Builder module

Drupal 8.5.0’s long-expected sensation is the experimental Layout Builder module. Editors can now easily create layouts by selecting from the predefined ones, adding sections and blocks, and arranging them in various ways.

After enabling the module, you see that the “Manage display” tab in a particular content type’s configuration page no longer shows the list of fields. Instead, it has a “Manage layout” button. The button leads you to the incredibly handy layout management page for this content type items. Before you press it, you can also allow each content item to have a special layout by checking the appropriate option in “Layout options”.

The Media module stable and improved

Compared to Drupal 8.4, where the Media module is hidden by default and needs contributed modules, Drupal 8.5 makes it stable and available on the dashboard, as well as improves its user experience.

In Structure — Media Types, you can see four default types (Audio, File, Image, and Video) and can add your own. In the list of fields, there is now a Media field available, for which you can define media types. Editors are able to create their media or reuse existing ones by starting to type their name.

The Settings Tray module stable

Here is another famous module that has moved from experimental to stable in Drupal 8.5.0. Its magic blue “Editing” button and handy tray for block editing is ready to work reliably on production websites.

After enabling the module, just click on the “Edit” button in the left upper corner of your site, with no need to go to the admin dashboard. You will see the block configuration page. To call the helpful tray in the sidebar, click “Quick edit” next to any block of your interest.

The Content Moderation module stable

One more popular module is ready for production sites. It works together with the Workflows module and lets you choose Content Moderation workflow type, which is ideal for editorial processes.

You can use the default “Editorial” workflow or create your own. In the workflow, create states (like Draft, Published, Archived etc.) and transitions (like from Draft to Published etc.). It is also possible to define which items this workflow applies to (which content types, media types, and custom block types).

The Migrate API stable

Great news for all who want to safely migrate their content from Drupal 6 or Drupal 7 to Drupal 8! The Migrate API is stable and works in a tandem with its experimental “collegues”: Migrate Drupal and Migrate Drupal UI.

We almost have the whole “company” stable in Drupal core. This is very important, because more and more websites want to move to Drupal 8.

And more!

In addition, Drupal 8.5.0 has the BigPipe module enabled from the start, thus offering an out-of-box feature that allows you to deliver content to website users much faster. BigPipe is an example of a module that has travelled its path from experimental in Drupal 8.1.0 to a member of the “main squad” in Drupal 8.5.0 core!

Drupal 8.5.0 also brings in API-first improvements, which make Drupal third-party integration capabilities even stronger. They include better serialization for getting Drupal data via REST API, enhanced documentation, translation support, handier file uploads via REST API, JSON API, and GraphQL, more flexible permissions, better test coverage, optimized performance, and more.

Drupal 8.5.0 is awesome, and it’s been great to look back at how “the great eight” evolved from 8.1.0. And sky’s the limit for further Drupal 8’s innovations!

If you wish to get an awesome Drupal 8 website, upgrade your existing site to Drupal 8 or update it to Drupal 8.5.0, feel free to contact our team.

And now please enjoy the infographic!

Feb 07 2018
Feb 07

In the world of business and finance, a website should as reliable as a Swiss watch, unbreakable like an armored safe, irresistibly attractive like George Washington’s portrait on a banknote, fast like a business-class car — the list could go on. And Drupal fits all these and other requirements! The ability to easily integrate the site with third-party systems, output data to any application and “lock and seal” the site in terms of security — these advantages alone put Drupal at the head of the pack. But this is just the beginning of the list, because everything is possible with Drupal. So it is no wonder that business & finance companies choose Drupal for their websites, just like they do for e-commerce, healthcare, educational, and other businesses. Here’s a couple of examples.

Examples of great business & finance websites built with Drupal


This is a website for a popular money management tool, which offers a unified interface for customers to track their financial activities (credit card, banking, and other operations), create budgets, get alerts, etc. This website wasn’t originally on Drupal, but moved to it to satisfy its high requirements.


Here is another example of a business website for a company that found Drupal’s benefits irresistible and migrated to Drupal. The website for the NCR corporation features an extensive catalog of business solutions per industry, powerful data analysis, interactive tools, internationalization, and more.

Voya Financial

A global provider of financial, retirement, investment and insurance services got a powerful Drupal site to present them all. It includes online savings and expense calculators, financial planners for various purposes, comparison tools, and much more.

Societe Generale

Here is a Drupal website for a multinational company specializing in banking and finance services. It uses Drupal’s awesome multilingual features and includes a collection of sites (for private banking, corporate and investment banking, careers, and more). It also has versions for customers from different countries.

Webster Bank

Drupal was a great solution for this famous commercial bank’s website. It presents all of the bank’s services and offers a user cabinet, as well as online banking with features like online bill payment, mobile deposit, account alerts, mobile banking, chats with bank staff, and more.

The Carlyle Group

Drupal 8, with its unprecedented multilingual improvements and easy content editing, became the best fit for this famous investment firm with staff working on 6 continents. Their website with over 20 thousand pieces of content was migrated from Drupal 6 to Drupal 8. It has English, Japanese and Chinese language versions, a media room, analytics, and much more.


This global investment management company chose Drupal as well. The site offers handy and interactive ways to present all the company’s financial products and services related to retirement, asset management, insurance, etc. It also has two languages, an online payment feature, and more.


On the multilingual website of this global messaging service provider, you will read that they are trusted by 11,000 financial organizations in over 200 countries. And who does this provider trust? Drupal, of course! The site has everything users need to discover Swift services, as well as offering a user cabinet for tracking orders and invoices, receiving online support, and more.

Final thoughts

Let’s get down to business ;) If you would like to have a feature-rich, powerful, and attractive website in the business & finance industry or any other, contact our team of developers with 10 years of experience!

Dec 06 2017
Dec 06

Hearing the words “migration from Drupal to WordPress,” some Drupal developers would shrug their shoulders and WordPress developers would applaud. However, there is no place for rivalry, even for such life-long competition as that between Drupal and WordPress, where the most important result is an absolutely happy customer. For every case, there is a platform that fits a website like a glove. And if a customer for whatever reason feels the “glove” is not perfectly comfortable, maybe it’s time to go ahead and change it. Though, it will take, of course, a little longer than a change of outfit :)

When it comes to choosing between Drupal and WordPress, migrations from WordPress to Drupal are more frequent. This is due to Drupal’s unlimited opportunities for various powerful features, fortress-level security, ability to handle more content and users, and so on.

Still, some customers wish to jump from Drupal to WordPress, seduced by the unmatched simplicity of the interface, a gentle learning curve to start working straight away, many beautiful free themes, and more — they just do not need what Drupal has to offer.

For those who are determined to move from Drupal to WordPress, we describe the opportunity to do so.

Drupal-to-WordPress migration via the FG Drupal to WordPress plugin

You can use the handy FG Drupal to WordPress plugin, which is ready for all Drupal and WordPress versions including the latest ones (8 and 4.9, respectively).

It migrates Drupal’s articles, basic pages, categories, tags, images, and more. It also resizes images according to WordPress settings, modifies URLs, preserves the ALT attributes for images, and does lots of other useful things.

The premium version promises to go even further and migrate custom taxonomies, fields, content types, users, comments, node relationships, as well as redirect URLs from Drupal to WordPress, accept user’s Drupal passwords, and so on.

To do a Drupal-to-WordPress migration with the FG, you will basically need to:

  • Install and enable the FG Drupal to WordPress plugin on the WP site.
  • Find the “import” option and enter your Drupal database parameters there.
  • Configure the FG’s content import options and perform the import.

Before the migration, stay safe and do not forget to backup your Drupal website, as well as your WordPress website (if you are migrating to an existing one, not a blank new WP installation).

Drupal to WordPress migrations from our experience

The CMSs are different, so custom content migration needs great care. For many cases, ready tools are not enough and you will need custom migration scripts for Drupal-to-WordPress migration. That’s what we faced when performing migrations from Drupal to WordPress for our customers.

Let’s look at a little example — a website with Books and Quizz content types. We created the appropriate post types in WordPress with extra customization.

  • Books. In Drupal, relationships are provided by the Books module where every book page has its weight. In WordPress, we created a custom type of post and expressed relationships via additional fields.
  • Quizzes. We customized the look of quizzes in the WP Pro Quizz plugin by providing an XML file generation to import all test categories, test topics and issues. This included answers of two types: true-false and multichoice.

Final thoughts

To insure that all your content moves safely and accurately to a new place, contact our WordPress team. We have both Drupal and WordPress developers in our company, so the process is bound to be smooth, with the smallest details, specific to both CMSs, taken into account. Enjoy your Drupal-to-WordPress migration!

Dec 01 2017
Dec 01

What a busy and interesting life an online store has! The Black Friday excitement is replaced with the holiday season rush, and so it goes on and on. But, no matter the season or occasion, your products will be always be ready to attract customers. Great product customization opportunities are among the numerous great features of Drupal Commerce 2.0, the new version of the famous module for building Drupal 8 online stores. So let’s take a glimpse at how product customization works in Drupal Commerce 2.0.

Product customization in Drupal Commerce 2.0

The new version of Drupal Commerce offers a better user experience as well as a new product architecture. In Drupal 7, all products had to be created in their own UI. In the eighth Drupal version, you can easily and quickly create product variations of the same product right away and customize them to your liking.

Unique product variations

Everyone loves a broad range of choices. Your products may (as products usually do) come in various colors, sizes, etc. In Drupal Commerce, these are called product attributes. Each attribute has values (for example, S, M, L for size or red, green, blue for color).

A combination of these attribute values makes a unique product variation. For example, a red, S-size sweater is a product variation that has the “red” value for the “color” attribute and the “S” value for the “size” attribute.

Each product variation is assigned its own SKU (machine-readable ID). Among other benefits, SKU lets you easily track how many products of each variation has been purchased and how many remain in stock.

Product creation and customization: a little step-by-step “crib”

  • Creating product attributes. First, in admin/commerce/product-attributes, create product attributes and define their values. You can configure the options display for the buyers in the cart, drag to reorder the values, make them translatable and more. For extra customization, use fields.
  • Creating product variation types. Next, in admin/commerce/config/product-variation-types, create product variation types and add attributes to them. You can also add fields, like an image field.
  • Creating product types. In admin/commerce/config/product-types, you can create product types and select the newly created variation types.
  • Creating products and their variations. Finally, in admin/commerce/products, create new products by filling in all the required information (description, price, SKU, and more). Use the “Add new variation” button for multiple variations.

The Commerce Fancy Attributes built-in module

Let’s return to our attributes for a second. Thanks to the Fancy Attributes module now built into Drupal Commerce 2.0, you can display creative selectors for product attributes. For example, you can show a color swatch to your customers instead of just a color list.

The Commerce Customizable Products built-in module

Here is another interesting novelty among built-in Commerce 2.0 modules. It’s not just you and your website’s editors who can product customization. Buyers can do it, too (for example, visiting cards require a contact information and a logo). Here is a module that lets your buyers customise products during the checkout process.

The automatic SKU generation option

There is also a contributed module called Commerce AutoSKU that will generate SKUs for you automatically based on the product field values. You can configure the SKU generation pattern for each product type. The Token module will be additional help in this process.

Final thoughts

This has been a short glimpse at product customization opportunities in Drupal 8 online stores, which are truly endless. To organize this process exactly in accordance with your preferences, or get a fresh new online store, contact our Drupal developers who know Drupal 8 well and love Commerce!


About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web