Upgrade Your Drupal Skills

We trained 1,000+ Drupal Developers over the last decade.

See Advanced Courses NAH, I know Enough
Jun 03 2020
Jun 03

Most websites, even ones that have a perfect URL structure from the beginning, may need URL redirects sooner or later. URL redirects are small tasks that carry a big value. Since one of our fields of expertise is Drupal website support & maintenance, we often face website redirect tasks.

Today, our team shares their thoughts on what redirects are, in what situations they are needed, how they can help you, and how to redirect a website URL on a Drupal website with the help of the Redirect module. This will also include the simplest answer to the popular question “How to create a 301 redirect?”

What is a website redirect?

URL redirection, also known as URL forwarding, is a technique used on the World Wide Web that takes one website URL and points it to another. When someone visits the original address, they are taken to a new one. A URL redirect tells a user’s browser where to find the content they are looking for.

Temporary and permanent redirects

Web page redirects can be temporary or permanent. They are used to inform search engines whether the page has changed its address forever or this is just a temporary measure. They are associated with the corresponding HTTP status codes — 301 and 302 (the most widely used ones on the whole list of statuses from 301 to 307):

  • 301 – The page has moved permanently.
  • 302 – The page has moved temporarily.

Why redirect a website URL: common scenarios

If a page is no longer available at its old address, a redirect will prevent your visitors from getting a 404 “Not found” error when they visit it (from saved bookmarks, shared links, and so on). Keeping your website clean from broken links helps you reduce the bounce rate and improve session duration, which is very important for SEO.

Redirects are also a great way to inform the search engines that the new address is now official and should “inherit” all the SEO achievements of the old page. According to Moz (the creators of the famous SEO toolset), 301 redirects pass between 90-99% of link equity (ranking power) to the new URL. This means you are not losing any of your previous SEO efforts.

Here are the situations when it may be necessary to redirect a website to another URL. Depending on the situation, this can apply to the entire website or single pages:

  • Moving your site to a new domain (if you have purchased the domain of your dream, if you have to change domains due to intellectual property issues, or in other situations).
  • Forwarding multiple domains to a single one (if you have purchased multiple domains, if users regularly misspell your domain in some common way, or in other situations).
  • Forwarding subdomains to your main domain (for example, if you initially had “blog.mywebsite.com” and now you want to make it “mywebsite.com/blog”).
  • Directing all traffic to a single (“canonical”) URL (if a website uses both a WWW and a non-WWW version).
  • Changing a URL structure due to website redesign.
  • Redirecting duplicate content to the original page to avoid the confusion of search engines and users.
  • Fixing a mistake or a typo in a URL (web addresses need to be both human-readable and SEO-friendly, so sometimes fixing an important issue in them is worth a redirect).
  • Saving a situation, like when a wrong URL has been mistakenly shared with many people (e.g. via a newsletter to thousands of customers).
  • Creating a simple, brief, and catchy URL for print advertising campaigns.

How to redirect a URL with the help of the Redirect Drupal module

Sites built on content management systems (aka CMSs) offer hassle-free ways to redirect a website URL. Drupal is no exception. Of course, this can be done by a developer in the .htaccess file on the server, but there are much more user-friendly tools that offer intuitive interfaces. One of these for Drupal sites is the Redirect module. It has been recently updated by its creators.

The module allows you to easily create manual redirects from one URL to another and maintain a canonical URL for all content. This contributed module comes as a package of three submodules:

  • Redirect. It allows you to redirect a website URL to another one.
  • Redirect 404. It logs 404 errors and allows you to create a redirect for these pages.
  • Redirect domain. It allows you to perform a redirect between different domains.

Redirect Drupal module

By just enabling the main module, you get a simple interface that makes it immediately clear to non-tech savvy users how to do 301 redirect and more. We have also recorded a video tutorial that is waiting for you at the end of the page.

On the Configuration — Search and metadata — Redirect page, we see the page where all your redirects will be stored. You will be able to easily find the necessary ones through filtering (by source, destination, status code, and original language). It’s possible to edit or delete them from this page.

Redirect module page on a Drupal website

We need to hit the “Add redirect” button and then enter the details:

  • the source URL
  • the destination URL
  • the status (from 301 to 307)

The default status is 301, which is recommended, but you can change it on the Settings tab if needed.

Add a URL redirect on a Drupal website

The module has plenty of capabilities that developers love it for (Views API integration, integration with Drupal's page cache for performance optimization, redirect counter, automatic cleanup of inactive redirects, and much more). An important point is the module can team up with the Pathauto module to automatically generate path redirects and make sure the URL changes do not break the existing links.

Need help with your URLs?

Send tasks to experts! We have shared a basic guide on how to redirect a URL to another URL in Drupal. Our Drupal team is always there for you if you need:

  • assistance in installing and configuring the module
  • recommendations from our SEO team on your URL structure
  • more consultations on how to forward or redirect a URL
  • help with website redirects of any complexity
  • and much more

Drop us a line today and let’s make sure your customers and search engines find your pages at the right addresses! We will also be glad to hear from you about any ideas on site optimization, design, or development.

[embedded content]

May 20 2020
May 20

For every website, irrespective of the industry, a blog is a powerful magnet that attracts both visitors and search engines. In order to keep your website fresh, you need to regularly treat your audience to new and tasty content.

Among the ways to increase blog engagement is to notify users about new posts. Let’s see how to set up content email notifications on a Drupal website.

Of course, you can always rely on our Drupal development team for setting up notifications on your website according to your requirements at very affordable prices.

A few tips about how to engage readers on a blog

So you have a blog that helps you bring your message across to your prospective customers. How can you increase content engagement? How do you connect with readers better? The tips include (but are not limited to) the following:

  • Regularly share your blog on social media and add sharing buttons for your readers to do the same.
  • Make sure your website has a comment section so your readers can share their thoughts or ask questions (and get your answers!)
  • Insert encouraging questions into your blog content that directly ask your readers’ opinion.
  • Never underestimate the power of interesting video content.
  • Share your blog on forums, communities, and specialized platforms in various engaging formats like polls, podcasts, contests, slideshows, and so on.
  • Don’t forget to increase your website loading speed so your users don’t lose patience while waiting to read your content.
  • Be sure to improve your website’s mobile UX so it’s easy and enjoyable to read your blog from any device.
  • Email users when a new post is published, or an old one is updated or commented on. This is the subject of the rest of this post.

The role of email notifications in your user engagement

Let’s see more details about the benefits of notifying users about new posts on a website. This increases the chance that they:

  • come and read your content
  • share it on social media
  • register on your website
  • subscribe to your newsletter
  • become loyal readers
  • get involved in a discussion in the comments
  • or, most desirably, click your important CTA button

That’s why email notifications, as an important engagement technique, are beneficial for your blog views, popularity, SEO, and conversions. Considering the high open rates of emails, the impact can be very significant.

Opportunities to notify users about new posts on a Drupal website

If your website is built with Drupal, your options for email notifications are very extensive:

  • Recipients. You can send new post notifications to subscribers, users, authors, admins, etc. These can be users of specific roles, users from a specific list, or users who have performed specific actions (e.g. commented on a blog post).
  • Events. Notify users when content is created, updated, someone posted a comment or replied to it, there are new posts to moderate, etc.
  • Form. Send notification messages, full content items, content teasers, full comment threads or just personal replies.
  • Time. Send your emails immediately, schedule them to be sent in the future, or unquee them to be processed by Drupal Cron (time-based task scheduler).
  • Amount. Notify users about every single event or collect the events into regular newsletters.

Drupal modules for email notifications

Let’s now see how to notify users about a new Drupal blog and other events described above. As usual with Drupal, this can be implemented through a wide array of contributed Drupal modules.

Which is the best Drupal module to send new post notifications to subscribers? Each of them is great in its own way and performs particular functions. Of course, anything that is not covered by them can be added as custom functionality by Drupal development experts.

Comment Notify

Comment Notify is a lightweight module that notifies users by email about replies to their comments and other comment-related events. It is available both in Drupal 7 and Drupal 8. The module has been freshly updated.

One of its important features is the ability to send emails both to authenticated and anonymous users. Anonymous users are a very promising audience in building a blog community. Other features of the module include the option for users to unsubscribe, notifications for admins that they need to moderate a comment, emails for authors about new comments to their blog posts, and much more.

Comment Notify Drupal module

Admin Content Notification

The Admin Content Notification module allows you to notify users by email when new content has been created or updated. It is also available in Drupal 7 and 8.

You can notify website administrators or users of any other roles, as well as users of a specific list. It’s possible to select specific content types, events (whether the content is created or updated), send content nodes via tokens, and much more. 

Admin Content Notification Drupal module

Workbench Email

The Workbench Email module enables you to send email notifications based on content status changes. You can send emails from the admin dashboard about the transitions of content from state to state, for example, when the content moves from “draft” to “needs review.” Its work is based on configurable email templates. The module supports tokens and allows you to select users and content types.

Workbench Email Drupal module

Message Stack

The Message Stack is a complex but very powerful and flexible module that consists of the Message, Message Notify, Message Subscribe, Message Digest, and Message UI submodules. The package has capabilities that will impress any developer because it can do literally anything if used properly. For example:

  • defining message types and generating messages
  • export of message types
  • subscription to events related to content
  • plugins for email and SMS notifications
  • multilingual support
  • Token support
  • Rules support
  • example modules included

Message Stack Drupal module

Let us help you notify your users about new posts on your site!

If you are still asking yourself “How can I increase my blog traffic?” try these effective email notification techniques and boost user engagement with the help of our Drupal development company.

We understand the situation is difficult today for many businesses. So we have adopted a cost-effective development approach and now do the work twice as fast. A wealth of contributed modules in Drupal, for email notifications and other purposes, allows us to use minimum customization where it is possible in order to meet the customer requirements. Give it a try!

Contact us to discuss how we can use our development expertise to help your website and business.

May 13 2020
May 13

Keeping a castle secure requires you to keep watch in every direction. The same applies to websites — protecting your “digital castle” involves many different aspects.

Luckily, Drupal website security is on a pretty high level, so you just need to follow its best practices. You can always count on our Drupal support & maintenance team for the task of improving website security and implementing the best website security measures like:

  • switching to HTTPS
  • applying Drupal security updates
  • bringing order to roles and permissions
  • blocking access to important files
  • installing security modules
  • and many more.

Our team can not only protect your website but also your budget from extra expenses thanks to our reasonable pricing and quick problem solving.

Today, we are taking a closer look at one of the practices to improve website security that is rarely described — website session timeout. Let’s see how this is done by the Automated Logout Drupal module.

How to improve website security with automated logout

You might have noticed that online banking applications show a countdown of your session time. This session time is usually very, very short.

Of course, not all apps or websites deal with this level of sensitive operations. So their session expiration time may vary. Still, if you want to improve website security, your site needs an automated logout.

The explanation is simple: this feature prevents hackers from intercepting a user’s session ID and intruding into your site. This makes it one of the website security basics that are used to improve the protection level.

  • According to OWASP (Open Web Application Security Project), insufficient session expiration increases session-based attacks. The shorter your website session is, the fewer opportunities you leave open to attackers. So you should keep a good balance between security and usability depending on the purpose of your website.

Website security features of the Automated Logout Drupal module

As part of the security measures for a website, the Automated Logout contributed module in Drupal allows site admins to specify the time of inactivity, so users are automatically logged out when it expires.

The module is very flexible in its settings. Among its features to improve website security are:

  • different session timeouts for different user roles
  • individual website session timeouts on a per-user basis
  • customized notifications about the upcoming logout
  • JS mechanisms to keep users logged-in when they have multiple tabs open or are working on a form
  • and more

How to work with the Automated Logout Drupal module to improve security

Let’s see the module in action. With the module installed and enabled, go to Configuration — People — Automated logout settings. Here are the key details to configure:

1) The main time settings

  • Set the timeout value in seconds (60 or longer). If role-based timeout is activated, this setting will not be used.
  • Set the maximum timeout in seconds. This is the maximum time that can be set by users who are allowed to set their own timeout.

2) Time for a response

  • Set the timeout padding in seconds. This is the time a user has for responding to the dialog before the logout (whether they want to resume the session or not).

Automated Logout Drupal module - settings for time

3) Where to redirect users

  • You need to set the redirect URL to which a user is redirected after the session is over.

Automated Logout Drupal module - settings for redirect URL

4) User-specific and role-specific timeouts

  • You can disable user-specific logout thresholds if you want to forbid everyone from setting their own individual maximum logout time. If this is allowed, this can be configured in individual user profiles in the People section of the admin dashboard. However, it never exceeds the sitewide maximum timeout you have set in Point 1.

Automated Logout Drupal module - settings for user-specific and role-specific timeouts

  • You can enable role timeout if you want to allow specific user roles to set their per-role maximum timeouts and redirect URLs. The permissions for specific roles can be set in the People — Permissions section of the admin dashboard.

Automated Logout Drupal module - roles and permissions

5) The logout dialog settings

When the logout is approaching, it’s a good practice to show a dialog window to users that informs them about this and gives them a chance to respond “yes” or “no” to the option to reset their session. Here are the things you can customize:

  • The dialog title
  • The message to display in the logout dialog
  • The message to display after the logout
  • The type of message (status or warning)
  • The time for a user’s response (see Point 2).

6) The response buttons

It’s also possible to customize the “confirm” and “decline” button text in the dialog window or totally disable the response buttons.

If you need to improve the standard look of the buttons to meet your brand’s identity or customize the above-described process in any other way, just contact a Drupal team.

Automated Logout Drupal module - response buttons

Improve website security with our support experts!

It’s easy to stay safe when you take the best security measures for your website. Our Drupal development company knows how to improve website security, so let us help you make your site a protected place.

As support and maintenance experts, we strive to improve sites in every aspect, so you can ask us to improve not only your site’s security, but also its performance, SEO, etc.

You can reach out to us with tasks of any scope — from installing and configuring specific security modules to performing a comprehensive security audit at a good price. Drop us a line to improve website security today!

Apr 29 2020
Apr 29

CRMs are helpful assistants for businesses in their communication with current and prospective customers. No wonder that many business owners want to integrate CRM software with their sites.

Luckily, the enhanced third-party integration opportunities in Drupal 8 pave the way to any integrations you need, which is one of the significant Drupal 8 benefits for a business.

The InternetDevels web development team has extensive experience integrating Drupal sites with various CRMs, so you can ask us for help with a task like this at any time.

The focus of our today’s post is specifically on Drupal integration with Salesforce. We will review the opportunities in this area, as well as share one of the recent Drupal case studies of building a Drupal 8 website with Salesforce integration.

What is Salesforce? A glimpse of the famous CRM solution

Salesforce is an industry-leading cloud-based CRM (customer relationship management) solution that brings businesses and customers together. The word “sales” in its name clearly shows one of its key missions — it helps companies effectively manage their sales, customer service, marketing automation, collaboration, and analytics. The platform gives the sales, marketing, commerce, and other departments a shared view of every customer.

Salesforce Suite

Benefits of integrating Drupal and Salesforce

If you have a Drupal website, your sales and marketing team can enjoy all the power of Salesforce described above through a smooth integration between the two systems. Here are at least a few benefits you will get:

  • your sales and marketing workflows become much more efficient
  • you save time and money thanks to a completely integrated system
  • you never miss a prospective customer thanks to instant email notifications
  • you have a chance to track your competitors
  • both one-way and two-way data sharing between Drupal and Salesforce is possible
  • it’s easy to create and update the data thanks to smooth synchronization
  • authorization features improve the data protection

Drupal integration with Salesforce: how it works

The essence of any integration is a perfect data exchange — Drupal websites need to both push the data to and pull it from Salesforce. As stated above, any integrations have become a breeze in Drupal 8 thanks to its API-first approach.

Drupal also boasts a wealth of ready made contributed modules that facilitate specific integrations. So, of course, there is a useful Salesforce module for Drupal 8 (and Drupal 7 as well). It’s called the Salesforce Suite and takes care of the seamless integration. The suite includes a bunch of submodules, so let’s take a tour on them.

A glimpse at the modules for setting up Salesforce on Drupal websites

The Drupal 8 Salesforce Suite module

The Salesforce Suite is the main module for the integration. It synchronizes Drupal website’s entities (content nodes, users, etc.) with Salesforce objects (contacts, organizations, etc.) The exact relationship between these is provided by field mapping.

The module supports the import and export of data, which can be both in real time or asynchronously, based on the Cron runs. The Drupal 8 Salesforce module version has been updated in 2020.

The Salesforce Suite submodules

Here is how the particular tasks are performed by the efficient team of the submodules in the suite’s Drupal 8.4 version:

  • Salesforce Integration. This submodule is responsible for the Drupal and Salesforce integration.
  • Salesforce JWT Auth Provider. This tool in the suite takes care of the key-based Salesforce authentication.
  • Salesforce Mapping. To better synchronize the exchanged data, field mapping is used. This submodule maps Drupal entities to Salesforce objects.
  • Salesforce Mapping UI. This submodule provides a handy user interface that allows you to manage the mapping settings.
  • Salesforce Logger. This member of the suite provides for the consolidated logging of the Salesforce Log events.
  • Salesforce Push. This tool is particularly responsible for pushing the Drupal data to Salesforce when updates are made on Drupal.
  • Salesforce Pull. The opposite job is performed here — the Salesforce objects are imported based on the mapping.
  • Salesforce Soap. This submodule exposes a SoapClient service to communicate with the Salesforce SOAP API.
  • Salesforce Webform. This submodule adds support for webforms fields in the mapping process to provide Drupal Salesforce webform integration.

Salesforce Suite module for Drupal and Salesforce integration

How to integrate Salesforce with Drupal: case study

For the Drupal 8 case study we are sharing now, our customer recently reached out to us with a request to build a simple website. The site didn’t have to include anything special — just a few content types to match the InDesign template, Google Analytics tracking, and, at the most complex part, Drupal integration with Salesforce.

When we are asked for “simple website development,” we understand the customer’s budget is limited. So we try to help them and make even the seemingly complex parts simple. If you are also interested in development services based on this approach, you can drop us a line.

One of the ways to achieve this is to use the Drupal core and contributed solutions. That’s exactly what happened in our case — we used the Salesforce Suite to implement this integration.

To relate the Drupal data to the Salesforce data, we relied on the built-in field mapping types of the Mapping module in the Suite without writing custom ones. The built-in field mapping types include properties, related IDs, constants, tokens, and more, so they cover plenty of simple cases. This is exactly what was needed for our customer’s case — simple user properties.

Steps of Drupal integration with Salesforce

Here are the standard steps to integrate Salesforce with Drupal that we performed and that may come in handy to anyone.

1. The Salesforce part

  • Our customer signed up for a Salesforce Developer Edition account.
  • We advised them on how to create a new Salesforce Connected App (at Setup — Create — Apps — Connected Apps — New), including the enabling of the OAuth settings and specifying the callback URL to their domain.
  • After that, they received their consumer keys that needed to be saved for the next step.

2. The Drupal part

  • On the customer’s Drupal website, we installed the Salesforce Suite and enabled its key submodules.
  • On the Administration — Configuration — Salesforce — Authorization page of our customer’s Drupal admin dashboard, we entered the credentials received from the Salesforce in the previous part.

3. Mapping Drupal to Salesforce

  • Next, we went to the Administration — Structure — Salesforce — Mappings page on the Drupal dashboard.
  • We created a mapping instance labelled “Customers” and specified the Drupal entity type “User” should be mapped to the Salesforce object “Contact.”
  • Next, we mapped all the necessary Drupal user properties (first name, last name, email, etc.) to the corresponding Salesforce fields.

Finally, how to test Salesforce and Drupal Integration?

Here are the steps to test whether the integration works:

  • We created a new test user on the Drupal website to see if it would be automatically pushed to Salesforce.
  • Next, we ran Cron at Administration — Configuration — System — Cron to refresh the Salesforce contacts.

Integrate your Drupal website with Salesforce or another CRM!

If you’ve been thinking about integrating your website with Salesforce or any other CRM of your choice, or building an entire website for your business, the time is now. Our special priority today is to provide our customers with reasonably-priced solutions. Our Drupal development team will find ways to resolve your tasks quickly and efficiently, while saving where it is possible. Let’s discuss!

Apr 23 2020
Apr 23

Everyone is looking for positive news, and we have some for you. Drupal web development in times of Covid-19 continues — severe crises are even opening new perspectives! One of the characteristics of a good web development company is that it only becomes stronger in hard times.

Read on to discover why the idea to hire remote software developers for your Drupal project is an especially good one during the Corona crisis. We also describe how we provide Drupal web development services now, under quarantine.

Remote work is our team’s natural environment

Due to the quarantine restrictions, we, like most IT companies, transferred our team to remote work mode. However, nothing has changed for anyone who wants to find software developers for hire. Some things have even become better.

In our case, remote work is not new — this is something we had mastered already because we had a chance to. Outsourcing web development overseas has always been a popular approach among businesses. Ukraine is always on the list of the best countries to outsource web development to, we have always seen Ukraine — indeed, there are particular good reasons to work with a Ukrainian outsourcing company. Multiplied by our skills and reputation, this has always provided the InternetDevels Drupal web development company with overseas customers.

That said, everyone who is looking to hire developers should know that the Covid-19 quarantine has had no impact on the quality of our web development services:

  • First, we established high-level remote communication and smooth workflows with the overseas customers long ago.
  • Second, we have always been flexible with allowing our own developers to do their work from home and this is not a problem.

As always, we invite you to hire remote developers from the InternetDevels team and promise to provide as efficient workflows as ever! We firmly believe that efficient Drupal development services should be available from any location.

Key components of our remote development services

The staff

Drupal developers, just like most other IT experts, value a quiet environment that is not always available in the office. They need inspiration and concentration in order to be productive. So the quality of their work may even improve from their home isolation. 

While working remotely, our team members are able to make themselves comfortable on their personal couch when they want to and deliver their genius ideas. In addition, they are never stuck in traffic jams and have more time for their families.

Of course, working from home takes self-discipline and responsibility. But we only keep people on the team who have proved responsible and reliable. They keep to the deadlines and regularly meet with the whole team and the customer via video calls according to the best Scrum practices.

Remote work requires establishing a good work-life balance, and our Drupal team tries to stick to the best recommendations here. These include having strict working hours, changing clothes from pyjamas to something more official, informing the family about their video conference time, and more. However, these are just recommendations, because it’s not the clothes that matter —- it’s the skills.

The equipment

Drupal development is in a very lucky industry that can continue through the lockdown. The only necessary equipment being computer hardware. It’s very easy — an office can be at home if it is properly equipped with the right PCs! For many IT specialists, the capacities of their PCs and the characteristics (and the number) of their monitors are indispensable for their productive work.

InternetDevels remote home office in times of quarantine

So we have provided our development team with all the hardware they need and have also helped with the deliveries to their homes. There was even a case when one member of our development team suddenly had their laptop fail, and we quickly delivered another one so this person did not lose a precious working day.

That said, if you hire remote developers from the InternetDevels web development agency, you can be sure they have everything they need to do the work as efficiently as ever.

The tools

As always, we use the best tools to provide for smooth remote communication and efficient workflows. They eliminate repetitive tasks, increase the development speed, take care of the shared work, and do much more. These include messengers, video conferencing tools, project management software, version control tools for developers, etc.

Among the tools are Zoom, Slack, Google Hangouts, Jira, Skype, Github, Bitbucket, Google Docs, Google Drive, and many more.They are crisis-proof and work at any distance. We have been using them with our overseas web development customers for a long time, so there is nothing new in them.

The new perspectives of your digital presence

Here is what we meant when we promised to tell you about your new perspectives. As you know, the world has moved online due to the lockdown. People browse the web instead of travelling, hiking, or doing other outdoor activities. They are online, and are you there for them?

Businesses that are represented online have a clear advantage. There is an increased need for online shopping, delivery services, online educational and entertainment activities, blogs and news, and much more.

The lockdown will end someday and Covid will be happily defeated — there is no doubt about it! People will travel again, walk around their beautiful cities, and see their loved ones.

However, the trends of online activities will remain ever after — the world has understood their convenience. For example, someone who once enjoyed shopping in your Drupal online store with a user-friendly shopping cart will continue to do it just because it’s quick and easy — so don’t miss a chance to hire the best e-commerce developers.

Loyalty to customers and affordability of services in times of crisis

We strive to help our customers in difficult times, so we are offering very reasonable pricing if you would like to hire remote developers. We want to take part in providing your business sustainability now.

We know that Drupal websites can absolutely give businesses a big boost by attracting customers, promoting their brand, and driving conversions.

We can always find more affordable Drupal development solutions — for example, the use of the core and contributed modules where it is relevant. The efficiency also matters — our devs are able to do much more work per hour in order to deliver the results to you quickly and without extra costs. We started a strategy to immediately divide the scope of work into the standard and custom parts and advising our customers on a faster and more affordable option. So drop us a line to discuss this for your site.

The benefits of outsourcing web development

In our big world full of Drupal talents and having a great level of remote workflows, there is no more need to look for “software developers near me.” Finding a software developer that meets your needs can be a much more successful task if you expand your search across the globe and hire overseas. Here are just a few reasons why outsource web development:

  • Considerable cost savings. Costs can be saved thanks to the big choice to hire developers at more affordable prices outside of your country. Another big advantage of outsourcing vs hiring in-house is the savings it gives you on the recruitment process, permanent monthly wages, work equipment, and so on. By outsourcing web design overseas, you only get your services when you need them.
  • Broader skills. Outsourcing web development is a chance to find top talents in the industry. If you hire an in-house developer, they will find it hard to compete with a team of experts who have worked on many projects, faced a variety of issues, and can combine their specific skills in ever-changing technologies on your project. In addition, UX design, QA, SEO, and other specialists are also part of Drupal web development teams and play their valuable role.
  • Focus on your business. When you hire an outsourcing team, you entrust it to experts without having to worry about or dedicate your precious time to it. You can focus on your own key business processes instead. Still, you are fully able to control the project — your input is welcome in the Agile practices and we are fully available through remote communication and transparent task tracking.
  • Stable workflows. What to do if a developer “falls out” of the process due to an illness or other unforeseeable circumstances, or a particular one cannot fully meet your needs? To cover these cases, outsourcing web agencies have other devs to substitute them. By signing a contract, they take the responsibility to provide stable workflows throughout your project. This is a significant advantage over hiring an in-house developer.
  • Flexibility on your project. Every stage of your project needs a specific amount of work from particular experts: developers, designers, QA engineers, etc. You don’t permanently need all this staff in-house. You are free to vary your requirements according to your business situation — for example, first create an MVP (minimum viable product) and then add features and scale your project. This is not a problem with Agile agencies.

Hire our remote web development team

If you are ready to join the customers who outsource development projects and enjoy the resulting efficiency, our Drupal team is here. Hire remote developers from InternetDevels to outsource web development at affordable prices today. Stand strong against the crisis and more forward thanks to your digital presentation! Contact us to discover more details.

Apr 15 2020
Apr 15

Every moment, myriads of products hurry to every corner of the globe. Convenient e-commerce shipping is one of the things that makes online shopping so irresistibly popular.

Online store owners can greatly benefit from the right shipping strategy. Their e-commerce websites should be able to help them implement this strategy perfectly.

This is all possible with Drupal! We are sure Drupal is the best solution for e-commerce with its powerful platform for online stores — Drupal Commerce. Read on to discover more about Drupal Commerce shipping solutions and opportunities.

Options for product shipping in e-commerce

You are free to shape your e-commerce shipping strategies based on your business model. Here are just a few popular options:

- You can choose the shipping carriers to integrate your store with who will provide the most reliable delivery.
- Your store can offer free shipping to your customers.
- You can charge a flat shipping fee (the same rate irrespective of the product).
- There can be different rates in your e-commerce store based on:

  • product weight
  • size
  • amount
  • packaging
  • country
  • city
  • address
  • distance
  • urgency
  • total order
  • and more

A closer look at e-commerce shipping solutions in Drupal Commerce

E-commerce shipping operations are available thanks to the Drupal Commerce core and a special contributed module — Commerce Shipping. Commerce Shipping works as a framework meant to be used in combination with other modules like Commerce FedEx, Commerce Canada Post, Commerce UPS, etc.

For simple options like the flat shipping rate, the Commerce Shipping contributed module is enough. In Drupal 7, the Commerce Flat Rate module is also needed, however, it became obsolete in Drupal 8 with Commerce 2.

To integrate with a shipper of your choice (FedEx, UPS, etc.) and have their rates calculated for your customers, you will need additional Drupal modules. We are listing some of them below. If here is no existing module for the desired shipping provider, you can order a custom module for e-commerce shipping from our website support team at an affordable price.

Popular Drupal Commerce modules for shipping solutions

Commerce UPS

The Commerce UPS module provides integration with the popular UPS (United Parcel Service). It requires an active ups.com account to get the estimated rates. The module is available for Drupal 7 and Drupal 8 (currently the alpha version).

Commerce UPS Drupal module for ecommerce shipping

Commerce FedEx

The FedEx courier and shipping services can be offered on your online store thanks to the Commerce FedEx module for Drupal 8 (currently in beta). With its help, you can provide dynamic FedEx rate calculations.

Commerce Kiala

The Commerce Kiala module provides integration with the Kiala courier services and allows the customer to select their desired Kiala Point during the checkout. The module is for Drupal 7 online stores only.

Commerce Kiala Drupal module for ecommerce shipping

Commerce USPS

USPS (United States Postal Service) can easily be added as a shipping provider to your store with the Commerce USPS module. It currently has stable releases both for Drupal 7 and Drupal 8 e-commerce websites.

Commerce USPS Drupal module for ecommerce shipping

Commerce Canada Post

The Commerce Canada Post module connects your Drupal online store to the notable Canadian postal delivery service. Its Drupal 8 version is in the release candidate state.

Commerce Canada Post Drupal module for ecommerce shipping

Commerce Australia Post

For many online stores, the Australia Post shipping is important, which can be provided with the help of the Commerce Australia Post module. The module is a release candidate in Drupal 7 and beta in Drupal 8. It works on the basis of an API key with Australia Post.

Commerce NZPost

The Commerce NZPost module provides estimated costs of the New Zealand’s postal delivery provider — NZ Post. The module has a stable release both for Drupal 7 and Drupal 8 e-commerce stores.

Commerce NZPost Drupal module for ecommerce shipping

More shipping modules (Drupal 7 mostly)

Other shipping integration modules include Shipwire Commerce, Commerce bpost, Commerce Shipping DHL, Commerce Colissimo, and more. Remember to contact our website support team if you are interested in a particular provider, for which there is no module yet or it needs improvement.

Notes on Drupal Commerce shipping setup

Adding a shipping method

The shipping methods are available at Admin — Commerce — Configuration — Shipping methods. There is a plugin system used. You need to:

  • give your shipping method a name for the admins to see
  • choose the plugin to use (the “flat rate,” “flat rate per item,” or other based on additional plugins used)
  • add the rate label for the customers to see
  • optionally add the rate description
  • specify the shipping rate amount

The settings will differ with different integration plugins, but still be similar in essence.

Adding a shipping method in Drupal Commerce

Specific shipping conditions

You can set up shipping rates based on particular conditions. Drupal Commerce 2.x and the Commerce Shipping Drupal module provide a number of built-in conditions available in the Shipping Method configuration form. They are based on the following:

  • customer role, customer email, billing address
  • order total, order type, currency, store
  • product weight

Shipping conditions in Drupal Commerce

However, any others can be created for your Drupal store with the help of Drupal Rules so you have enough flexibility.

Making products shippable

An important note is that shipping also needs to be enabled for a particular product variation type at Admin— Commerce — Configuration — Product variation types, in other words, you need to make them shippable.

Affordable services for online store setup or creation

The above described options were very simple, but Drupal Commerce shipping opportunities are unlimited. You can have any custom Drupal Commerce shipping rules, rates, and so on. In the hands of expert developers everything can be customized to exactly meet your needs. That said, here is useful information for both current or prospective store owners:

  • if you already have a store and need e-commerce shipping solutions or other features set up
  • or if you are just thinking about a new e-commerce business and want to hire best e-commerce developers

our Drupal team is here for you. We offer affordable website support and Drupal e-commerce development services — talk to us to discuss more details!

Mar 25 2020
Mar 25

Every business owner strives to be fully represented in the digital world and provide the most engaging experiences both for desktop and mobile users. To do this, 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 and 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 normal 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 quickly 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 serves the 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 deals with caching out-of-the-box.

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” — 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 area, some of which were newly-introduced in it (like the BigPipe module) and have gained the respect of many developers. So welcome to our little tour on the ways to improve website speed in Drupal 8.

How fast should a website load in 2020?

The classic recommendation is to keep the website loading speed within 3 seconds. However, every millisecond matters for conversions, so it's better to strive for more. For example, Amazon reports that every 0.1 second of loss in speed causes a 1% loss in sales.

As site speed is officially a ranking factor by Google, it makes sense to consider the scores and recommendations of the Google speed measuring tools. One of these is Google PageSpeed Insights. It can give your site speed one of these scores based on a number of factors (and, of course, you want to get 90+):

  • fast (90 or above)
  • moderate (50 to 90)
  • low (below 50)

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 a Drupal 8 performance audit from our experts. However, the most 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 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 quickly handle dynamic pages. It loads the unpersonalized page elements first and the 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 the context (user role, permissions, URL, etc.)
  • cache max-age determines how long the item should be cached (0 for uncacheable items), 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 that are enabled by default at /admin/config/development/performance.

CSS/JS aggregation in Drupal 8

Contributed modules include 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 where you want to improve website speed.

The prefetching technique

According to the link prefetching technique, links in the user's viewport are detected. In order to speed up the delivery of pages that the user might want to click, the content from these links begins to be saved in the cache as soon as the browser goes idle. There is a relatively new but already popular module — Quicklink.

External cache systems

Give your website an extra speed boost by using an external cache system — Redis, Varnish, Memcached, and so on. Drupal 8 offers contributed modules that take care of smooth integration. Examples include Redis, Memcache, Varnish, and more.

Using a CDN to improve website speed

A content delivery network (CDN) can deliver your content to users faster due to being a geographically distributed network of proxy servers. One of the most popular Drupal 8 modules that can help with CDN integration is the CDN module. It changes your website file URLs so they are downloaded from a CDN instead of your server.

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

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

In D8, lazy loading can be applied with the help of contributed modules. The Lazy-load and the Image Lazyloader are very popular ones.

Using the latest version of PHP to improve website speed

Since PHP improves with each new version, it’s reasonable to 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 always, you will greatly improve your site speed by disabling unused modules or replacing heavy ones with better alternatives. In D8, this has become much easier since many of great modules (or similar capabilities) have been moved into the core.

For example, 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 speeds. They also help you create interactive interfaces that users love.

Today, it’s trendy 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!

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