04 Feb 2026
Drupal.org aggregator
Centarro: Any Drupal Commerce Site Can Have a B2B Portal
Drupal Commerce lets you serve both retail customers and business buyers from a single installation. Same products. Shared checkout flow. Same user experience-just adapted to the relationship. Different users can see different prices, payment options, and catalogs.
You don't need a separate platform. You don't need a different domain. You don't need another way to manage content. Drupal Commerce already has the tools to support both B2C and B2B on the same website, using the same codebase, delivering a unified experience to all of your customers.
Even better, you can build a B2B portal in Drupal without any code. The capabilities are already there in existing features and modules.
On February 26th, I'll show you how to do it. We'll walk through building a B2B purchasing portal using Commerce Kickstart as a base. Sign up now.
04 Feb 2026 2:16pm GMT
Gbyte blog: Mail Composer: Sending multilingual HTML emails with Drupal
A new solution to Drupal's messy mailing approach
Drupal core's mail module has been a mess for a long time and has seemingly not kept up with the modernization of the rest of the stack. Using the hook system to send emails feels archaic; therefore, a while ago, we started developing a module that:
- Allows for defining emails in code via a clean and powerful (chaining) object-oriented interface
- Supports sending HTML emails without any fuss
- Optionally allows for defining (HTML) emails as Twig templates
- Allows for translating said emails by simply adding more Twig templates in different languages (multilingual capabilities)
- Integrates with Drupal's default framework for email manipulation, which handles the transporting and formatting of outgoing emails
- Can be used as the backend for bespoke UI-driven mailing solutions
We have been using and improving Mail Composer and would love for that work to be reused and further built upon.
Let's talk code
Just sending an inline email
... is as simple as:
/** @var \Drupal\mail_composer\Manager $manager */
$manager = \Drupal::service('mail_composer.manager');
$manager
->compose()
->setFrom('foobar@foo.bar')
->setTo('foo@bar.bar')
->setSubject('Test subject')
->setBody(['This is the body of the email.'])
->send();
Neat, isn't it?
04 Feb 2026 2:09pm GMT
1xINTERNET blog: An international upbringing that quietly set the stage for the future
A close look at Charles Andrew Revkin: how an international upbringing quietly shaped a digital leader at UICC and his impact on global cancer initiatives.
04 Feb 2026 12:00pm GMT