Tag: Property Portal Integration

  • Case Study 14: Custom Real Estate XML Feed Integration for International Property Portals

    Client Background

    A real estate agency based in Spain approached us with approximately 750 property listings stored in a multi-agency property database. The agency already had several XML feeds but needed a new custom XML feed for a German property portal with very specific technical and data requirements.

    The client wanted the feed to follow the receiving portal’s specification precisely rather than simply exporting the existing property data.

    The Challenge

    The main challenge was creating an XML feed that could:

    • Retrieve property information from the client’s external property database.
    • Transform the available property data into the required XML structure.
    • Follow the receiving portal’s exact XML specification.
    • Support the required API-based delivery process.
    • Work independently of the client’s main website.

    The client initially shared their website, but after reviewing the requirements, it became clear that the primary data source was Resales Online, rather than the agency’s WordPress or website content.

    This distinction was important because the XML feed did not need to be generated from the agency’s public website. Instead, the integration needed to work with the external property database and the receiving portal’s requirements.

    Understanding the Data Source

    The client’s properties were maintained through the Resales Online network. The project therefore required access to the relevant property database rather than relying on the agency website.

    After discussing the architecture with the client, we clarified that website access was not required. Instead, the integration would use the appropriate database/API access and a hosting environment capable of running the PHP-based conversion script.

    This helped simplify the implementation and avoided unnecessary changes to the client’s existing website.

    German Portal Requirements

    The receiving company provided technical specifications explaining that XML data had to be submitted through its REST API according to its own XML specification.

    The client supplied the technical documentation for the receiving platform, including information about its Import API and Import/Export API. The receiving company also indicated that use of the API was subject to its own service requirements and fees.

    This meant the project was more than simply producing an XML file. The feed had to be structured and prepared in a way compatible with the receiving portal’s technical requirements.

    API Access and Authentication

    During implementation, it became necessary to obtain the appropriate API credentials from the receiving platform.

    The client was guided through the API permission process and the relevant self-service area for generating API credentials. When necessary, the client also provided account access so that the integration work could proceed.

    Authentication was coordinated with the client because the platform required additional verification during login. The client provided the required verification code while the integration was being configured.

    Solution

    The solution involved creating a custom XML feed specifically around the client’s external property data source and the receiving portal’s requirements.

    The general workflow was:

    Property Database → Data Retrieval → Data Transformation → Custom XML Generation → Portal/API Delivery

    The approach avoided modifying the client’s main website and instead focused on the data integration layer.

    A separate PHP-capable hosting environment could be used to execute the conversion script, allowing the feed generation process to operate independently from the public-facing real estate website.

    Project Delivery

    The initial project was agreed including revisions and source code.

    The project required communication between three important components:

    1. The real estate agency
    2. The external property database
    3. The receiving property portal

    This made requirement clarification particularly important before development began.

    A Successful Follow-Up Project

    The relationship continued after the initial XML feed project.

    On March 17, 2025, the same client returned with another requirement: an XML feed for Idealista, a Spanish property portal.

    The client explained that Idealista required the feed developer to contact them directly to obtain the XML feed specification. The new feed was expected to be similar to the previous integration, but without the translation requirement used for the earlier project.

    A new custom offer was subsequently prepared to develop a feed specifically for Idealista.

    Key Lessons

    1. Identify the Real Data Source First

    A client’s public website is not necessarily the source of truth for a real estate feed.

    In this project, the agency website was initially shared, but the actual property data was maintained through an external property database. Identifying this early prevented unnecessary work on the website.

    2. Follow the Receiving Portal’s Specification

    International property portals often have their own XML structures, required fields, APIs and authentication procedures.

    A successful feed therefore needs to be designed around the destination portal’s specification, not simply around the source database.

    3. Separate Website Development From Feed Integration

    Because the client’s website was not required for this integration, the feed could be developed independently.

    This approach reduces the risk of interfering with an existing production website and makes the integration easier to maintain.

    4. API Credentials Are Part of the Integration

    XML feed development can involve more than XML formatting. When the destination platform requires REST API submission, authentication and API permissions also become part of the technical workflow.

    5. A Good Integration Can Lead to Repeat Business

    One of the strongest outcomes of this project was the client’s return for another XML feed shortly afterward.

    The second request for an Idealista feed demonstrated that successful completion of one portal integration can establish trust for additional international property-feed projects.

    Conclusion

    This project demonstrates how a custom real estate XML feed can connect an external property database with an international property portal without requiring changes to the agency’s main website.

    The key was understanding the actual data source, reviewing the destination portal’s technical requirements, obtaining the necessary API access, and building the feed around the receiving platform’s specification.

    The subsequent Idealista request from the same client further demonstrated the value of delivering a practical, portal-specific XML integration that can be extended to additional property platforms.

    Project Type: Custom Real Estate XML Feed
    Data Source: External Multi-Agency Property Database
    Integration: Custom XML + REST API
    Follow-Up: Idealista XML Feed Integration

  • Case Study 13: Building and Maintaining Custom Real Estate XML Feeds for a Multi-Website Property Business

    Client Overview

    The client operates multiple real estate websites and needed custom XML feeds to distribute property listings to different property networks and platforms.

    The initial requirement was relatively simple: create an XML feed compatible with the Houzez WordPress real estate plugin.

    What started as a single-feed project developed into a long-term technical collaboration involving multiple websites, property-feed formats, custom filtering rules, additional XML fields, feed troubleshooting, and performance improvements as the number of listings grew.

    The project began in May 2023 and continued through subsequent feed development and maintenance requests.

    The Challenge

    The client needed to connect WordPress-based real estate websites with external property networks using specific XML formats.

    The main challenges included:

    • Generating XML feeds from WordPress real estate data
    • Working with the Houzez and RealHomes property systems
    • Mapping WordPress property fields to external XML structures
    • Supporting different property types and values
    • Creating feeds for multiple property portals
    • Filtering properties based on backend options
    • Excluding sold or unwanted properties
    • Supporting additional XML fields as requirements evolved
    • Correctly handling property prices
    • Including property images and videos
    • Supporting different feed URLs using the same underlying data
    • Troubleshooting XML parsing and accessibility issues
    • Scaling the feed as the number of properties increased

    The client also wanted the solution to be reusable across multiple websites rather than creating a completely different system for every website.

    Phase 1: Houzez XML Feed Development

    The relationship started when the client contacted me looking for an XML feed for the Houzez plugin.

    The first requirement was to develop a WordPress plugin capable of generating a Nestopa XML feed from the staging website.

    The client specifically asked whether the plugin could subsequently be used on multiple websites using Houzez.

    I confirmed that the plugin could be developed to work with the Houzez environment.

    The initial feed was developed and tested, including adjustments to property-type mapping.

    For example, the client changed property values such as:

    • Condo
    • House
    • Land
    • Office
    • Shop
    • Warehouse
    • Hotel
    • Building
    • Villa

    A custom mapping was then added so that the website’s Villa property type could be mapped to the required House value in the destination feed.

    This established the foundation for the later feed work.

    Phase 2: Multiple XML Feeds for HuaHinJapan.com

    After the first successful implementation, the client asked whether the same system could be adapted for HuaHinJapan.com.

    The project expanded to multiple property-network feeds.

    The feeds included:

    • Proppit
    • Nestopa
    • Listanza

    A separate URL was also created for the Proppit feed so the same feed could be accessed using another filename for a different integration requirement.

    The completed feed URLs included separate Proppit, Nestopa and Listanza endpoints.

    This demonstrated an important advantage of the approach: one WordPress property database could feed multiple external platforms through different XML formats and endpoints.

    Handling Feed Accessibility Problems

    The XML itself was functioning correctly, but the client’s technical team later reported that the Nestopa feed could not be accessed from their server because the feed appeared to be blocking bots.

    Rather than assuming the XML structure was incorrect, the issue was investigated separately as an accessibility/security problem.

    An alternative feed location was provided for testing, and the client was advised to check whether an anti-spam plugin was interfering with external access.

    This distinction between feed-generation problems and server-access problems was important when troubleshooting the integration.

    Phase 3: Filtering Property Listings

    The requirements became more sophisticated as the client’s property portfolio grew.

    For the Nestopa feed, the client requested that properties marked as Sold should be excluded.

    The feed was subsequently updated specifically for this requirement.

    Later, the client requested a Proppit feed for another website that would include properties only when a specific backend Proppit option was selected.

    A custom WordPress plugin was developed to apply that condition when generating the XML feed.

    This transformed the feed from a simple “export everything” system into a rules-based property syndication feed.

    Phase 4: Images, Prices and Property Metadata

    One of the recurring challenges with real estate XML feeds is ensuring that all important property information is transferred correctly.

    The client received feedback that some listings were being published without images because the XML did not contain the required pictures information.

    The feed was updated to include the required picture data.

    A specific property was also identified as missing the required price information, which was investigated and corrected.

    Later, a pricing issue occurred because the original rent-price field had been removed from the website.

    The feed was adapted to use the site’s “Sale or Rent Price (Only digits)” field instead, restoring the correct price information in the XML.

    Phase 5: Adding the “DeBoost” Logic

    The client later introduced a more advanced requirement for Proppit.

    They wanted properties to be promoted by default, while allowing administrators to disable promotion for individual listings.

    The requested XML behavior was:

    • Default property → <is_boosted>TRUE</is_boosted>
    • Property marked for removal/deboost → <is_boosted>FALSE</is_boosted>

    The feed was updated to derive the value from the website’s backend option.

    The implementation was based on the WordPress field:

    inspiry_remove_proppit_boost

    The client subsequently confirmed that the implementation was working correctly.

    This was an example of converting a WordPress backend workflow into XML business logic.

    Phase 6: Expanding the Feed With Additional Fields

    As the client’s XML requirements evolved, additional property information was added.

    One example was the Project Name field, which needed to appear in the Nestopa XML under the project tag.

    Another requirement was adding the property floor number.

    The client specified that the floor field should be optional and only appear when the value was available. The implementation connected the WordPress custom field inspiry_floor_level to the XML floor tag.

    The completed implementation was subsequently connected to both Proppit feed versions.

    Phase 7: Supporting Larger Property Inventories

    The number of properties eventually increased significantly.

    At one stage, the client requested a separate version of the Proppit feed containing approximately 550 properties, rather than applying the existing Proppit2 filtering rule.

    A second version of the feed was created:

    proppit_xml_feed_v2.xml

    This allowed the client to maintain different feed purposes without disrupting the original feed.

    As the property database continued to grow, pagination eventually became necessary.

    In August 2025, the client reported a critical issue with the HuaHinJapan Nestopa feed. The solution involved introducing pagination because the number of properties had increased.

    The proposed architecture was to combine the paginated results into a final static XML file periodically, allowing the receiving system to continue downloading a single feed.

    This provided a practical way to handle a growing property inventory while preserving the existing integration model.

    Phase 8: Video and Multimedia Support

    The project also evolved beyond basic property information.

    The client later requested support for YouTube videos in the Proppit XML.

    The feed was updated with a dedicated videos structure so that video URLs could be included separately from other virtual-tour information.

    The videos tag was subsequently added to both Proppit feed versions.

    This was particularly important for property syndication because multimedia information can be lost if it is not explicitly mapped into the destination XML format.

    Ongoing Troubleshooting and Maintenance

    The project continued to require occasional maintenance after the original development.

    Examples included:

    XML parsing issue

    In May 2024, the client’s development team reported an XML parser error indicating that the receiving system was not recognizing the beginning of the XML document.

    The feed was checked, and the existing Proppit feed was confirmed to be functioning from the website side.

    Feed availability issue

    In October 2024, the HuaHinJapan Nestopa feed generated an XML parsing error:

    xmlParseEntityRef: no name

    The client requested a correction, and the feed was subsequently restored so that it could be reprocessed by the receiving system.

    Property removal issue

    In January 2025, the client reported that a property whose Proppit option had been removed was still appearing in the XML feed.

    The feed was investigated and subsequently updated.

    These requests demonstrate that XML feed development is not always a one-time task. Changes to WordPress fields, property workflows, external requirements and third-party importers can require ongoing feed maintenance.

    The Technical Approach

    The overall solution evolved around several core principles:

    WordPress Property Data → Custom Mapping Logic → XML Generation → Dedicated Feed URL → External Property Platform

    The implementation included:

    • Custom WordPress plugins
    • Property-field mapping
    • Conditional property filtering
    • Property-status filtering
    • Custom XML tags
    • Image mapping
    • Price mapping
    • Video mapping
    • Backend checkbox integration
    • Multiple feed endpoints
    • Separate feed versions
    • XML troubleshooting
    • Pagination for larger inventories
    • Static feed generation for external consumption

    Rather than forcing every external platform to consume the same generic feed, individual XML structures could be adapted to the requirements of the receiving platform.

    Results

    The project grew from a single XML feed requirement into a long-running feed-development relationship covering multiple websites and property networks.

    Key outcomes documented in the project include:

    • Custom XML feed developed for a Houzez-based website
    • Reusable approach for multiple WordPress property websites
    • Proppit XML feeds
    • Nestopa XML feeds
    • Listanza XML feed
    • Multiple feed URLs for different integration requirements
    • Property-type mapping
    • Sold-property filtering
    • Proppit checkbox filtering
    • Approximately 550-property feed version
    • Image support
    • Price corrections
    • Project-name mapping
    • Floor-number mapping
    • is_boosted / DeBoost logic
    • YouTube video support
    • XML troubleshooting and maintenance
    • Pagination strategy for increasing property inventories

    Most importantly, the client repeatedly returned with new websites and new feed requirements. The conversation records show requests in 2023, 2024 and 2025, including a new Nestopa feed for Star Property and later work on the growing HuaHinJapan feed.

    Client Feedback

    The client repeatedly expressed satisfaction with the work.

    Examples include:

    “You are the best!”

    and later:

    “Ranjit, excellent work! Very happy again.”

    The client also described the XML work as “amazing” when referring to the Proppit implementation.
    These comments are particularly meaningful because they came after the initial project had evolved into ongoing technical support and increasingly complex feed requirements.

    Key Takeaways

    This project demonstrates that a real estate XML feed is more than simply converting WordPress posts into XML.

    A production property feed may need to handle:

    Data Mapping
    Different property platforms require different field names, structures and accepted values.

    Business Rules
    Only selected properties may need to be exported, while sold or deboosted properties may need different treatment.

    Multimedia
    Images, floor plans, virtual tours and YouTube videos may require dedicated XML structures.

    Data Accuracy
    Property prices and custom fields must remain synchronized with the WordPress backend.

    Scalability
    A feed that works with a small number of properties may require pagination or other optimization as the inventory grows.

    Third-Party Compatibility
    External platforms may introduce parser, accessibility or validation requirements that need investigation separately from the WordPress implementation.

    Conclusion

    What began as a small XML-feed project became a long-term technical collaboration involving multiple real estate websites, multiple property portals and numerous custom feed requirements.

    The project is a good example of how a well-designed WordPress XML feed can evolve alongside a real estate business—from a basic property export to a flexible syndication system capable of handling filtering, custom fields, multimedia, business rules and larger property inventories.

    Need a custom XML feed for your WordPress real estate website?

    I can develop custom XML, RSS or JSON feeds based on your WordPress fields, real estate plugin, API documentation and destination portal requirements.

  • Case Study 10: Building and Maintaining a Multi-Portal Real Estate Feed System for WordPress

    From One Custom XML Feed to a Multi-Portal Property Distribution System

    Real estate websites often need to distribute property listings to multiple portals, marketplaces, advertising platforms, and property aggregators. The challenge is that each platform can require a completely different XML, JSON, or CSV structure, while the source website may use a WordPress theme such as Houzez with custom fields, taxonomies, multilingual data, and different measurement formats.

    This case study describes a long-term project for a real estate website using WordPress, Houzez, WP All Import, and WP All Export.

    The project began with a relatively small requirement: fixing several fields in an existing WP All Export template for a property portal. Over time, the requirement expanded into a collection of custom feeds and ongoing feed maintenance.

    The initial client requirement included generating property feeds for external portals while continuing to use the existing WP All Export setup where possible. The client specifically needed help with image URLs, furniture/status values, and conversion of Thai land measurements such as square wah and rai into square metres.


    The Initial Challenge

    The client’s WordPress website contained property data in different formats.

    Some of the major challenges included:

    • Multiple property images needed to be output as individual URL elements.
    • Values such as “Furnished” needed to be cleaned before being sent to the destination portal.
    • Status values required transformation.
    • Land measurements could be stored as square wah, rai, or combined formats such as Rai-Ngan-Wah.
    • Property types needed to be mapped from WordPress parent/child categories into the destination portal’s terminology.
    • Virtual-tour information needed to be converted into the format required by the portal.
    • Different portals required different XML structures.

    The first approach was to see whether the existing WP All Export template could be modified rather than immediately replacing it with a custom plugin. A custom plugin was kept as the fallback option if the existing export system could not handle the requirements.

    This approach helped avoid unnecessary redevelopment and allowed the existing WordPress workflow to remain part of the solution.


    Phase 1: Proppit XML Feed

    The first major deliverable was a custom XML feed for Proppit.

    The feed was initially developed around the client’s existing property data and then refined based on real output and feedback.

    One important requirement was converting land measurements and removing decimal values from both land area and floor area. The feed was subsequently updated to round floorArea and plotArea.

    Complex Property Data Mapping

    The project involved more than simply copying WordPress fields into XML tags.

    For example, property types had to be interpreted according to the destination portal’s requirements. Later revisions included distinguishing between residential and commercial property types and mapping categories such as:

    • House
    • Condo
    • Townhouse
    • Shophouse
    • Office
    • Hotel
    • Factory
    • Retail space

    The client provided examples where a property could have multiple WordPress categories, requiring custom logic to determine which category should become the primary destination value.

    This illustrates an important aspect of custom feed development: source taxonomy and destination taxonomy rarely match one-to-one.


    Diagnosing WP All Export

    An interesting technical problem appeared when the WP All Export template worked in Preview mode but failed during the actual export.

    Testing showed that individual properties could be exported successfully and that reducing the number of XML tags allowed all 88 properties to process. The investigation indicated that the problem was likely related to the number of database queries and server resource limitations during the larger export.

    The recommendation was to investigate hosting limits such as maximum execution time and memory rather than incorrectly blaming the property data or custom functions.

    Meanwhile, the custom feed continued to provide a working alternative.

    This was an important distinction:

    A feed can be logically correct while the export mechanism used to generate it is still limited by server resources.


    Virtual Tour and Feed Formatting Fixes

    The Proppit feed later required the virtual-tour field to contain a direct link rather than embed code.

    The feed was updated accordingly.

    A further issue appeared where one property was receiving an incorrect virtual-tour base URL because different properties could use different virtual-tour providers.

    The feed logic was adjusted so that the property-specific virtual-tour URL could be handled correctly rather than applying one universal URL to every listing. The client confirmed that the corrected virtual-tour link was displaying properly.


    Expanding Into Multiple Feeds

    After the initial Proppit implementation, the project expanded significantly.

    The client requested additional feeds for other real estate platforms and advertising systems, including:

    • Thailand Housing Market
    • Baan Finder
    • Living Insider
    • Facebook Commerce Manager
    • Google-related feeds
    • Google Ads real estate CSV
    • Green-Acres
    • Nestopa
    • Propertyhub JSON
    • XML2U / Properstar-related distribution

    The client also maintained a Google Sheet to track the different feeds and requirements.

    This changed the nature of the work from a one-off XML customization into an ongoing multi-feed property distribution system.


    Google Feed and Local Inventory

    The Google feed required additional destination-specific fields and formatting.

    Updates included:

    • Resolving line-break formatting.
    • Removing an unwanted price prefix.
    • Adding store_code.
    • Adding quantity.
    • Creating a separate feed for local inventory because the destination required a different filename.

    The primary Google feed and Proppit feed were updated accordingly.

    A separate local inventory feed was subsequently created:

    google_local_inventory_xml_feed.xml

    The feed was also repaired after a PHP version change caused the XML feeds to stop working. The client had moved the hosting environment to PHP 8.2.4, and the feed plugins were upgraded to work with the newer environment.

    This demonstrated another recurring challenge with WordPress feed systems: hosting and PHP environment changes can affect custom feed code even when the property data itself has not changed.


    Facebook Commerce Manager Feed

    The project also expanded into a Facebook Commerce Manager XML feed.

    The feed required destination-specific handling for fields such as:

    • Property type
    • Pet policy
    • Area size
    • Neighborhood
    • Address information
    • Page ID
    • Security deposit
    • Utilities
    • Video

    The feed was revised several times based on Facebook’s validation feedback. Eventually, the video field was removed because the destination required a direct downloadable video URL rather than a normal video-hosting page URL.

    This is another example of why feed development is not simply an XML-generation exercise. The destination platform’s validation rules must be incorporated into the transformation logic.


    Baan Finder and Living Insider

    The next stage involved creating feeds for Baan Finder and Living Insider.

    Baan Finder required more complex property-type mapping.

    For example, a property categorized as commercial on the WordPress website could still need to be mapped to SHOPHOUSE, HOTEL, FACTORY, OFFICE, or another destination-specific type depending on information contained in the title or description.

    Living Insider introduced another layer of complexity around land measurements.

    Different fields were required depending on property type, including:

    • Square metres
    • Square wah
    • Rai
    • Ngan
    • Wah
    • Separate land-area components
    • Thai and English titles/descriptions
    • Condo-specific values
    • Multiple image URLs

    The client specifically identified cases where a value such as 174 square wah needed to be separated into the appropriate Rai/Ngan/Wah fields rather than simply placing the entire number into one field.


    Green-Acres Integration

    In 2025, another feed was added for Green-Acres.

    The feed was developed as a dedicated XML integration and subsequently updated with destination-specific fields including:

    • English title
    • Province
    • Sub-district/district
    • Property ID
    • Favorite status
    • Included fees
    • Agency rate type

    After submission, the destination platform reported a video URL problem. The video URL issue was diagnosed and corrected, after which the feed was reported as working.


    Long-Term Feed Maintenance

    One of the most interesting aspects of this project is that the work did not end after the initial feed development.

    As the website, destination platforms, hosting environment, and property data changed, new requirements continued to appear.

    Examples included:

    • New destination validation rules.
    • Changes to property classifications.
    • New PHP versions.
    • Different language requirements.
    • Changes to virtual-tour providers.
    • New property filtering requirements.
    • Feed performance concerns.
    • Listing limits imposed by external platforms.
    • Changes in external APIs.
    • New image-handling requirements.

    For example, in 2025 the client became concerned about the number of listings being refreshed on Properstar. A strategy was discussed to change only a limited number of property IDs per day instead of changing all IDs simultaneously. The proposed approach was approximately 15 listings per day for a 500-listing cycle.

    Later, Nestopa introduced a limit on the number of listings displayed under its free plan, leading to another requirement to prioritize particular property listings and control how frequently listing IDs changed.

    This shows how a feed system can evolve into a business-rule engine, rather than remaining a static XML generator.


    Feed Filtering and Automation

    As the number of feeds increased, the client wanted greater control over which properties were included.

    The proposed feed-management logic included filtering by:

    1. Property ID prefixes.
    2. Minimum sale price.
    3. Minimum rental price.
    4. Custom fields.
    5. Specific properties to include.
    6. Specific properties to exclude.
    7. Property status.
    8. Other feed-specific conditions.

    For example, a custom field such as fave_luxury = Yes could be used to select properties for a particular luxury-property feed.

    This approach provided much greater flexibility than hard-coding a completely different selection rule into every feed.


    Performance Became a Separate Challenge

    As the number of properties and feeds increased, feed-generation performance became an important concern.

    The client reported that some XML URLs could take several seconds to load and, in some cases, make the browser appear unresponsive.

    The website developer subsequently implemented Redis caching for the feed outputs. According to the project discussion, the site was generating approximately 15 XML/JSON feed outputs from more than 800 properties and many custom fields. The caching layer was intended to make repeated feed requests significantly faster and automatically refresh the cache after imports.

    The project therefore evolved beyond field mapping into considerations involving:

    • Database queries
    • Feed generation performance
    • Caching
    • Import/export workflows
    • Background processing
    • Feed refresh cycles

    Handling Large Feeds

    Another scalability issue emerged when Living Insider imposed a limit of 1,000 records per XML or CSV file.

    Instead of allowing the feed to grow indefinitely, the proposed solution was to introduce pagination so the listings could be divided into multiple parts.

    This is a useful example of designing around an external platform’s technical limitations rather than trying to force the destination to accept an oversized feed.


    Land Measurement Standardization

    The project eventually exposed a larger architectural issue: property data from different agencies did not use a consistent land-measurement format.

    Some providers supplied:

    • Square wah
    • Square metres
    • Rai
    • Rai + square wah
    • Rai + Ngan + square wah

    The client wanted to establish a consistent base measurement that could then be converted into other units.

    The requirement included creating import-side PHP logic so that incoming data could be normalized before it was used by the different feeds. The client specifically identified mixed-data providers such as Perfect Homes and Isara Real Estate as requiring special handling.

    This was an important shift from feed-level conversion to data normalization at the source/import level.

    Once data is normalized properly, multiple feeds can use the same underlying property values instead of implementing independent conversion logic repeatedly.


    Extending the System Beyond XML

    The project also expanded beyond traditional XML feeds.

    The client wanted to generate CSV data for a video-generation platform called CreateOMate, with the eventual goal of connecting the data to automation tools for social media publishing.

    The CSV needed to contain:

    • Individual photo URLs in separate columns.
    • A specific location structure.
    • Child property categories rather than parent/child category strings.
    • Conditional price formatting.
    • Potential HTML cleanup.

    The existing WP All Export template was modified using PHP functions to support these requirements.

    This demonstrated that the same WordPress property database could serve many different downstream purposes:

    Website → XML feeds → JSON feeds → CSV exports → advertising → social-media content


    What Made This Project Challenging?

    The biggest challenge was not creating XML syntax.

    The real difficulty was translating one complex real estate database into multiple destination-specific data models.

    The same property could require different:

    • Property types
    • Measurement units
    • Language values
    • Address structures
    • Image formats
    • Video formats
    • Status values
    • Price formats
    • Filtering rules
    • Required fields
    • Optional fields

    A field that worked correctly for one destination could be wrong for another.

    For example, HTML formatting could be useful in one feed but unacceptable in another. Similarly, a universal property-type rule could create incorrect classifications when a property had multiple categories.

    The project therefore required continuous validation against the actual destination requirements.


    Results

    The project evolved from a single custom XML-feed requirement into a long-term feed-development and maintenance relationship.

    The conversation records show work involving multiple destination feeds and formats, including Proppit, Google, Facebook, Thailand Housing Market, Baan Finder, Living Insider, Green-Acres, Nestopa, Propertyhub, and XML2U/Properstar-related integrations.

    The client repeatedly returned with additional feed requirements and described the collaboration positively. At one point, after multiple feed updates, the client stated that it was “great to have been able to make this contact” and asked to continue with additional feeds.

    The relationship subsequently continued into later years with additional feed modifications, filtering, performance, listing-refresh, and data-normalization requirements.


    Key Lessons From the Project

    1. Start With the Existing System

    The initial goal was not to replace WP All Export unnecessarily. The existing workflow was investigated first.

    This can reduce development time and preserve the client’s familiar workflow.

    2. Normalize Data Where Possible

    Repeated conversion logic across individual feeds can become difficult to maintain.

    Standardizing data during import can make downstream feeds significantly easier to manage.

    3. Every Portal Has Different Rules

    There is no universal “real estate XML feed.”

    Each destination may have different requirements for:

    • Categories
    • Measurements
    • Images
    • Descriptions
    • Languages
    • Videos
    • Pricing
    • IDs
    • Filtering

    4. Feed Development Requires Real-World Testing

    A feed can be valid XML and still be rejected by the destination.

    The project repeatedly required testing against actual portal feedback and adjusting the mapping accordingly.

    5. Scaling Changes the Architecture

    As the number of properties and feeds grows, performance becomes important.

    Caching, filtering, pagination, and controlled refresh cycles may become just as important as the XML mapping itself.

    6. Feed Maintenance Is Often More Valuable Than One-Time Development

    External platforms change their requirements.

    Websites change their data structure.

    Hosting environments change.

    New property sources are added.

    New portals are introduced.

    A feed that worked perfectly when created may require maintenance months or years later.


    Conclusion

    This project is a good example of how a seemingly small WordPress XML-feed request can evolve into a much broader data-integration system.

    What started as a request to fix several fields in a WP All Export template eventually involved custom XML, JSON, and CSV feeds; complex property-type mapping; Thai land-measurement conversion; multilingual data; virtual tours; image handling; filtering; pagination; caching; PHP compatibility; external-platform validation; and long-term maintenance.

    The central lesson is simple:

    A successful real estate feed is not just an XML document. It is a data-transformation layer between the property’s source database and the unique requirements of every destination platform.

    When that transformation layer is designed carefully, the same WordPress property database can support many different portals and marketing channels without requiring the property data to be manually recreated for every platform.

  • Case Study 3: Real Estate Feed Development

    WordPress Custom Fields → XML/JSON Mapping → Portal-Ready Property Feeds

    The Challenge

    A real estate business operating in Thailand needed to distribute property listings from its WordPress website to multiple property portals.

    The website contained a large and continually changing inventory of properties for sale and rent. The challenge was not simply to generate an XML file. Each destination portal had its own feed structure, required fields, validation rules, filters, and data expectations.

    The project initially involved creating a feed for Nestopa, followed by additional feeds for Proppit and PropertyHub.

    The requirements evolved as the portal integrations were tested in real-world conditions, making reliable field mapping and data handling particularly important.


    The Starting Point

    The first requirement was relatively straightforward: generate a Nestopa XML feed from the property’s WordPress website.

    A custom WordPress plugin was developed to transform property data into the XML structure required by the portal.

    The initial implementation was delivered as a dedicated feed plugin, with the source code included and the feed made available through a public XML endpoint.

    The project then expanded.

    The client required another feed for Proppit, initially restricted to sale properties, with additional contact fields including:

    • Phone
    • WhatsApp
    • LINE
    • Facebook

    The Proppit feed was generated directly from the WordPress property data and made available through a public XML endpoint.


    From Simple XML Generation to Data Transformation

    As more portals were introduced, it became clear that each integration needed its own mapping logic.

    The WordPress website contained the source property information, while the portals expected their own specific structures.

    The basic architecture therefore became:

    WordPress property data

    ↓

    Custom field extraction

    ↓

    Data filtering and transformation

    ↓

    Portal-specific field mapping

    ↓

    XML/JSON generation

    ↓

    Portal validation and import

    This approach allowed the same WordPress property database to support multiple destinations without requiring the website’s core property structure to be redesigned for every portal.


    Handling Property Filters

    One important requirement was controlling exactly which properties should appear in a feed.

    For example, the Proppit feed needed to distinguish between properties for sale and properties for rent.

    At one stage, the client had approximately:

    • 620 properties for sale
    • 115 properties for rent

    The requirement was to include the sale properties while excluding rentals from that particular feed. The feed was checked against the website’s property counts to confirm that the expected listings were being exported.

    Later, the requirements became more sophisticated.

    The client requested a feed containing both sale and rental properties, with rental properties filtered according to a minimum value of 25,000 THB.

    A separate requirement also specified that, when the website contained more than 1,000 properties, the feed should continuously select the 1,000 newest properties rather than attempting to export the entire database.

    This illustrates an important part of real estate feed development:

    A portal feed is not necessarily a copy of the website. It is a controlled data export based on the destination’s business rules.


    Mapping WordPress Data to Portal Fields

    Real estate websites often store information in custom fields rather than standard WordPress post fields.

    The feed therefore needed to identify the appropriate property fields and transform them into the format expected by each portal.

    The work included mapping information such as:

    • Property reference
    • Property type
    • Sale/rental status
    • Price
    • Property details
    • Land size
    • Contact information
    • Project information
    • Project ID
    • Images
    • Other portal-specific attributes

    This field-by-field mapping is where much of the practical complexity of a real estate feed lies.

    A feed can be technically valid XML or JSON and still be rejected by a portal if a value does not conform to the portal’s expected format.


    Solving Portal-Specific Validation Errors

    The Proppit integration demonstrated this clearly.

    After the feed was delivered, the portal reported an error involving an Amenity value that did not match its required format. The feed was rechecked and updated, and a cache-busting query parameter was used when necessary so that the latest feed version could be retrieved instead of an older cached response.

    This type of troubleshooting is an important part of production feed development.

    The process was not simply:

    Generate XML → Done

    Instead, it became:

    Generate → Validate → Submit → Review portal errors → Correct mapping → Re-test → Confirm


    PropertyHub: A More Complex Integration

    The PropertyHub integration introduced a substantially different requirement.

    The portal supplied a JSON feed schema and documentation, along with a spreadsheet containing project information.

    The feed needed to provide project information in addition to the normal property data.

    The challenge was that projects were not properties.

    The client’s WordPress website already contained a property management workflow, while the PropertyHub integration required project names and project IDs to be associated with properties for export.

    This created a data-mapping problem between:

    Property → Project Name → Project ID → PropertyHub Feed


    Building Project Mapping

    The project list was provided separately from the property data.

    The solution was to map the project information so that the feed could retrieve the appropriate project name and corresponding project ID when generating the PropertyHub JSON feed.

    The client eventually configured project information in the backend as a selectable value associated with properties.

    The feed could then use that information when constructing the outgoing PropertyHub data.

    The requirement was particularly important because PropertyHub expected both the project name and numerical project ID, while Proppit did not require the same project information.

    This meant the same WordPress property data had to support two different portal requirements without unnecessarily exposing project information elsewhere on the website.


    Avoiding Changes to the Front-End Property Structure

    One of the lessons from this stage was that supporting an external portal should not accidentally alter how the website works for visitors.

    An initial project-list mapping approach caused project records to appear in an inappropriate location on the website. The client reported that thousands of project records had appeared and had to be removed.

    The requirement was clarified:

    Projects were reference data for the feed and backend workflow, not additional front-end property listings.

    The project mapping was subsequently handled in a way that allowed the property information and project information to remain separate while still providing the required values to the outgoing feed.

    This became an important architectural consideration:

    External feed requirements should be integrated into WordPress without disrupting the site’s existing content model or front-end experience.


    Handling Project Names and IDs

    Another challenge was that some project names already contained numbers.

    For example, a project might contain a number as part of its actual name, while PropertyHub required a separate numerical project ID.

    This created ambiguity when attempting to derive the ID from the project-name field.

    The project therefore required a consistent naming and parsing strategy.

    The client and developer tested different formats and discussed using a delimiter such as:

    Project Name – 9999

    rather than:

    Project Name 9999

    The final approach focused on making the feed parser resilient to spaces and formatting variations rather than requiring a large manual change to the website’s existing data.

    This is a good example of why real estate integrations often require more than straightforward XML templating.


    Debugging Data That Looks Correct

    One of the most challenging stages occurred after the PropertyHub feed was technically working.

    Some properties containing project names and IDs were successfully accepted, while others were not.

    The client provided examples where the backend data appeared correct, but the corresponding information was not being accepted by the portal.

    At one point, only 1,064 properties had been delivered successfully, despite substantially more properties being available.

    The investigation therefore moved beyond XML/JSON syntax.

    The feed itself could be valid while individual property records still contained values that the destination system could not process.

    The debugging process involved examining:

    • Project names
    • Project IDs
    • Missing IDs
    • Formatting
    • Spaces
    • Line breaks
    • Hidden characters
    • Property-level data
    • Portal validation results

    This distinction is critical when developing automated feeds:

    Feed validity and data validity are two different things.


    Working With Portal Validation Reports

    The PropertyHub integration included validation reports supplied by the portal.

    These reports made it possible to identify which property records were failing and investigate the underlying values.

    For example, one reported issue involved properties whose project name existed but whose project ID was missing.

    The solution was to ensure that the required project ID information was available in the property’s backend data before it was exported.

    This created a repeatable troubleshooting cycle:

    1. Generate the feed.
    2. Submit it to the portal.
    3. Review rejected records.
    4. Identify the problematic WordPress data.
    5. Improve the mapping or parsing logic.
    6. Correct source data where necessary.
    7. Generate the feed again.
    8. Re-submit and verify.

    Keeping Multiple Portals in Sync

    The project eventually involved several different destination formats:

    Nestopa

    A custom XML structure for the portal’s property requirements.

    Proppit

    A separate XML structure with contact information and property filtering.

    PropertyHub

    A JSON-based feed requiring project names and project IDs.

    Each destination had different rules.

    The WordPress website remained the central source of property information, while the feed layer transformed that information for each portal.

    This provided a much more scalable model than manually preparing separate property files for every destination.


    Ongoing Maintenance

    The project also demonstrated that feed development does not necessarily end when the first feed is generated.

    The client later requested relatively small operational changes, such as changing the contact email address used in the Proppit feed.

    Other requests involved:

    • Changing domains
    • Creating feeds for new domains using the same property data
    • Adjusting sale/rental filters
    • Updating contact information
    • Investigating missing properties
    • Fixing portal validation errors
    • Updating project mappings
    • Rechecking feed output after website changes

    For example, when the property website moved to a new domain while using the same underlying property inventory, the feed needed to be adapted to the new domain rather than treated as an entirely unrelated property database.


    The Result

    The project evolved from a basic WordPress XML feed into a multi-portal property data integration system.

    The final workflow allowed the real estate website to act as the central source while generating portal-specific output according to each destination’s requirements.

    Key capabilities included:

    • WordPress property data extraction
    • Custom field mapping
    • XML feed generation
    • JSON feed generation
    • Sale/rental filtering
    • Minimum-price filtering
    • Latest-property selection
    • Contact-field mapping
    • Project-name mapping
    • Project-ID mapping
    • Portal-specific formatting
    • Validation-error troubleshooting
    • Property-level data debugging
    • Domain/feed updates
    • Ongoing feed maintenance

    Key Takeaway

    Real estate feed development is more than generating an XML or JSON document.

    The real challenge is creating a reliable bridge between a WordPress property database and the specific data model expected by each external portal.

    In this project, the feed layer had to deal with changing requirements, multiple destinations, custom fields, project relationships, filtering rules, validation errors, and inconsistent source data.

    The result was a practical, portal-ready integration that could transform the website’s property information into the formats required by different property platforms.

    WordPress remains the source of truth.
    The feed handles the transformation.
    Each portal receives the structure and data it expects.

    That is the core principle behind a reliable custom real estate feed.

  • Case Study 2: Real Estate Feed Development

    WordPress Custom Fields → XML Mapping → Portal-Ready Feed

    Real estate agencies often manage their property listings in WordPress, but their data needs to be distributed across multiple property portals, each with its own XML structure, field names, location formats, and validation requirements.

    In this project, the goal was to automate that process for two real estate websites and distribute their property portfolios to multiple international property platforms.

    The Challenge

    The client operated two real estate websites:

    • sothebysrealty.me
    • nekretnina.me

    They wanted to automatically export their property portfolio to platforms including:

    • Realting
    • Homes Overseas
    • Tranio
    • A Place in the Sun
    • Prian.ru
    • Realitica
    • Green Acres
    • JamesEdition

    Instead of manually entering or maintaining listings on each portal, the requirement was to create WordPress-based XML feeds that could automatically transform the existing property data into the format expected by each destination platform.

    The initial requirement was relatively straightforward: generate XML feeds from WordPress.

    However, the project quickly demonstrated that real estate feed integration is more than simply converting WordPress posts into XML.

    Different portals required different:

    • Field names
    • XML structures
    • Property types
    • Location values
    • Languages
    • Feature/amenity mappings
    • Publication rules
    • Data formats
    • Business rules

    The source data therefore needed to be mapped and normalized before it could become a reliable portal-ready feed.

    The Solution

    The solution was implemented as a collection of custom WordPress feed integrations.

    The basic architecture was:

    WordPress Property Data → Field Mapping → Data Normalization → XML Generation → Portal-Specific Feed

    Each portal received its own XML output while using the property’s existing information from the WordPress websites.

    For example, a WordPress property could contain information such as:

    • Property type
    • Price
    • Location
    • Bedrooms
    • Bathrooms
    • Features
    • Images
    • Description
    • Property ID
    • Publication information

    The feed logic then transformed these values into the XML structure required by the destination portal.

    1. WordPress Data Extraction

    The first step was extracting the existing property information from the two WordPress websites.

    Rather than requiring the client to maintain a separate database for every portal, the existing WordPress property data remained the primary source.

    This allowed the workflow to remain simple:

    Edit the property once in WordPress → Generate the required XML → Portal consumes the feed.

    The project eventually evolved into a broader multi-portal feed system rather than a single XML export.

    2. Portal-Specific XML Mapping

    Each portal had its own requirements.

    For example, the client supplied the Homes Overseas export specification, while Realting provided an XML sample/template for its import structure. The implementation therefore required studying the destination specifications before creating the mapping.

    The mapping process connected the WordPress property fields to the corresponding portal fields.

    A simplified example:

    WordPress DataPortal XML
    Property ID<property_id>
    Property TypePortal-specific property type
    PricePortal price field
    CityPortal location field
    BedroomsBedroom element
    FeaturesPortal feature elements
    ImagesPortal image elements
    DescriptionPortal description field

    The important point is that this was not a one-to-one XML conversion.

    The same WordPress value could need to be transformed differently depending on the destination portal.

    3. Location Normalization

    Location mapping became one of the important parts of the project.

    The source websites and destination portals did not always use identical city or location names.

    This required custom location mapping so that a WordPress location could be translated into a value recognized by the destination portal.

    The project included additional work specifically for mapping locations where the website’s city names did not match the Green Acres database.

    This illustrates an important lesson from real estate feed development:

    Valid XML does not necessarily mean valid portal data.

    A feed can be technically correct XML and still be rejected or incorrectly categorized by the receiving marketplace if its values do not match the portal’s expected taxonomy.

    4. Property Type Standardization

    Property types also required normalization.

    The source website could use one naming convention while a portal could expect a different set of property categories.

    The project included property-type mapping as part of the broader feed system, and a later website change to the property’s type name even caused multiple existing feeds to require correction.

    This highlighted the importance of making feed integrations resilient to changes in the source WordPress data structure.

    5. Multilingual Feed Support

    The project also required English and Russian feed variations for some portals.

    Separate feed endpoints were created for the different language requirements, with the additional work involving fetching translated data rather than simply duplicating the original XML.

    This meant the feed system had to consider:

    Source language → Translation → Portal-specific XML

    rather than simply:

    Source language → XML

    6. Duplicate Prevention

    Another requirement was preventing the same property from being unnecessarily copied to advertising platforms.

    A custom WordPress function was developed to provide an option on the property edit screen to control whether a property should be copied to another website.

    This introduced a simple but important business rule:

    Property enabled for distribution → Include in feed

    Property disabled for distribution → Exclude from feed

    That gave the client more control over which listings were syndicated.

    7. Feed Validation and Testing

    Generating XML was only one part of the work.

    The feeds also needed to be tested against the destination requirements to make sure:

    • Required fields were present
    • Values were correctly mapped
    • Locations were recognized
    • Property types were accepted
    • Images were included correctly
    • Duplicate listings were controlled
    • Portal-specific XML structures were followed

    The later multi-portal project explicitly included feed validation and testing as part of the implementation scope.

    The Project Expanded Over Time

    What began as a small requirement for two websites and two portals gradually became a much larger feed ecosystem.

    The initial implementation covered:

    2 WordPress websites → 2 destination portals

    It subsequently expanded to additional portals and integrations, including A Place in the Sun, Prian.ru, Realitica, Green Acres, and JamesEdition.
    The work also included merging feeds, additional location mappings, and handling portal-specific limitations.

    For example, during the Green Acres integration, some properties could not be added because the portal did not support the source property’s “price upon request” value.

    This is a good example of why portal integrations often require more than coding alone: some limitations originate from the destination platform itself.

    The Result

    The project evolved from a basic XML export into a reusable multi-portal real estate feed system.

    The resulting workflow allowed property information maintained in WordPress to be transformed into portal-specific XML feeds without manually recreating every listing on every platform.

    The overall process became:

    Manage Property in WordPress

    ↓

    Apply Mapping & Business Rules

    ↓

    Normalize Location / Property Type / Features

    ↓

    Generate Portal-Specific XML

    ↓

    Validate Feed

    ↓

    Publish to Real Estate Portal

    This significantly reduced repetitive data entry and made it possible to distribute listings across multiple real estate marketplaces using automated feeds.

    Key Takeaways

    1. XML generation is only the beginning

    A technically valid XML document is not enough. The receiving portal must also understand the values and structure.

    2. Mapping is the core of real estate feed development

    Property types, locations, features, languages, and other fields often need normalization before they can be exported.

    3. Every portal is different

    A feed designed for one marketplace should not automatically be assumed to work for another.

    4. Source data changes need to be considered

    A change to a WordPress field name or property-type value can affect multiple downstream feeds.

    5. Business rules matter

    Options such as excluding a property, preventing duplicates, handling missing values, or dealing with unsupported pricing models can be just as important as the XML structure itself.

    The Architecture in One Diagram

    WordPress Websites

    sothebysrealty.me + nekretnina.me

    ↓

    Property Data Extraction

    ↓

    Field Mapping

    • Property type
    • Location
    • Price
    • Features
    • Images
    • Languages

    ↓

    Data Normalization

    ↓

    Portal-Specific XML Generator

    ↓

    Validation & Testing

    ↓

    Real Estate Portals

    • Realting
    • Homes Overseas
    • Tranio
    • A Place in the Sun
    • Prian.ru
    • Realitica
    • Green Acres
    • JamesEdition

    Final Outcome

    The project demonstrates how a WordPress website can become the central source of truth for a real estate company’s property portfolio while custom XML integrations handle the differences between external marketplaces.

    Instead of maintaining property data separately on every portal, the workflow becomes:

    Update once in WordPress. Transform automatically. Distribute everywhere.

    That is the real value of a custom real estate XML feed: not just generating XML, but building a reliable bridge between WordPress property data and the specific data requirements of each marketplace.

    Technologies: WordPress · PHP · Custom Plugins · XML · Data Mapping · Feed Validation · Real Estate Portal Integration