CRS partnered with CommonPlaces to replace the old and outdated CRS.com website. The old site interfaced with a complex external member management system that had been built by CRS over several years to maintain a variety of member data. Functionality from the old site needed to be migrated to the new Drupal site, including member profiles, in addition to new features that would be built and which leveraged Drupal and its capabilities.
The Proven Path To Success.
CRS came to CommonPlaces to achieve the following goals.
- Replace the old and outdated CRS.com site
- Perform migration of other data as well as to implement an integration between Drupal and the external member management system that CRS wished to continue using
- Create a fully integrated product that could make it easier for their members to interact with. At the same time, this integration had to take into account the workflow and processes at CRS
Workflow and Scalable Drupal Integration
Initially, the greatest challenge was fully understanding the complexity of the CRS workflow and defining a method for integrating the existing user management system with Drupal. One of the unexpected advantages of the project was that it forced the client to re-examine its own processes and workflows, and this led to a number of ways in which together we were able to improve and streamline what they do. The result was a more efficient and lean way of operating not only the website but their business in general.
Membership Integration and Management
CommonPlaces worked with CRS to identify the data that needed to be exchanged between the two systems and architected custom API and interface modules. The API and interface modules include function calls and parameters that were defined as a result of this analysis. The API module standardizes calls made by the custom Drupal modules that were created by CommonPlaces to manage tasks shared by the two systems, such as membership, user profiles, and course registration. This ensures that if the interface changes at some point, the rest of the site does not need to change. All direct communications between Drupal and the external system are restricted to the interface module, which also handles logging to Drupal's watchdog/dblog and makes debugging easier.
Geolocation, Geospatial Search and Solr Integration
One of the key requirements was a “Find a CRS” tool for visitors to search and easily locate certified realtors within their area or a given area. This would enable consumers and members to drive business to the CRS membership.
The first challenge was generating geolocation data for each of the site’s 300,000 users, based on address. These users also needed to be imported into Drupal, as mentioned above. But the API calls to an external service to get geolocations were slow, and made the import process take much longer than expected. To speed things up we split the geolocation into a separate process that queued up addresses and made use of both that service's batching mechanism and the Drupal Batch API.
E-commerce is a major component of the project. The site makes possible the selling of products and membership plans as well as charges for renewal and reinstatement fees. The flexibility of Drupal Commerce proved to be invaluable. CommonPlaces was able to customize various aspects of Drupal Commerce in order to accommodate both the workflow of CRS’s financial department and also data coming from the integration with the external member management system.
Education and E-Learning
CRS wanted to make sure its members had resources to continue and enhance their learning experience. They also wanted to expand their member base by offering users the ability to gain a CRS Designation. To enable this it was essential to include online courses and e-learning processes and functionality—features that in turn made membership that much more attractive to the client’s target audience.
Through online courses, self-study courses, and webinars, users and members are able to gain in depth knowledge from a wide range of realty-related subjects. They are able to find and select courses based on format, availability, topic, credit type, duration, location, instructor, date, sponsor, and of course keyword search.