Technical documentation / PropSpace Importer Pro

Your PropSpace catalog,
live in WordPress.

How the sync works, a step-by-step tutorial for every screen, the field reference for Elementor and the diagnostics built in — the complete documentation for PropSpace Importer Pro.

  • WordPress 5.8+
  • PHP 7.4+
  • Elementor ready
  • Background batches
  • Delta sync
  • Encrypted API key

01 / At a glance

Technical strengths

Built for real catalogs on real Middle East hosting — not for a demo with ten listings.

Resumable

Queue-backed batch sync

Discovery and import are separate, resumable steps stored in their own tables. No single request handles the whole catalog, so max_execution_time stops mattering.

Time budget

Never times out

Each batch stops after a fixed number of seconds and puts unstarted listings back in the queue. Slow hosting just means smaller batches.

Delta sync

Skips what did not change

Unchanged listings are recognised from the updatedAt on the listings page alone — no detail request per listing.

Self-repair

Finds and fixes damage

Missing galleries, broken agent links, failed photos and posts deleted by hand are re-imported automatically; a health audit offers one-click repairs.

Images

Photos that actually import

PropSpace photo URLs have no file extension, so WordPress rejects them. The plugin downloads them and detects the type from the file itself.

Security

Encrypted credentials

The Secret Key is stored AES-256-CBC encrypted with keys derived from your AUTH_KEY / AUTH_SALT, and decrypted only for the request that needs it.

02 / Install

Install and connect

01

Install the plugin

Upload PropSpace Importer Pro in Plugins → Add New → Upload and activate it. A PropSpace Sync menu appears with Sync Dashboard, Settings, Reference Data, Field Guide and Logs.

02

Add the API credentials

PropSpace Sync → Settings → API Credentials: paste the Client ID and Secret Key from PropSpace and click Save Credentials.

03

Test the connection

Run the pre-flight check: it calls the API, downloads one real photo and checks PHP, memory, disk and cron before you sync anything.

04

Load reference data

Reference Data → Sync Property Types and Sync Agents. Property types become a taxonomy; each agent gets one profile instead of copies on every listing.

03 / Tutorial / First sync

Run your first sync

PropSpace Sync → Sync Dashboard.

01

Start New Sync

The plugin fetches your property list page by page and queues every listing. You can close the tab — it keeps going in the background.

02

Watch it live

The dashboard shows imported/updated, unchanged and failed counts, the time remaining and recent activity. Refresh every 5 seconds or on demand.

03

Retry failed items

Listings that fail three times move to Failed Items with their error. Fix the cause, then Retry Failed Items.

04

Cleanup

At the end, listings no longer on PropSpace are removed. A safety check refuses an unusually large drop, and cleanup never runs on an incomplete list.

05

Get notified

Turn on “Email me when a sync finishes or fails” in Settings. Leave the address blank to use the site admin email.

04 / Tutorial / Automatic sync

Keep it in sync on its own

PropSpace Sync → Settings → Scheduling.

01

Pick an interval

Every hour, every 6 hours, every 12 hours, once daily — or off (manual only).

02

Use a real cron

WordPress runs schedules on page visits. On a quiet site add a server cron that calls wp-cron.php and set DISABLE_WP_CRON; the pre-flight check confirms it.

03

Tune the batch size

Batch Size = listings per request (default 5, 1–20). Lower it if your host has strict timeouts or listings carry many photos.

04

Force a full resync

Tick “Force full resync (ignore unchanged listings)” once after changing field mappings; normal runs keep using delta sync.

05 / Tutorial / Elementor

Show listings with Elementor

Everything is stored as normal WordPress data, so Elementor Dynamic Tags, Loop Grid and archives work without extra plugins. PropSpace Sync → Field Guide lists every field.

01

Build the single template

Create a Single template for the property post type. Use Post Title, Featured Image and Post Content tags.

02

Add the fields

Dynamic Tags → Post Custom Field: price, bedrooms, area, location_string and the rest from the Field Guide.

03

Gallery and map

Gallery widget → gallery_images (attachment IDs, in PropSpace order). Google Maps → ps_latitude / ps_longitude.

04

Archives and filters

Loop Grid over property, filtered by the Property Type or Offering Type taxonomy. Use ps_bedrooms_num for numeric “3+ bedrooms” filters.

05

Agent card

ps_agent_name, ps_agent_mobile, ps_agent_email and ps_agent_photo (Image URL tag), or link to the Agent profile via ps_agent_post_id.

06

Protect a hand-picked photo

Choose a better featured image on the edit screen and lock it: the sync detects it and never overwrites it again.

06 / Field reference

What each listing stores

Custom fields on the property post type. Region, location and sub-location are plain text on purpose: as a taxonomy they produced about ten thousand terms on a real catalog.

ref · price

Listing reference number and price

ps_price_updated_at

When the price last actually changed (tracked locally, UTC)

bedrooms · ps_bedrooms_num

As sent (can be “Studio”) · as a number (Studio = 0) for filters and sorting

bathrooms · area · plot_size

Half-baths and decimals preserved; area in sqft

location_string

Full location on one line, e.g. Ras Al Khaimah, Mina Al Arab, Raha Island

ps_region_name · ps_area_location_name · ps_sub_area_location_name

Region, location and building — plain text

ps_offering_type_raw · ps_is_furnished · ps_is_featured

Sale / Rent, furnished status, featured (yes / no for Elementor conditions)

ps_latitude · ps_longitude

Coordinates for Google Maps

ps_agent_name · ps_agent_mobile · ps_agent_email · ps_agent_photo · ps_agent_post_id

Agent details and their Agent profile

features_string · features_list

Amenities as text or as a list for an Elementor loop

gallery_images

Attachment IDs in PropSpace order

ps_created_at · ps_updated_at

PropSpace dates; updated_at drives delta sync

propspace_id · ps_client_id · ps_featured_locked

Original listing ID (do not edit), agency ID, featured-image lock

Taxonomies

ps_property_type (Property Types) and ps_offering_type (Offering Types)

Post types

property (Properties) and ps_agent (Agents)

07 / Tutorial / Debug & Health

Diagnose before, during and after

PropSpace Sync → Logs & Diagnostics. Debug logging is off by default; switch it on only while tracing a problem — it switches itself off again.

01

Before: pre-flight check

Credentials, API reachability, authentication, a real listings call, a real photo download, PHP version, memory, disk space, timezone and cron.

02

During: live state

Queue rows, locks, background continuations and stalled runs. Emergency Stop & Unlock frees a lock left by a worker that died.

03

After: health audit

Finds duplicated listings, missing galleries, missing featured images, broken agent links, orphaned photos and stale mappings — each with a one-click repair.

04

Support report

Generate Report and Copy to Clipboard: everything your developer or PropSpace support needs, without digging through server files.

08 / Settings reference

Every option in Settings

Client ID · Secret Key

PropSpace API credentials. The key is stored encrypted; leave it unchanged to keep the current one.

Automatic Sync

Off (manual only), every hour, every 6 hours, every 12 hours or once daily.

Batch Size

Listings per request, 1 – 20 (default 5).

Featured Image

Automatically set the featured image from the first gallery photo.

Photo Cleanup

Delete imported photos once PropSpace no longer uses them — only files this plugin downloaded.

Email Notifications

Email when a sync finishes or fails; blank address = site admin email.

Debug logging

Off by default; records every API call, download and decision while on.

09 / Security & data

What it stores and how

Credentials

AES-256-CBC with key material from AUTH_KEY / AUTH_SALT. If those salts change, re-enter the Secret Key.

Network

Only website-api.propspace.com over HTTPS, plus the PropSpace photo URLs.

Rate limits

When PropSpace asks the site to slow down, the sync waits and carries on — no action needed.

Database

Dedicated tables for runs, the queue and mappings. Debug & Health can rebuild them if a host blocked CREATE/ALTER.

Timezone

Everything is stored in UTC; the site timezone is used only for display.

10 / Troubleshooting

Common questions

“API credentials are missing”

Add the Client ID and Secret Key under Settings, then run the pre-flight check.

Unauthorized (401)

PropSpace rejected the keys. Verify API access with PropSpace support.

Listings without photos

Some listings have none on PropSpace. If many are missing, the photo-download probe in the pre-flight check shows why.

Scheduled syncs run late

No real cron — add a server cron for wp-cron.php.

A sync looks stuck

Open Debug & Health → live state, close stalled runs or use Emergency Stop & Unlock.

Nothing was deleted at the end

The safety check stopped an unusually large removal, or the listing list was incomplete. Check the dashboard message.

11 / Get it

Want PropSpace Importer on your site?

  • WordPress 5.8+
  • PHP 7.4+
  • Elementor ready