Drupal Development

PDF Generation in Drupal

It is nice when a user can click a button and generate a PDF. Over the last few months, I have added PDF generation to many projects. Examples of PDF generation include order invoices, sell sheets, webform submission results, and general node to PDF generation.  When tasked at generating PDFs, I have been applying the dompdf library. The dompdf library implements the most flexibility by using HTML and CSS to generate PDFs.  Therefore, giving the most flexibility for custom theming.  

Compromised Drupal 7 Website Recovery Review

I was brought on board to help recover a website that was possibly exploited by hackers, a Drupal 7 project.  What triggered the investigation?  My client was informed that their customers were receiving spam emails from the website.

After a thorough review of the project's code base and database. I found multiple exploits and backdoors.  All of the issues/exploits were within the Drupal core.  None of the contrib. or custom modules were exploited.  

Drupal 8 Commerce Promotions - Buy X or more of the same product and get % off that order item

Currently "Buy X and Get Y" discount is only related to the whole order and not at the order item level. 

I needed order item level discounts. e.g. buy 10 or more of the same product and get 10% off that order item. 

The new promotion will only discount at the order item level for order items with a quantity of 10 or more.

Drupal 8 Commerce - Setting a Default Currency on Product Variations

By default Drupal 8 commerce 2.x product variations do not have a default currency setting for multi-currency projects.  

Currently, there is a patch in the works to solve this issue.  The patch can be found in the commerce issue queue: https://www.drupal.org/project/commerce/issues/3016777

Thank you a.dmitriiev for creating a patch to solve this issue!

Drupal 8 Configuration Synchronization

Configuration Synchronization

Drupal 8 has a really great configuration synchronization system, and is great for syncing up different environments.  When creating new modules and adding new fuctionality I really enjoy working with Drupal 8's configuration synchronization tool.  Not only does this tool take the guesswork out of updates that need to be made on other environments.  The configuration synchronization also allows for all changes to be documented.