First sync
Connect your Nivoda credentials, run the initial inventory pull, and verify the catalogue is populated correctly.
The first sync pulls Nivoda's diamond inventory into your local database for the first time. It is the most resource-intensive operation NivoSync performs — and the one that, once completed, you almost never have to repeat.
This guide takes you from "licence active" to "diamonds visible in the catalogue".
Before you start
You will need:
- An active Nivoda B2B account with API access enabled. If you do not have one, sign up at nivoda.com and request API access from their team. Approval typically takes 1–2 business days.
- Your Nivoda API username and password — found in the Nivoda dashboard under Account → API access.
- About 15–30 minutes while the sync runs in the background. You can keep working in the WP admin during this time.
Step 1: Connect Nivoda credentials
- In the WP admin, go to NivoSync → Settings → API & Sync.
- In the Nivoda credentials section, paste your username and password.
- Click Save credentials.
- The plugin tests the credentials immediately — you should see a green Connection verified badge appear within 5 seconds.
What happens behind the scenes:
- Credentials are encrypted with AES-256-GCM before persisting to the database. Even an attacker with read access to your
wp_ns_optionstable cannot recover the plaintext without your WordPressAUTH_KEY. - The plugin makes a test call to Nivoda's
/accountendpoint to verify the credentials authenticate. - An API token is fetched and cached for 12 hours. The plugin renews the token automatically before expiry.
Step 2: Choose what to sync
Before running the sync, narrow down what you actually want in your catalogue. Pulling everything Nivoda has is rarely the right answer — most stores sell a specific cut/colour/clarity range.
Go to NivoSync → Settings → Sync filters and configure:
- Lab-grown vs natural — most modern stores sync only lab-grown to start, and add natural later. Toggle accordingly.
- Shape allowlist — round / oval / cushion / princess / emerald / pear / marquise / asscher / radiant / heart. Pick the shapes you actually merchandise.
- Price range — set a
minandmaxin your store currency to skip diamonds outside your retail tier. - Carat range — for example 0.30–5.00 ct skips industrial micro-diamonds and one-of-a-kind 10ct+ stones you would order on demand instead.
- Lab allowlist — GIA, IGI, GCAL, EGL, etc. Most stores want only GIA + IGI for trust signals.
Step 3: Run the first sync
Once filters are configured:
- Go to NivoSync → Sync.
- Click Run full sync now.
- Confirm in the modal — the plugin warns this will take time on first run.
- The sync starts and the page redirects to a Sync in progress view with a live progress bar.
What you will see during the sync:
- A counter incrementing:
Diamonds processed: 1,234 / 47,891. - A throughput indicator:
~250 diamonds/secon shared hosting,~1,200/secon dedicated CPU. - An estimated remaining time, updated every 10 seconds.
- A Pause button if you need to free up server resources for something else.
You can leave this page or close the browser — the sync continues in the background via WP-Cron. If you reload, the progress bar reflects the current state.
Step 4: Monitor progress
Two ways to watch the sync without staring at the progress bar:
From the sync log panel:
- Go to NivoSync → Sync and scroll to the log panel.
- Each batch logs an info line:
Synced batch 12: 1,000 diamonds (45.2s, 22.1 diamonds/sec).
From WP-CLI (useful if your hosting kills long-running web requests):
# Run the sync from CLI instead of cron — bypasses any web-tier timeout
wp nivosync sync --full
# Watch progress in another terminal
wp nivosync sync:status
# Tail the structured log
tail -f wp-content/uploads/nivosync/logs/sync.logStep 5: Verify the catalogue
When the sync completes, you will see a green completion banner: "Sync completed: 47,891 diamonds in 19m 22s".
Verify by:
- Going to NivoSync → Diamonds. You should see a paginated table with the full catalogue.
- Going to your front-end catalogue page (default
/diamonds/). You should see the diamond grid populated with results. - Trying a filter — pick a shape and a colour range. The grid should narrow instantly (filters run on the local cache, not the API).
- Clicking a diamond. The detail page should render with the complete spec sheet.
What if the sync fails
The most common failure modes:
| Symptom | Cause | Fix |
|---|---|---|
| Stops at exactly 60 / 120 seconds | Web tier timeout | Run from CLI: wp nivosync sync --full |
| Stops mid-sync with "Memory limit" | PHP memory exhausted | Raise WP_MEMORY_LIMIT to 512M in wp-config.php |
| Stops with "Auth failed" mid-sync | Token expired during long run | Plugin should auto-renew; if not, report it |
| Stops with "Rate limited" | Nivoda quota exceeded | Wait an hour, increase batch delay in Settings → Sync |
| Completes but catalogue empty | Filters too narrow | Loosen the filters from Step 2 and re-sync |
In every case, the Logs page captures the exact error and the batch where it happened. A retry from that batch is non-destructive — already-synced diamonds are not re-processed.
What happens after the first sync
Once the initial pull completes, NivoSync switches to incremental sync mode automatically. From this point onwards:
- A scheduled cron job runs at the interval you configured (hourly / 4-hourly / daily — set in Settings → Sync).
- Each run pulls only diamonds that changed since the last sync (new additions, price updates, removals).
- Incremental syncs typically complete in 30–90 seconds — orders of magnitude faster than the first full pull.
You should never need to run a full sync again unless:
- You significantly broaden your sync filters (e.g. enable a new shape).
- You suspect data corruption (rare; logs would show it).
- You migrate to a fresh database and want to start over.
Up next
Your diamond catalogue is live. The five getting-started docs end here — you have a working store. Configuration guides for theming, pricing, ring builder and bookings are coming as we expand the docs site.
For now, the most useful next step is to:
- Visit Themes in the admin and pick the look that matches your brand (Default, Modern, Elegant).
- Customise the colour palette under Themes → Customise.
- Configure your pricing markup under Settings → Pricing engine.
If you get stuck, email support — most onboarding questions have a one-line answer from us.