Upgrade Your Drupal Skills

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

See Advanced Courses NAH, I know Enough
Jul 13 2021
Jul 13

Accepting payments on a Drupal website

Drupal is a very good and secure content management system the website admin uses to upload text and images. However, to enable this website to do something more than just serve as a blogging platform, its functionality can be extended by integrating additional modules. The modules consist of a set of PHP, CSS, and JavaScript code that interacts with the system core and adds new capabilities. The modules and Commerce, Kickstart, and Ubercart distributives are what you need to enable your website to work with goods and cash transfers.

Though Commerce in itself doesn’t include the payment function, it offers a ready framework and an admin panel the function can be integrated into. The user should download the module for the Drupal Commerce platform, which is integrated with the selected payment system or gateway, and set it up in the admin panel. The list of EPSs and payment gateways compatible with Commerce includes both the world-known PayPal, Stripe, Braintree, Authorize.net and 100-plus small aggregators listed in the module documentation. If the payment gateway you wish to use on your website is missing from this list, Drupal Commerce framework allows developing the module on your own.

And what will happen if you neglect to perform integration with the payment gateway? We were approached by a client whose buyers, when trying to pay for the order, were pushed out to the bank website where the payment was to be carried out. The magic was unveiled and unnecessary steps were added to the payment procedure; as the result, the buyer was not happy. You’ll be lucky if the buyer finalizes the purchase, but the chances of the buyer returning reduce as there are more convenient stores. Based on programmers’ estimates, it may take tens of hours to develop a solution for Drupal Commerce integration into an unknown payment system. It’s expensive but look ahead — by saving on development now, you are likely to lose buyers and money later.

We talked about Commerce, Kickstart and Ubercart in our first post and provided the Commerce installation and setup guidelines in the same post. That’s why let’s use the remaining space for other aspects. For instance, we’ll describe an exceptional case you also can experience if you accept payments from a foreign bank.

The child health clinic "Under 16 years old" is one of our clients. To enable payment for services, we used the payment gateway of Sberbank (a major Russian bank). Some gaps were found in the bank documentation: nothing was said about the case when a payment made by a foreign bank card fails. This was the case the clinic’s customers faced when they tried to pay by cards issued by Kazakh banks. The problem was resolved only in personal consultation with the technical support of Sberbank. The moral and recommendation would be as follows: since it is not always the developers who are to blame for all acquiring issues, contact the support teams of all services involved in the process if you are going to have international transactions.

Data security

Who is responsible for data security? What is the site owner to do to protect the buyers’ payment data from leaking anywhere?

Usually, if you need to keep card details, you should select a payment system that allows doing this on its side (for example, Stripe). In this case, the online store website operates only with the identifiers needed to request data from the payment system. However, the data leak is still possible as the attacker might find some security gaps during setup of the web server or in the application itself and use the gaps to embed the code to collect personal data or can steal private keys for the aggregator integration.

To be on the safe side, it makes sense to maintain security updates for CMS and the modules, configure the web server and access rights correctly, and be mindful of the system functional testing to differentiate the access rights to ensure that anonymous users cannot access the orders or that buyers cannot view each other’s orders.


Surely, a third-party service also wants to earn money and charges business internet professionals a fee for some of its services. All providers of internet acquiring services are similar in that they charge a commission for each remittance. For instance, Stripe charges 2.9 % of the payment plus 30 cents and promises ‘no setup fees, monthly fees, or hidden fees’. Good client-oriented services are ready to offer you a special percentage rate based on your region, business type, and monthly revenue.

In addition to the remittance fee, payment services can charge fees for:

  • Monthly usage
  • Service setup
  • Chargebacks
  • International fund transfers

Read the tariff information of each payment service provider carefully.

An online shop offering search by products, filters, payment page, personal account, etc. will require a higher-performance server as compared with an online business card or a media outlet, which is why additional expenses will be needed for the online shop hosting.


Judging from experience, website owners can go very deep into the aspects relating to the differences between the payment systems, data security, and so on, but they are not always able to put this knowledge readily into practice. Remember the story about in-house development of the module that enables interaction with the payment gateway. As you might guess, this task requires some programming skills. We are writing this post because we want to share the same language with entrepreneurs but we suggest that you should delegate the tasks of the payment system implementation and setup to your contractor.

Mar 15 2021
Mar 15

The status of an online retail store in 2021

Spring 2020 was a challenge for trading.

On the one hand, it led to a drop in revenue for small and medium businesses and the closure of some of them. The survey conducted by PNAS showed that 43% out of 5,800 of the companies belonging to a small business referral network Alignable, temporarily closed down their businesses. Most of all, the coronavirus affected trade, art, entertainment, catering, and the hotel business.

On the other hand, "online" saved the business from a total drop. The survey by Searchnode: 90% of the entrepreneurs surveyed saw an increase in online sales during a lockdown, and the increase was over 100% in 50 percent of cases. In particular, sales at Walmart grew by 97%. Online sales at BestBuy showed more impressive growth: 255% in the period between the second quarter to July 18. Amazon's online and traditional retail sales increased by 40% and accounted for $ 88.9 billion.

What type of future does research predict? In 2021, the total value of online purchases will amount to almost $ 5 trillion, more than $ 3.5 trillion of which will be spent on purchases via the mobile Internet (in 2016, this figure did not reach $ 1 trillion by comparison).

We hope that the conclusion for everyone is obvious: an online store is available for all devices would help ensure a business's long life and profitability.

Create an eCommerce website on Drupal

First of all, the choice of technology for an online store depends on the task and the size of your business. You may choose ready-made website builders, such as Tilda or Wix, to realize the simple business logic of orders and payments, as well as for a small flow of customers (for example a home bakery or local cafe).

The move from a small business to a medium and large one sets new tasks for its owner:

- differentiation of access rights for users of the online sales tool,
- scalability as the website becomes a high-load;
- search for goods by several characteristics (or faceted);
- integration with CRM and other services.

In this case, you should turn to ready-made CRM and eCommerce platforms. There are many such platforms, but as a Drupal web development company, we will talk about it.

The business potential of Drupal

Ready-made open-source platforms save the budget and are even more attractive during the crisis. With Drupal, you can manage both content and sales at the same time - it is a great success for all types of business and credit for the Drupal community spread all over the world. It is the best eCommerce CMS for developing online businesses! Why? Нere are at least 11 reasons:

Taxonomy. The Taxonomy module organizes the filtering and sorting of products in the product catalog on the website. Without this, an online store is impossible. For a while, users had to download and install Taxonomy separately as any contributed module but due to the high demand, it was included in the Drupal core.

The data-driven approach in eCommerce. If you want your sales to be driven by content, you need full integration of the eCommerce platform and CMS into each other. It rarely goes fast, and here we found one of the profitable advantages of Drupal: Drupal Commerce. This is an addition to Drupal, which plays the role of the module and the framework. Below, we will tell you more about it.

Hundreds of modules, distributions, and themes. The influence of the international Drupal community on the platform can not be overestimated: its members work on solutions to problems of any complexity so that owners can implement them in their online stores. Drupal Kickstart and Ubercart are two of the most common solutions that we'll talk about a bit too.

The integration with third-party services. For normal operation, you need to add payment systems and analytics systems, integrate with social networks, set up a chat, automate the marketing of an online store on Drupal. The REST API architecture gives Drupal access to a wide variety of such tools.

Mobile-first architecture. If you want to help master those same $ 3.5 trillion that mCommerce projects will earn in 2021, your online store must work on all mobile devices. Responsive design is one of the distinctive characteristics of Drupal.

Multilanguage. People buy and sell all over the world, so any eCommerce / mCommerce project should be able to speak with the client in any language. Drupal knows about a hundred languages, including those that read from right to left.

The ability to sell digital products. In the past year, some digital services have experienced a big jump in traffic against the background of the coronavirus. The world is no longer stable and the scenario of migration of all activity to online is no longer fantastic. Therefore, the opportunity to buy some kind of a digital product on the website is welcome today.

Inventory of goods. If you are selling clothes, it must have the size parameters, color, size. If your product is comics, then they can be divided into originals or translations, for persons older than 6 or 18 years, issued by one or another publisher, and so forth. The Drupal Commerce module includes the concept of a Stock Keeping Unit (SKU). This is an identifier that will be different for each product with different parameters. Also, this opportunity helps to control the stock balance.

User Divisions. The buyer should not be given access to the admin panel as well as a seller should not have access to replacing banners and website themes.

Good UX. The faster the user purchases the website, the greater the chance that she/he comes back for a new one, and the search engines would rank the website for keywords better. Drupal can provide this speed, and adherence to the principle of Headless eCommerce would allow the user to move on between pages with lightning speed.

Omni-channel. The more points of contact with a company customers have, the better. And Drupal has the potential to build an entire ecosystem of products. If you need mobile app development after creating the website, then there will be less work. Thanks to the same principle of Headless eCommerce, the content management system acts as a database, common for both the website and the mobile application.

Drupal Commerce

Drupal is often referred to as a platform in which it is enough to tick necessary checkboxes to get the first sales. Well, that’s an exaggeration! You highly likely will overcome the first obstacles during the Drupal configuration. Ask yourself, "If it's that simple, then what is the large Drupal developers' community doing?" and get a step closer to creating a beautiful, modern, competitive, secure in terms of the leak of data and a constantly updated online store, which can not be created without the knowledge that the community had developed over the years. But we will still attach instructions for non-programmers: the new knowledge will increase your self-esteem and subsequently allow you to communicate more effectively with the development team. 

We remember that, first of all, Drupal allows you to post content on the website, and all other features are being added by Drupal-compatible modules. One of these is Commerce.

This module is the framework that allows the native integration of commercial options into a Drupal website. The developer will quickly be able to link the module with any third-party application with the API-first principle, and this is particularly important if your business is already integrated with some systems before creating the online store. Since this is a framework, all configurations, settings, and themes are created from scratch. The developer gets free rein but if you are not one of them, then do not waste time trying to understand this tool on your own.

The basic set of entities that can be created with the help of Commerce includes:

  • Product — what is sold in the store;
  • Orders — one or more units of products that the website user puts in the shopping cart, as well as settings for each unit of the product taken into account at the stage of calculating the final cost and payment (for example, a discount on a product);
  • Line Items — unit of the product with its properties (size, color, etc.), which will be taken into account when orders are created;
  • Payment Gateways — software that solves the problem of order payment. These are either solutions developed by companies for their specific needs or ready-made, like PayPal, Stripe, Braintree, Ubercart, bank payment gateways.

Also, community members created useful modules for Drupal Commerce for everything in the world: total delivery costs, inventory count, calculating fees and tax rates, and much more.

Тhere are two versions of Drupal Commerce at the moment: Commerce 1 is compatible with projects on Drupal 7 and Commerce 2 - Drupal 8 and 9. Both can be downloaded from the official website of the Drupal platform

How to create an online store on Drupal without the help of the developer

Now we'll show you how to build a simple phone store using Commerce. Let's call it "Triline".

1. Download the latest Drupal core. This can be done in two ways:

  • using the Composer package manager. You need to send the command to its console: 

composer create-project drupal-composer/drupal-project:9.x-dev my_dir --no-interaction

The Drupal Commerce module would require setting external dependencies, so it's best to create your project using Composer. Alternatively, the required sets can be connected via the Ludwig module, but we recommend Composer anyway.

2. Specify access to the database.

Jan 21 2021
Jan 21

Accessibility design

The mission of accessibility design - to make digital work easier for people with disabilities and everyone who works with it, and grow the target audience this way. Voice assistant, subtitles, large fonts - for any content, you need to think about the user scenario of the user with a disability. 

If you are new to web design accessibility, please also have a look at our article, what it is, and why it matters.

Dark mode

This mode has become standard for sites and applications, and in terms of accessibility, this is one of the necessary functions.


The devil's always in the details. The slightest movement leads to some result and application’s or website’s response. For example, I press a button - it shows the download. Awwwards has a great collection of games and websites with micro-interactions that kill boredom and improve the user experience.

Instead of a conclusion

Sasha Lopatyuk, art director of IDT Corp:

"It seems to me that trends are shaped by trendsetters, technology, and culture. And here, we must understand that when we say - "influence" we are talking about the influence of somethings on designers and not on society as a whole. So, the basic user may not be interested in the cyberpunk theme, but its abundance over the Internet can push a designer to create the Tesla Cybertruck."

Maxim Desiatykh, member of the board of directors of Redmadrobot:

"Product design is now at the peak of popularity and demand. Companies and individual entrepreneurs create or try to create new digital products and services. It is a mass effect, like startups in garages at one time. And all design trends will come from this market trend.

With a lot of this kind of work today, demand for the product designers exceeds supply. For a business, if a designer owns tools, this is already a sign of a person who can do something and is ready to work in a team. Business is more interested in creating something in general and less interested in some visualization tricks. All products and interfaces are focusing on the business and metrics now, rather than on the design trends. It is the distinctive feature of the product design."

Do you want to make a trendy website already? Don't be shy - contact us! If you are looking for a design job, then see vacancies here.

Dec 21 2020
Dec 21


Sending photos, videos, product recommendations, and website links to friends with social networking accounts are all firmly embedded in our lives. It is clear that progress cannot be stopped and social networks have become routine for us. Search systems pay more and more attention to them.

In our practice, it often happens that for a commercial project we create a custom module that becomes successful and popular. This was the case with Bibliography & Citation, and we hope it will be with Social Sharing - a new module from our back-end developer of the ADCI Solutions web studio.

Here’s what he says about his module: “Most of the modules for social sharing of web pages on drupal.org - are Drupal blocks that have these social media by default. You can not easily add any social service that you want to your site.

I developed a fundamentally different module for these purposes on one of the projects. Its name is Social Sharing - that's the best way to call it”. On behalf of our developer, we will tell the story of how the module was created.

Historical data

Тhere is a moment that has become critical for our client in the work of the well-known service for sharing web pages on the social network AddToAny.

The usual Twitter share URL looks like that:


And here is the sharing of the same page, but via AddToAny:


At first, we see that the request is going through AddToAny, then it is processed and only then shared on Twitter. The shared content is meant to be public by default, but the client didn't want the traffic to go elsewhere.

We needed something flexible and custom. I made an MVP of such a module for a client and rolled out a modified version of Social Sharing on drupal.org. About 20% of the module that I used on the project remained in Social Sharing - only one basic idea. What's changed is:

  • A custom plugin type was redesigned. This plugin is responsible for social media;
  • The custom field type that was used on the project, and its components (widget and formatter) were redesigned. Now the share URL is dynamic and can be changed for each node;
  • A new block type with social media services was created;
  • I added an extra field with its settings (for which entities will be used and which services are available);
  • The views-field was created;
  • The most relevant feature was developed - supporting of the tokens for sharing URL that allows content to be shared from any field of the node;
  • 25 new services were created for sharing: Blogger, Diaspora, Douban, Evernote, Flipboard, Getpocket, Gmail, Google Bookmarks, Hacker News, InstaPaper, LineMe, LiveJournal, OK.RU, Pinterest, QZone, Reddit, RenRen, Skype, Telegram, Tumblr, Vk, Weibo, WhatsApp, Xing, Yahoo. These services are available out of the box after installing the module.

Some details for you are below.

Why you should choose the Social Sharing module

  1. It's flexible. The module is based on the Drupal plugin system, on which the eighth version of the CMS was built. It means that any developer will be able to add their social network for sharing if it is not used in the current version.
  2. It provides stable functionality. Other modules don't do that - I investigated the ones I found. There was the only one that was made in the same way with the plugins, but it is not practical, and I could not get it to work well. The idea was similar but not completed.
  3. It has a dynamic sharing URL and token support. Many modules allow using sharing not as a block on the page but as a field in the content. You need to add this field to any type of content to do this. Our module can do the same, but with many more opportunities. You can set the very same information that the user wants to share for each page individually: not only the title of the page with the URL but any content from this page.

The setup and operation of the Social Sharing module

Now let's talk more about the configuration of various features.

Extrafield configuration

If you need the same sharing links with the same content for different entities on the site for sharing, then you can use Extrafield. There is a separate configuration page for it, where the user can configure:

  • types of entities for which this field will be available;
  • social networks that will be available;
  • content to be shared.
Oct 28 2020
Oct 28

It is difficult and interesting to observe how products of intellectual work exist after their creation. Is anyone reading the written book? Is somebody enjoying the painted picture? Are people listening to the new song? Let's assume that is true. But is anyone commenting on the book on the forums or citing it on Goodreads.com? Is the price of painting going up? Are hundreds of thousands making TikTok videos on the song? With such metrics, authors of the work can get an insight into how their works change people's lives and the world's fate.

The same thing goes for scientific publications. Some research results can prompt some scientists to an in-depth study of the issue or even force politicians to give an update on laws. How will scientists, institutes, and funders understand that the hours of research have been well spent? They need specific quantitative and qualitative indicators that lie outside the realm of personal oral discussion.

The approach to popularity assessment of scientific research has changed with the advent of the Internet into our life. All this and much more make the scientific article headway: a link in a Wikipedia article, a post on a social network, an entry on someone's blog, a comment on that blog. Therefore, there emerged a necessity to expand the range of tools for measuring this success. Altmetrics was designed for that purpose.

How is ADCI Solutions related to science and measuring such metrics? We have our Bibliography & Citation product, which solves the problems of exporting and importing bibliographic data on Drupal CMS websites for institutes, research centers, and libraries. In this article, we will talk about the historical development of statistical methods for analyzing scientific publications, and how you can control the growth in popularity of such publications through an altmetrics badge.

From bibliometrics to altmetrics

Where did that all begin - the idea that any information can be assessed by the vestige it leaves behind?

In 1926, the American mathematician Alfred Lotka described the power-law distribution of publication productivity of authors belonging to any field of research. The linguist George Zipf as well as Lotka developed an interest in statistics and discovered another pattern - the word frequency law in natural language in 1932. In 1934, another discovery was made by the British librarian Samuel Bradford, who described the first application of Bradford's law of distribution to identify core scientific journals. And finally, in 1936, the American sociologist Robert Merton graduated with his doctoral dissertation at Harvard on the topic "Science, Technology, and Society in 17th Century England", which was important for the development of the scientific discipline of informetrics. Discoveries listed above laid the foundation for this discipline in the 20th century. But the main researchers of this field found the roots of informetrics at the end of the 18th and the beginning of the 19th century.

Infometrics is the study of quantitative aspects of information. It takes a little bit from each of the disciplines. Let's look at what disciplines we are talking about.

Bibliometrics investigates the quality and impact of the work for scientists and institutes in the scientific world via indicators such as the Hirsch index, citation index, impact factor, and efficiency index. Scientometrics uses the same bibliometric indicators and explores the development of science. Webometrics looks into the quantitative aspects of the construction and use of information resources, structures, and technologies on the Web, and drawing on bibliometric and informetric approaches.

Altmetrics: the manifesto by Jason Priem

Altmetrics takes a little bit from each of the disciplines above. It evaluates the contribution of scientists and institutions to science, as well as bibliometrics, but uses alternative metrics relevant to the Internet environment for this.

The term came from a hashtag on Twitter. Тhe co-founder of Impactstory - Jason Priem, was the first to use it. He considers his overriding goal is to provide the maximum availability of scientific articles online. In October 2010, Priem and his colleagues released Altmetrics: a manifesto. It says that ways of assessing the impact of articles on research activities remain valuable in practice, but they are slow and outdated therefore they don’t fit the present. The impact factor and other metrics became insufficient.

The need for a new methodology was urged on by the fact that:

  • articles are discussed in blogs and social networks,
  • articles are not embodied in the paper form only anymore,
  • now, their digital copies can be stored and processed in reference management software such as Zotero and Mendeley.

And such activities give rise to new ways to measure the impact of scientific work - altmetrics.

Jason Priem writes: “Altmetrics are fast, using public APIs to gather data in days or weeks. They’re open – not just the data, but the scripts and algorithms that collect and interpret it. Altmetrics look beyond counting and emphasize semantic content like usernames, timestamps, and tags“.

How and whom does Altmetrics help?

The year after Jason Priem's manifesto came out, the Digital Science company released Altmetrics. Product developers have taken on the role of those who look for information about mentions of research works in various alternative sources, process this information, and give it to their clients: researchers, institutes, publishers, organizations, foundations, and other interested parties. The collected information is visualized in a colored badge, such as a donut in which every color corresponds to a specific source.

The service monitors the following sources for the mention, citation, and links from scientific articles: 

  • Public policy documents,
  • Mainstream media,
  • Blogs,
  • Citations,
  • Online reference managers (Mendeley, Zotero, etc.),
  • Post-publication peer-review platforms,
  • Research highlights,
  • Wikipedia,
  • Social Media,
  • Open Syllabus Project,
  • Patents,
  • Multimedia and other online platforms.

The benefits that scientists and organizations received from the Altmetrics service is confirmed to have benefited by numerous cases. For example, Altmetric data helps the Biodiversity Heritage Library to identify its most popular content to better tailor its posts and the content the Library shares to ensure maximum engagement. “Springer Nature”, a British-German academic publishing company, is keen to transform the way it offers services to authors and readers, and to make sure they maximize the value of the new technologies they bring in - as a result, they found the solution in Altmetric too. With Altmetrics, MIT Press got the opportunity to gather data that helped them identify their most popular articles. And these are just some examples.

There are some conditions for Altmetrics to track citations:

  1. this publication should exist at least;
  2. work is assigned an identifier such as DOI, ISBN, PubMedID, etc. You can find your type of identifier in the list of identifiers tracked by Altmetrics. Special services are involved in the assignment of identifiers;
  3. work was cited in one of the sources which Altmetrics works with.

If any of these conditions are not met, then the donut will show nothing.

Let's move on from theory to practice.

How to add an altmetrics badge to the website

The badge with Altmetrics will be displayed on the website if you connect the Altmetrics service to the JavaScript library page:

You also need to add an HTML markup to the page, which will be replaced later with a badge:

Pay attention that the HTML markup contains an attribute that includes the ID of the publication, which in our example is the DOI. Examples of using other identifiers, detailed instructions for pasting the badge are available on the Embeddable badges page.

The Altmetrics badges can be free to display on their academic websites for individual researchers. Institutional repositories are also permitted to display the Altmetrics badges for free. Altmetrics departments, academic websites, and subject repositories require a license. Please see this page for more information.

What is the Altmetrics module and how does it work?

The Altmetrics module is the part of the Bibliography & Citation (or BibCite) Drupal project, developed and supported by ADCI Solutions. BibCite helps to organize and save bibliographic data about the content ranging from web pages to books and scientific research works. The project also helps to design citation of sources according to thousands of standards that have been accepted at different times in different organizations.

The module solves a simple but important problem - adds a donut with its citation information to the page of a Drupal site with an article.

The module does not track anything and does not collect any statistics. It's just an easy way to insert the JavaScript code and the markup into your site.

How to set up an Altmetrics badge using the module

When you have one or two badges, it is not a problem to configure the markup yourself, and the instructions above will be useful. But when one bibliography contains hundreds of references imported from one place to another, then a dynamic component arises - this is an identifier (DOI, ISBN, PubMedID, or other) that needs to be inserted into the markup. In this sense, the Altmetric module makes life easier. It connects the JavaScript library of the Altmetrics service and itself configures the HTML markup for the donut. Without it, you would have to write code or use third-party modules such as Display Suite.

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