LN Webworks: Drupal E-commerce Development: All You Need to Know

Image removed.

Drupal Commerce is an ecommerce platform that has become the talk of the town. Ecommerce giants including Puma, Timex, and Lush rely on it to ensure top-notch operation of their online stores. Such immense popularity of this ecommerce software piques the curiosity of many. If you are also one of them, this blog will satiate your curiosity by exploring multiple facets of Drupal ecommerce development that make it unmatchable. So, are you ready to dive in?

First of all, let’s delve into what Drupal Commerce is.

Nuvole: New stable releases for config filter split and ignore

During Drupalcon we sprinted on config contrib modules

The last two weeks the dust settled after an energetic and productive Drupalcon. Now there is a new stable release for all of the three most popular contrib modules Nuvole maintains: Config Filter, Config Split and Config Ignore.

Config Filter

This is the most stable module, its new releases just switch over to Gitlab CI and fix a small inconsistency in how config storages are expected to behave. The first iteration introduced a bug which the second release fixed. Thank you to the early adopters who spotted the bug. Config Filter will remain supported but its relevance is probably going to decrease with the release of stable versions of the modules which used to depend on it but no longer do. For example Config Split 2.x and Config Ignore 3.x do not depend on Config FIlter and both now have a stable release. Modules are encouraged to switch to the Config Storage Transformation API added to Drupal 8.8. Both branches remain supported and recommended on drupal.org since most commits can be cherry picked between the branches. But for performance I would recommend the original 1.x branch. Both branches have exactly the same API, just the behaviour is different when importing or exporting. Other config modules can use either branch for the test traits which facilitate writing tests that pass before and after refactoring from Config Filters API to the core API.

If your site indirectly depends on Config Filter because you use a module which depends on it, you need to explicitly require Config Filter when you upgrade the modules. Drupal can not uninstall a module that is no longer in the codebase. So explicitly require Config Filter, uninstall it and then in a subsequent deployment remove Config Filter.

Config Split

Our oldest Drupal 8 config module has a new stable 2.0.0 release. In it, bugs and edge cases discovered in last year's release were fixed. It also contains a "new" feature which brings back the functionality of the 1.x branch. This should help sites holding back on upgrading because the functionality changed. With that out of the way the plan is to deprecate the 1.x branch and end support with the end of Drupal 10 support. There will not be any features added to 1.x.

Config Ignore

Previous releases of the 3.x branch have not been feature compatible with 2.x. But the stable 3.0 release has been re-written from previous 3.x beta versions. It is configurable so that most use cases can be catered for with enough creativity. One can configure the configuration to ignore for create, update and delete for both import and export. But one can also just keep it simple and then it will be as all the versions before. In particular, however, it can be configured easily to behave like: the last 2.x release, the last 2.x release with the popular patch to allow filtering on export and the previous 3.x release. Because of that the 2.x branch is deprecated as of now and it will be marked as unsupported by the end of the year on Drupal.org. There is a new hook replacing the one which existed in 2.x and which addresses the new capabilities (the old hook is still invoked and will be removed in 4.0.0). With the end of Drupal 9 being supported, PHP 8.1 is now the minimum required version, but 3.0 does not yet take advantage of the new PHP language features. So the plan for 4.0.0 is to switch the string constants to enums and switch to semantic versioning and remove the old hook.

How the pizza is made

Our Drupal 8 modules have always been maintained "like a php library". The development of UI Patterns was initially hosted on Github among other things for that reason. Config Split and Config Filter shipped with their docker compose files and scripts to symlink the module into the Drupal site. Later the custom scripts were replaced by drupal-spoons. Since the now generally available drupal-gitlab-ci is inspired by spoons and DDEV is likely becoming the recommended development environment for contributing to Drupal, I switched my local environment for maintaining the contrib modules to DDEV with the ddev-drupal-contrib plugin, the spiritual successor of drupal-spoons. For contributing to Drupal core I can only recommend the ddev-drupal-core-dev plugin created by justafish during Drupalcon. I helped beta test it and it works like a charm. That said my PhpStorm configuration had to be updated a bit even though I installed the ddev plugin for it. In particular I had to add a second server mapping for Xdebug to work as described in a comment on the issue. The release notes for the contrib modules were generated with drupal-mrn.dev.

Many thanks to everyone who contributed with feedback, code, ideas or even just listened to my ramblings as I discovered untested edge cases.

Tags: Drupal PlanetDrupalCon

The Drop Times: Luca Lusso: Perseverant in the Face of Failures and Bold in Experiments

In an exclusive interview with TDT, Luca Lusso recounts his evolution as a Drupal Developer, reminiscing his entry into Drupal 5 and PHP 5 in 2007. He candidly discusses his attempts at contributing to the Drupal community, emphasizing past project failures and notable successes that include WebProfiler and Monolog modules. Also, his latest book, "Modernizing Drupal 10 Theme Development."

Matt Glaman: PHPStan is now running for all Drupal modules on GitLab CI!

The Drupal Association has been working on a monumental effort to migrate away from our bespoke DrupalCI continuous integration system to GitLab CI as part of the GitLab Acceleration Initiative. Drupal core's test runs are five times faster using GitLab CI. I have loosely followed the progress as Drupal moves from our custom-built infrastructure onto GitLab. But someone shared with me a little feature I missed: adding a PHPStan job to the default GitLab CI templates!

Tag1 Consulting: Drupal Migrations: Getting Started

This first episode of the Drupal Migration series of Tag1 Team Talks focuses on the intricate process of migrating large-scale applications, especially with the end of life of Drupal 7 and 9 approaching. The hosts, Michael Meyers and Janez Urevc, are joined by a panel of additional experts, Benji Fisher, Lucas Hedding, Mauricio Dinarte, and Mike Ryan, who delve deep into the world of Drupal migrations. This discussion explores the terminology used in migrations and some best practice approaches to the process, aiming to equip you with the knowledge to navigate the upcoming talks on this topic. Overview The panel discusses the nuances of migration, touching upon the differences between terms like upgrade, update, and migration and how they apply in different contexts. They emphasize the complexity of migrating from older systems to newer ones, highlighting the substantial changes in code organization and database structure. The conversation also covers the critical task of porting code and themes, focusing on the challenges and strategies of migrating Drupal themes. The panel shares personal experiences, underscoring the importance of considering the specific circumstances of each project when deciding whether to retain or redesign a theme during migration. The discussion extends to data migration...

Read more michaelemeyers Tue, 11/07/2023 - 06:50

Specbee: User-Centric Design: Why Your Website Needs It

Here’s a pickle! So, in about a week, it’s my parents’ anniversary and my brother and I can’t decide between a smart TV or a chimney for the kitchen to gift them. But considering we already have one of each, although old-fashioned, it didn’t seem practical. That’s when it struck me - our parents are getting older, constantly manage household chores, and go to bed exhausted. How about gifting them a foot massager? They’ll love it! Now, the approach I took here is to focus on what my parents genuinely need. This approach mirrors today’s design philosophy. In this era of modern digital work, websites and applications must adhere to the needs and demands of their audience for better user engagement and customer retention. It’s when you put the user at the heart of your design process, and ensure their needs, preferences, and expectations, that’s when you’re moving in the right direction of delivering powerful digital services.  This approach is not just a buzzword, but a necessity for businesses and organizations looking to thrive in the competitive digital landscape. In this blog, we’ll talk about the what, why, and how of user-centric design for your website. We’ll further dig deeper into the principles involved and shed some light on the role of Drupal in fueling the booming scales of your UX/UI design.   What is User-Centered Web Design? User-centered web design is an integral part of user-centric design that focuses specifically on creating websites that prioritize user experience. When it comes to web design, the principles of user-centric design are essential for ensuring that the website is not just visually appealing, but also highly functional and intuitive for visitors. Principles of User-Centric Web Design User-centric web design follows several best practices and principles to create a design that resonates with users. Some of these principles include:1. User Interviews: Conducting user interviews to gather insights into their needs, preferences, and pain points gives you firsthand information which is invaluable for designing a website that caters to the user.2. User Research: With comprehensive user research, you can better understand the target audience, their behavior, and expectations. This knowledge informs design decisions.3. Usability Testing: Testing the website with actual users to identify any usability issues helps you in iterative improvements to enhance the user experience.4. Early Involvement of Users in the Design Process: Including users in the design process from the beginning ensures that their needs and desires are considered throughout the project, showcasing the inclusive nature of your workflow.5. Design Decisions Based on User Needs and Wants: Prioritizing features and functionalities based on what users need and want ensures that your website is not cluttered with unnecessary elements.6. Proper Feedback and Iterations: Continuously collecting feedback from your users and making iterative improvements based on their suggestions give invaluable responses for refining the design.7. Responsive Design: Ensuring that your website is responsive and displays well on various devices, including desktops, tablets, and mobile phones, is crucial. You should prioritize mobile optimization given the increasing use of smartphones.8. Accessible Design: Following web accessibility guidelines, such as WCAG (Web Content Accessibility Guidelines), to make the site accessible to all users, including those with disabilities, is a must. Why is User-Centered Design Necessary? Our UX design team strongly believes (in fact, demanded that I mention this point in big bold letters, and I agree) that the user is the heart of the design process. Let me be more specific. User-centered design is a philosophy that places the user front and center in the design process. Every decision made, every feature added, and every detail crafted is done with the user in mind. It's about understanding the user's perspective, needs, and goals and using this knowledge to create a product or service that truly resonates with them. When the user is the focal point, the result is a design that aligns perfectly with the user's expectations, leading to a positive and engaging experience. While I believe that answers the above question, here are a few more points to stress on the subject: Increases User Engagement and Revenue When users find that a product or service effectively addresses their needs and preferences, they are more likely to stay engaged and interact with it. Such engagement often leads to increased revenue for businesses. Satisfied users are more likely to become loyal customers, making purchases, and recommending the product or service to others. Solves Real Problems By involving users in the design process, you can address direct problems once you learn about the real challenges and pain points of your website users. This results in products and services that are not only effective but also highly relevant to the user's daily life. This approach leads to developing genuine features and functionalities. Competitive Advantage Amidst a bunch of businesses that are rapidly in a rush to meet the market demands, you can stand out by offering superior user experiences. Providing a user experience that truly resonates with your target audience puts you ahead of your competitors and attracts a loyal customer base. Long-Term Sustainability Consistently meeting user needs and adapting to evolving requirements results in your products and services remaining relevant and resilient in the market. When your design takes user feedback and changing preferences into account, it is more likely to stand the test of time, ensuring long-term success. What Are the Benefits of User-Centric Web Design? Well, user-centric web design is not only beneficial for users but also for website owners. Some of the key advantages are listed below: 1. Higher User Engagement: A user-centric website is more likely to keep visitors engaged, as it caters to their needs and preferences. Engaged users usually explore the website, consume content, and take desired actions. 2. Customer Retention: By meeting user expectations and delivering a satisfying experience, user-centric design promotes customer retention. Satisfied users are more inclined towards returning to your website, and becoming loyal customers. 3. Lower Bounce Rates: When users find what they’re looking for and have a positive experience, they are less likely to leave the website immediately, leading to lower bounce rates. 4. Brand Loyalty: When users consistently have a great experience on your website, you can expect them to associate your brand with quality and reliability. 5. Product Growth: It not only ensures a great initial experience but also drives iterative improvements based on user feedback. Such a continuous enhancement leads to the growth of the product or service over time. How to Create a User-Centric Web Design  Creating a user-centric web design involves a series of steps and considerations. Here's a breakdown of the process: Understanding Your Customers:  Conduct market research to gain insights into user behavior, preferences, and pain points.  User Research: Conduct in-depth user research, including user interviews, surveys, and analytics to gather valuable insights. Create User Personas: Develop user personas that represent your typical users. These personas help in visualizing the needs and preferences of your target audience. Create User Journey Mapping: Map out the user's journey through your website. Understand the steps they take, the information they seek, and their interactions with the site. Information Architecture: Plan the structure of your website, ensuring that content is organized logically and intuitively. User Flows: Create user flows that outline the paths users take to accomplish specific tasks on your website. This helps in identifying potential pain points and areas for improvement. Task Flows: Define task flows that guide users through common actions on your website. Conduct Usability Testing: Test your website with real users to identify any usability issues. Pay attention to how users interact with the site and gather feedback for improvement. Collect Feedback and Iterate: Continuously collect user feedback and make iterative improvements to the website. Ways Drupal Can Help in Creating a Powerful User-Centric Design Drupal is a powerful content management system that can be of invaluable help in achieving a user-centric web design. Here are some of the ways in which Drupal can help: Responsive Design: Drupal is well-equipped to build responsive websites that adapt seamlessly to various devices, including desktops, tablets, and mobile phones.  Content Management and Personalization: Drupal allows you to organize and present content in a user-friendly manner. Personalization features enable you to tailor content to individual user preferences, enhancing the overall user experience. Accessibility: Drupal's admin themes, ensure that content creators of all abilities can efficiently manage the platform. Including the Olivero frontend theme further enhances accessibility, offering a visually pleasing and inclusive design that caters to a wide range of users. Multi-Language Support: Drupal makes it easy to create and manage content in multiple languages, ensuring that your website is accessible to a diverse user base. Content Visualization: Drupal's capabilities for content visualization allow you to present information in engaging and visually appealing ways. This is essential for capturing and maintaining user attention. Improved Performance: Advanced caching mechanisms and technologies like BigPipe significantly improve website performance. Such features enable faster page loading times, delivering a seamless user experience, and prioritizing performance in your user-centric design. Final Words User-centric design is not just a trend, but a critical aspect of creating successful digital products and websites. By putting the user at the heart of the design process, you can enhance user engagement, solve real problems, gain a competitive advantage, and achieve long-term sustainability. Drupal, with its versatile features, can be a valuable ally in achieving a powerful user-centric design for your website. By following best practices and principles, you can create a user-centric web design that resonates with your audience, leading to higher user engagement and lasting brand loyalty. P.S.:- A special note of thanks to Kashish Tripathi for his time and invaluable input that made this blog happen. :)