Total stores
0
WooCommerce
0
OpenCart
0
Active
0
Recent stores
Connected stores
Inventory — central stock
Queue pending
0
Delivered
0
Failed
0
Last sync
—
Run sync
Click “Sync now” to read every store, detect what sold, and push updated stock back to all stores.
Recent activity
Safety buffer
Units held back from every store. With a buffer of 5, a product with 50 in stock shows 45 to the stores — so they stop selling before the hub truly empties, shrinking the oversell window.
Change password
Cron setup
Once deployed, add this cron (every minute) for full automation — detects sales across all stores and pushes updates:
…
How everything works
This panel is the single source of truth for stock across all your stores. Products are matched across stores by SKU. When something sells in one store, the central stock drops and the new number is pushed to every other store. Click a section to expand.
Overview
At-a-glance counts: total stores, how many are WooCommerce vs OpenCart, and how many are active. The “Recent stores” list mirrors the Stores page.
Stores
Manage the stores you sync. Each row shows its Products count, and these buttons:
Add store— connect a store: name, platform (OpenCart / WooCommerce), URL, credentials. For OpenCart you also pick the version (3 or 4).View— jump to the Inventory page filtered to just that store’s products.Edit— change a store’s name, URL, version, or credentials (platform can’t change).Key— reveal the saved API key (e.g. to paste into the store’s OpenCart admin).Test— fetch a few products to confirm the connection works.Delete— remove the store. Products left in no store are cleaned up automatically.
Inventory
The central catalog, pooled by SKU. Columns:
- Total stock — the master pool you control (editable, then
Save). - Reserved — units consumed by orders.
- Available = Total − Reserved. This is what gets pushed to stores. (Negative = oversold signal.)
- Stores — how many connected stores carry this SKU.
Import from stores pulls products from every store and pools them by SKU. The store dropdown filters to one store. Per row, Order −1 simulates a sale (Available drops) and Push sends the current Available to all that product’s stores now.
Auto sync
The automation + reliability hub.
Sync now— reads every store, detects what sold (from stock drops), updates the central stock, and pushes new numbers back. This is the whole loop in one click.- Queue stats — pending / delivered / failed push jobs. Stores are updated through a durable queue that retries automatically.
Retry failed— re-run any pushes that gave up (e.g. a store was briefly down).- Recent activity — an audit log of every stock change: when, which SKU, the change, and the reason.
Settings
- Safety buffer — units held back from every store. A buffer of 5 means a product with 50 shows 45 to stores, so they stop selling before the hub empties (shrinks the oversell window).
- Change password — update your admin login (verifies the current password first).
- Cron setup — the command to schedule on your server so sync runs automatically.
Connecting a store (one-time setup)
OpenCart: upload the extension to the store (
WooCommerce: create a REST API key with Read/Write permission (WooCommerce → Settings → Advanced → REST API), then add the store here with the key & secret.
Mcsync.ocmod.zip for OC4, Mcsync-opencart3.ocmod.zip for OC3) via Extensions → Installer, then enable it and paste an API key in its admin. Add the store here with the same key and the right version.WooCommerce: create a REST API key with Read/Write permission (WooCommerce → Settings → Advanced → REST API), then add the store here with the key & secret.
The sync flow: order in any store → detected (instantly via webhook, or on the next Sync) → central Available drops → new number queued and pushed to all stores → retried if a store is down → logged in Recent activity.