Every sync runs the operations you enable in a fixed order: inventory changes first, then imports into the POS, then exports to your platform. This article explains each operation, realtime versus scheduled syncing, how items link by SKU, and how to read the sync logs when the two systems disagree.
Whether you connect WooCommerce or Shopify, the sync engine underneath is the same. It is a checklist of operations that runs in a fixed order, in the mode you choose, and it writes a log of everything it does. Understanding that model makes it much easier to predict what a sync will do — and to fix things when the POS and your web store disagree.
All of the sync settings described here live in one place: open Store Config from the left menu and type ecommerce in the search bar. Changing them requires the Store Config module permission on your employee account (see permissions and templates).
Pick a platform
Under Ecommerce Platform, the Select Platform dropdown offers None (the default), Woocommerce, and Shopify. Selecting a platform reveals that platform's settings tab (Woocommerce Settings or Shopify Settings) plus the shared ecommerce settings below. Only one platform can be connected at a time — to move from one platform to another you must reset the integration first (see "Reset E-Commerce" below).
The sync is a checklist of operations
The Ecommerce Sync Operations list controls what a sync actually does. Every operation you check runs, and they always execute in this fixed order, so supporting data (tags, categories, attributes) exists before the items that reference it:
- Sync inventory changes — stock level changes move first, so quantities are correct before anything else happens.
- Imports tags into PHP POS (WooCommerce only)
- Import categories into PHP POS (WooCommerce only)
- Import attributes into PHP POS (WooCommerce only)
- Import tax classes into PHP POS (WooCommerce only)
- Import shipping classes into PHP POS (WooCommerce only)
- Import items into PHP POS — web products become POS items (or update the linked item).
- Import orders into PHP POS — web orders become POS sales.
- Export tags to ecommerce (WooCommerce only)
- Export categories to ecommerce
- Export Attributes to ecommerce (WooCommerce only)
- Export tax classes to ecommerce (WooCommerce only)
- Export items to ecommerce — new and updated POS items push to the web store.
All operations are enabled by default on a new store. Shopify shows only the five that apply to it (sync inventory changes, import items, import orders, export categories, export items); WooCommerce shows the full list. Two rules to know:
- You cannot enable both Import items into PHP POS and Export items to ecommerce at the same time — the POS blocks it, because each side would overwrite the other. Decide which system is the catalog of record and enable only that direction.
- When Realtime Syncing is on, the scheduled and manual sync skips Sync inventory changes, because realtime updates already push each stock change as it happens.
Realtime versus scheduled syncing
There are two delivery mechanisms, and most stores use both:
- Realtime Syncing (the Realtime Syncing toggle, turned on automatically when you complete the guided connection) — the platform's webhooks push individual product and order events to the POS the moment they happen, and the POS pushes each inventory adjustment and item save to the platform as it occurs. Large events, such as a product with many variants, are processed as background jobs so nothing freezes while they run.
- Scheduled sync — a timed job runs the full operations checklist to catch anything webhooks missed and to handle bulk work. On cloud stores this runs automatically about every 15 minutes; syncing more often than every 15 minutes is not recommended for performance reasons.
You can also run the checklist by hand at any time — see "Run a sync manually" below.
How items link between systems
The sync connects a POS item to a web product by storing the platform's product ID on the item (and the platform's variation IDs on each variation). New links are made by matching SKUs:
- SKU field to sync with decides which POS field the web store's SKU is matched against: UPC/EAN/ISBN (the default), Product ID, or Item Id. Pick whichever field your online SKUs already match.
- For items with variations, each web variation's SKU is matched against the variation's item number in the POS.
When a match cannot be made safely, the sync reports it in the log instead of guessing:
- Conflict — the same SKU matches more than one active POS item or variation. The record is skipped and the log names the candidate items. Fix the duplicate SKU, then sync again.
- Blocked — the SKU matches only deleted or hidden POS items. Undelete the item (the items list offers Undelete, and there is an Undelete Item From Ecommerce action for the web side) or clear the stale SKU.
Shared settings reference
These settings appear under Ecommerce Platform for both platforms:
- Select Platform — None (default), Woocommerce, or Shopify.
- Realtime Syncing — on after a guided connection; webhooks keep both sides current between scheduled syncs.
- SKU field to sync with — UPC/EAN/ISBN (default), Product ID, or Item Id.
- Do NOT upload images to E-Commerce — off by default. When checked, item images stay in the POS and are never sent to the web store. Images already uploaded remain online and must be removed there by hand.
- Use the main image as the default image in e-commerce — off by default. Sends only each item's main image instead of the full image set.
- Only Sync Completed E-Commerce Orders — off by default. When checked, an order only imports once the platform marks it completed.
- Import E-Commerce Orders Suspended — off by default. Imports each web order as a suspended sale under the E-Commerce sale type so an employee reviews and completes it at the register. Once a suspended import exists it is not overwritten by later syncs, so in-store edits are safe.
- New Items are E-Commerce By Default — on by default. Every new item is created with Is Ecommerce Item checked; uncheck this if you want to opt items in one at a time.
- Store Location — which location the online store's stock is tied to (defaults to your first location) when you run more than one location.
- Sync inventory from location [name] — one checkbox per location. With realtime on, an inventory change at any checked location pushes a stock adjustment to the platform; if none are checked, only the first location triggers pushes.
- Online Price Tier — appears once you have created at least one price tier. Sell online at the tier's price instead of the item's regular selling price.
Per item, the Is Ecommerce Item checkbox on the item form decides whether that item syncs at all — uncheck it to keep an item in-store only.
Run a sync manually
- Open Store Config and search for ecommerce.
- Check the operations you want under Ecommerce Sync Operations and click Save if you changed them.
- Next to Last Sync Date, click Sync and confirm.
- The Sync Progress bar shows the percent complete and the operation currently running. A Cancel button appears while it runs; canceling stops the sync at the next safe point.
Only one sync can run at a time — starting a second one while the first is still running returns a "sync is already running" message. The first full sync of a large catalog can take a long time; it keeps running in the background even if you leave the page, and you can check its status in Store Config.
Reading the sync logs
Two logs tell you what a sync did:
- E-Commerce Syncing Logs in Store Config list a downloadable log file for each recent run — click a date to open it in a new tab. Log files are kept for 72 hours, so download anything you want to keep.
- Each item's Ecommerce Sync Log, shown on the item's edit form when Is Ecommerce Item is checked, lists that item's last five sync results with a date and a Successful/Failed state plus any messages — handy when a single product keeps drifting.
Orders from the web
Imported orders become sales in the POS carrying the E-Commerce sale type, so they are easy to filter in reports. The order's platform ID and status are stored on the sale. If an order is later cancelled or refunded on the platform, the sync marks the matching POS sale deleted so your totals agree. Web orders that have not yet completed are re-checked on every sync until they do.
Reset E-Commerce
The Reset E-Commerce button (at the bottom of the ecommerce settings) severs every link between the two systems: it clears the stored product, variation, image, category, tag, attribute and tax-class IDs on the POS side. It does not delete any products, items or stock counts on either side — the systems simply stop recognizing each other's records. Use it only when you are switching to a different web store or a different platform and want to start the linking process clean. If you are unsure, contact support before resetting.
Common questions
Why did my sync not change any stock levels? If Realtime Syncing is on, the scheduled sync deliberately skips the inventory operation — stock changes were already pushed one by one as they happened. Check the item's Ecommerce Sync Log to confirm individual pushes are going through.
Why are items duplicated after my first sync? The SKUs did not match, so the import created new items instead of linking to existing ones. Make sure the web store's SKU matches the field chosen in SKU field to sync with (UPC/EAN/ISBN by default), fix the duplicates, and sync again.
Why does one product never update online? Open the item and check two things: Is Ecommerce Item must be checked, and the Ecommerce Sync Log on the form will show the exact error from the last five attempts — a duplicate SKU conflict or a deleted product on the other side is usually named there.
Can items flow in both directions at once? No. Import items into PHP POS and Export items to ecommerce cannot both be enabled — one system must own the catalog. Inventory changes and orders can still flow while either is enabled.
The sync says it is already running. How do I stop it? Wait for it to finish, or click Cancel next to the progress bar. The cancel takes effect at the next safe point in the run.
Does resetting ecommerce delete my products? No. Reset E-Commerce only clears the links between POS records and web records. Both catalogs stay exactly as they are; they just stop syncing until you reconnect and relink.
Which location does my website's stock come from? The location chosen in Store Location under the ecommerce settings. The Sync inventory from location checkboxes control which locations' stock changes trigger a push online.
Comments
0 comments
Please sign in to leave a comment.