Project background
Wellington Women's House has been operating for more than 20 years, and they came to us when they needed a new website that better represented how they can lend assistance to women who need a safe place to stay, often at a difficult time in their lives. Their old Wordpress site was no longer fit-for-purpose. The new site needed to serve as the backbone of their fundraising efforts, and simplify the way in which women are referred. The website had to contain clear and easily discoverable content, include an eCommerce and Donations system, be easy for non-technical users to maintain, and to be integrated with both Salesforce and Xero.
Project scope
We started off with some discovery sessions, from which we developed a set of design concepts. Once we had the designs locked in, we constructed a Drupal 9 CMS with a range of functionality. Of course, some general content management requirements existed, which we met using Paragraphs to create a set of simple re-usable page components to ensure easy content management and consistent style-guide adherence.
eCommerce had to support the sales of Event and Raffle tickets for fundraising campaigns, along with a Donations system. Donations needed to be recurring, and allow for variable amounts. We used Commerce 2 and some associated modules, and added some customisations to suit. Because Donations needed to be recurring, it was necessary to support onsite payments and the storage of tokenised payment details, which was achieved by creating a new eWay payment gateway module for Drupal 9. Once eCommerce was up and running, we then integrated it with Xero, to allow for transactions to be posted to Xero via API. This required some customisations to allow for distinct GST-handling between Event/Raffle ticket sales and Donations.
Previously, Wellington Women's House had been receiving referrals to their service via a PDF form. Stage 1 of the requirement was to convert this to a web-friendly webform format with sensible conditional field options, and to map the webform fields to an established Salesforce instance. Stage 2 was to implement the actual integration to Salesforce via their REST API, pushing through several linked Object Records after the webform was submitted. We used the Salesforce Suite of modules for this, along with a few customisations to suit.
Key takeouts
There were a few subtleties to the Xero and Salesforce integrations that took some thought to work through. In Xero, we found handling conditionally pushing to different Accounts for GST-handling slightly problematic, but nothing that a minor custom module didn't address.
With the Salesforce integration, we found that the Salesforce Suite of modules worked really well, in general. The Salesforce Webform submodule conceptually works well, but having it sit outside of the core Webform Handler logic raised a set of complications. Nothing that couldn't be addressed with some thought, but logically, it would make far more sense to have the two architectures aligned. We've subsequently implemented this in another system with a custom module, which works great!