Multisite
How the connector behaves on a WordPress Multisite network and how to map UnoPim channels to specific sites.
What "multisite" means here
| Single site | Multisite | |
|---|---|---|
| Plugin install | One activation | Network activate, or per-site activate |
| Settings | One set | Each site has its own Connection, Channels & Stores, mapping, and Logs |
| Channel routing | All channels go to one site | Each channel can target a specific site in the network |
Each site is independent. A channel mapped to site 2 has no effect on site 1, and vice versa.
Activation
Network activate
Network activate from Network Admin → Plugins → Network Activate to enable the connector on every site at once. Each site gets its own settings, its own logs, and its own admin/shop manager capabilities.
Per-site activate
You can also activate the connector only on the sites that need it. Visit My Sites → [the site] → Plugins and activate from there. Other sites are unaffected. Mix-and-match is fine.
Channel-to-site mapping
This is the core multisite concept. Each UnoPim channel maps to one site in the network. You set this in Channels & Stores → Site dropdown.
| UnoPim channel | Maps to | WordPress site |
|---|---|---|
web | → | Main store (mainstore.example.com) |
mobile | → | Main store |
b2b | → | Wholesale (wholesale.example.com) |
b2c_uk | → | UK store (uk.example.com) |
When a sync runs for a given channel, the connector switches into the mapped site's context — reading and writing only that site's products, taxonomies, and logs.
Pull behaviour in multisite
When a pull runs for channel b2b:
- The connector looks up which site that channel maps to (in the example above, the Wholesale store).
- It switches into that site.
- Products, categories, and attributes are written to that site only.
A full pull running across three channels with three different mappings will hop between sites as it processes — but each site only ever sees its own data.
Push behaviour in multisite
When you save a product on the Wholesale store:
- The connector sees that the
b2bchannel maps to this site. - It builds a push for the
b2bchannel only. - UnoPim receives the update scoped to
b2b.
A product saved on the main store doesn't push to b2b — only to channels mapped to the main store.
Connection credentials per site
Each site has its own Connection settings. So:
- One site can use full read/write credentials.
- Another site can use read-only credentials so its operators can pull but not push.
- Sites can even point at different UnoPim instances if you maintain separate PIMs.
Use case: the network administrator sets up the main store with full push access; subsidiary stores use read-only credentials so their operators can pull updates but can't write back.
Caches per site
Each site keeps its own caches of channels, locales, families, and mappings. Two sites pulling from the same UnoPim instance each fetch and store their own copies. This is intentional — one site's settings can never bleed into another.
Multilingual + Multisite
Two common patterns:
Pattern A — Each site is one language
Site 1 (en.example.com) → channel web, locale en_US
Site 2 (fr.example.com) → channel web, locale fr_FR
Site 3 (de.example.com) → channel web, locale de_DE
Pull localized values from UnoPim's web channel; the locale you assign to each site decides what content lands where. Simpler than WPML, but every locale needs a separate WordPress site.
Pattern B — One site, many languages via WPML
Site 1 — WPML active with English, French, German
'web' channel → site 1, locales = en_US, fr_FR, de_DE
WPML handles the translations on a single site. See Multilingual.
The two patterns can coexist: site 1 might be a tri-language consumer store running WPML, while site 2 is a separate single-language B2B store.
Operations across sites
Bulk-pushing across the whole network
There's no network-admin screen for the connector. To push from every site, visit each site's Sync page individually and click Push All Products, or set up a Scheduled Job per site.
Reviewing logs across sites
Each site has its own Logs page. To see the whole picture, switch sites in the admin bar — the Logs reload for the site you're on. There's no built-in cross-site Logs view.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Pull writes to the wrong site | Channel-to-site mapping is wrong | Open Channels & Stores on the relevant site and update the Site dropdown for that channel. |
| The connector menu is missing on some sites | Plugin not activated on that site | Activate per-site, or use network activate. |
| Network activate did nothing on some sites | Some hosts skip activation hooks for network-wide actions | Visit each affected site and activate from My Sites → [site] → Plugins. |
| Cron only fires on the main site | Each site in a network has its own schedule, and WordPress only ticks them when visitors arrive | Ask your host to set up a system cron that ticks every site on the network. |
| Logs don't appear where you expect | Looking at the wrong site | Switch site in the admin bar — Logs are per-site. |
Tips
If your scheduled syncs always run late on subsidiary sites, that's almost always a cron issue — ask your host to set up a multi-site system cron. It's a one-time configuration that keeps every site ticking on time.
