Skip to main content
Toronto roots. Digital possibilities.[email protected]
← All case studies

BuyNJHome / Case study

Two MLS feeds.
One property platform.

BuyNJHome brings New Jersey property listings into a Drupal website through CJMLS and GSMLS integrations, connecting structured listing data with search, city browsing, and agent enquiries.

  • Drupal
  • PHP
  • Bridge REST API
  • PHRETS / RETS
  • Drupal Views
  • Webform

The challenge

Different feeds. A consistent experience.

Property data arrives in different formats, with changing prices, statuses, descriptions, and photos. A useful property website needs to turn those records into consistent pages that visitors can search and understand.

The technical challenge was to integrate two MLS sources without mixing their records, map their fields into Drupal, and handle listing and image updates through a repeatable import workflow.

The integration

Two routes into Drupal

Separate source adapters feed Drupal queues, where listing records and managed images become content for the website.

01 / Source /

CJMLS

The Bridge REST listings API is read through Drupal’s HTTP client, using paginated requests to collect changed records.

02 / Source /

GSMLS

PHRETS connects to the RETS feed and queries its residential, rental, multifamily, land, commercial, and business resource classes.

03 / Processing /

Drupal queues & content

Queue workers map source data to property fields and managed images. Provider and listing IDs identify the correct record; failed work remains available for retry.

04 / Experience /

Search. Explore. Enquire.

Drupal Views and custom Twig templates present searchable listings, city collections, photo galleries, property details, and an agent contact form.

The visitor experience

From a broad search to a specific home

Structured property content supports several ways to explore the same inventory.

01

Search with useful filters

Visitors can narrow listings by location, property type, budget, bedrooms, bathrooms, and home style through a custom Views search interface.

02

Explore by community

City pages organize listings around New Jersey communities, with links between city collections and individual properties.

03

Understand the property

Property pages bring price, status, key facts, photos, descriptions, taxes, and fees into a responsive layout.

04

Contact the agent

A property enquiry Webform and direct phone links give visitors a next step from the listing page, including a mobile contact shortcut.

Behind the pages

Built around changing inventory

01 /

Incremental imports

Modification timestamps help avoid unnecessary reimports. Separate queues and provider-aware lookups keep CJMLS and GSMLS processing distinct, even when source identifiers overlap.

02 /

Managed listing photos

Images use Drupal’s managed files, validated downloads, and source-specific directories. Cleanup checks current and historical references before removing files; missing RETS photos do not have to block a listing.

03 /

Inventory-aware SEO

Custom indexing rules distinguish available inventory from completed listings, empty city collections, and filtered searches. Canonicals, metadata, structured data, and sitemap rules support clearer discovery.

What the project delivers

Connected data. Practical property discovery.

The implementation connects two MLS sources to a shared Drupal content model, with reusable listing views, managed galleries, city browsing, and property enquiries. It shows how custom integration code and Drupal’s content tools can work together in a real estate application.

Your next integration

Have data that needs a better home?

We can help assess your Drupal platform, source APIs, content model, and visitor journeys. Start with the systems you need to connect and the experience you want to create.