Getting Started
DineSync for Clover provides true two-way synchronization between WooCommerce and Clover POS. This guide covers installation, setup, and all features.
Installation
- Upload the
dinesync-for-clover folder to /wp-content/plugins/ or install directly from the WordPress plugin repository.
- Activate the plugin through the Plugins menu in WordPress.
- Navigate to DineSync > Settings in your WordPress admin.
Connecting to Clover
DineSync supports two connection methods:
OAuth (Recommended)
- Click "Connect to Clover" on the settings page.
- You will be redirected to Clover to authorize the connection.
- Once authorized, you are redirected back to your site — connection is complete.
No API keys or manual configuration needed. The DineSync Hub handles the OAuth flow securely.
Manual Connection
- Click "Advanced: Manual Connection" to expand the form.
- Enter your Clover Merchant ID.
- Enter your Clover API Token.
- Select your environment (Production or Sandbox).
- Click Save.
Once connected, you will see a green "Connected to Clover" status with your merchant name, masked merchant ID, connection type (OAuth or Manual), and connected date.
Inventory Sync
Importing from Clover
- Go to DineSync > Settings and scroll to Inventory Actions.
- Click Import from Clover.
- Items, categories, modifier groups, prices, stock levels, and availability are imported into WooCommerce as native products.
- Existing WooCommerce products are auto-mapped by name or SKU to prevent duplicates.
- New WooCommerce products are created automatically for any Clover items that don't have a match.
Pushing to Clover
- Click Push to Clover to send WooCommerce products to Clover POS.
- Products are sent in batches of 30 to prevent API rate limiting and timeouts.
- Only changed fields are pushed (diff-based updates) — unchanged products are skipped.
- New WooCommerce products that don't exist on Clover are created automatically.
- Categories are created on Clover if they don't already exist.
Map Clover Items
Click
Map Clover Items to manually trigger the auto-mapping feature. This matches existing WooCommerce products to Clover items by name or SKU. Useful after a bulk product import or if you added products on both platforms independently.
Full Sync
Click
Full Sync to run both an import from Clover and a push to Clover in sequence. This ensures both platforms are fully aligned.
Clean & Re-Sync
Click
Clean & Re-Sync to reset all item mappings and sync metadata. This does NOT delete any products or orders — it only clears the sync data (Clover item IDs, last synced timestamps, change tracking data). After cleaning, you can re-import from Clover or re-push from WooCommerce with a fresh start.
Sync Direction
Under Sync Settings, choose your preferred direction:
- Two-Way Sync — Changes flow both directions automatically. This is the default and recommended setting.
- Clover to WooCommerce — Clover is the source of truth. Changes on Clover update WooCommerce, but WooCommerce changes are not pushed to Clover.
- WooCommerce to Clover — WooCommerce is the source of truth. Changes in WooCommerce update Clover, but Clover changes are not pulled into WooCommerce.
Per-Field Sync Toggles
Enable or disable syncing for each field individually:
- Name — Product/item name
- Price — Regular price
- SKU — Product SKU/barcode
- Categories — Category assignments (bidirectional with auto-create)
- Stock — Stock quantity and management settings
- Availability — Published/hidden status and Clover available flag
- Description — WooCommerce short description syncs to Clover alternateName (127 char limit, HTML stripped)
- Modifiers — Modifier groups (toppings, sizes, extras)
Real-Time Price & Stock Sync
How It Works
When connected via OAuth, Clover sends webhook events through the DineSync Hub whenever an item is created, updated, or deleted. The plugin processes these events and updates WooCommerce products in real-time.
- Price change on Clover — WooCommerce product price updates within seconds
- Price change in WooCommerce — Clover item price updates immediately on product save
- In-store sale on Clover — WooCommerce stock quantity decreases automatically
- Online sale on WooCommerce — Clover stock quantity can be updated via the sync
- Out-of-stock in WooCommerce — Product is marked as unavailable on Clover automatically
The plugin uses change detection to avoid unnecessary API calls. If a price hasn't actually changed, the update is skipped with a log entry like "Price unchanged, skipping."
Stock Sync Details
- Clover
stockCount maps to WooCommerce stock_quantity
- Stock management is enabled automatically (
manage_stock = true)
- Stock status (in stock / out of stock) is set based on the quantity
- Products with zero stock and no stock management in WooCommerce are set to
available = false on Clover
Auto-Create Items
Clover → WooCommerce
When a new item is added on Clover POS:
- Clover sends a CREATE webhook event through the DineSync Hub
- The plugin checks if a WooCommerce product already exists with this Clover item ID
- If no match is found, a new WooCommerce Simple Product is created with: name, price, SKU, stock quantity, stock management settings, and category assignments
- The Clover item ID is saved as product meta for future sync operations
WooCommerce → Clover
When a new product is added in WooCommerce:
- On product save, the plugin checks if this product has a Clover item ID
- If no Clover item ID exists, a new item is created on Clover via the API
- The returned Clover item ID is saved to the product for future sync
- Categories are created on Clover if they don't already exist, and the item is associated with them
Category Sync
Categories sync bidirectionally with intelligent diffing:
- Import: Clover categories are created as WooCommerce product categories (matched by name or created new)
- Push: WooCommerce categories are created on Clover if they don't exist, then items are associated
- Changes: Only additions and removals are synced — not the full category list every time
- Mapping: Each WooCommerce category stores the corresponding Clover category ID as term meta
Order Sync
How It Works
When a customer places an order on your WooCommerce store:
- The order is created in WooCommerce as usual.
- DineSync sends the order to Clover POS automatically.
- The order appears on your Clover device with full details: line items, modifier selections, customer info (name, email, phone), fees, shipping, and discounts.
- Payment is recorded on Clover with the correct amount so the order shows as paid.
- If auto-print is enabled, the order prints to your kitchen printer immediately.
Works with both WooCommerce classic checkout and block-based checkout.
Duplicate Order Prevention
DineSync uses transient-based locking to prevent duplicate orders. Before processing an order, it checks for a lock transient. If one exists (meaning the order is already being processed), it skips. This prevents double orders from simultaneous webhooks, page refreshes, or race conditions.
Bidirectional Order Status Sync
Order statuses sync both directions:
- WooCommerce "Completed" → Clover "Fulfilled"
- WooCommerce "Cancelled" → Clover "Cancelled"
- WooCommerce "Refunded" → Clover "Cancelled"
- Clover "Fulfilled" → WooCommerce "Completed"
- Clover "Cancelled" → WooCommerce "Cancelled"
Infinite loop prevention is built in — when a status change arrives from Clover, the plugin temporarily removes its own WooCommerce status hook before updating, then re-adds it. This prevents Clover → WC → Clover → WC bouncing.
Modifier Groups
How Modifiers Sync
Clover modifier groups (toppings, sizes, extras) are imported and stored as canonical data on WooCommerce products. The plugin supports three rendering methods:
- Built-in Renderer — Radio buttons, checkboxes, and dropdowns with real-time price adjustments. Works out of the box.
- WooFood / Flavor — If WooFood is active, modifiers are written in WooFood format automatically.
- WC Product Add-Ons — If WC Product Add-Ons is active, modifiers are written in that format instead.
The plugin detects which system is active and adapts automatically. No configuration needed. The active modifier system is shown on the settings page (e.g., "Modifier System: Built-in").
Order Settings
Auto-Print Orders
Enable "Print orders on Clover kitchen printer automatically" in Order Settings. Select which Clover printer to use from the dropdown (click the refresh button to load printers from your Clover account). Orders will print the moment they are placed on your website.
Default Employee
Assign online orders to a specific Clover employee. This is useful for reporting and tracking which orders came from the website vs in-store.
Settings Reference
Connection Settings
- Connection Method — OAuth (via DineSync Hub) or Manual (API token)
- Environment — Production or Sandbox (manual connection only)
- Merchant ID — Your Clover merchant identifier (shown masked after connection)
Sync Settings
- Enable Sync — Master toggle for order and inventory sync
- Sync Direction — Two-way Sync, Clover to WooCommerce, or WooCommerce to Clover
- Fields to Sync — Per-field toggles for Name, Price, SKU, Categories, Stock, Availability, Description, Modifiers
Order Settings
- Auto-Print Orders — Enable automatic kitchen printing
- Printer — Select Clover printer (refresh to load from Clover)
- Default Employee — Assign orders to a Clover employee
Inventory Actions
- Full Sync — Import from Clover + Push to Clover in sequence
- Import from Clover — Pull all items, categories, modifiers, and stock
- Push to Clover — Send all WooCommerce products in batches of 30
- Map Clover Items — Auto-map existing products by name or SKU
- Clean & Re-Sync — Reset all mappings without deleting products
Sync Statistics
- Orders Synced — Total orders sent to Clover
- Last Order Sync — Time since last order was synced
- Last Inventory Import — Time since last Clover import
- Synced Products — Number of products mapped to Clover items
Sync Logs
The Sync Logs page (accessible via the "View All" button or
DineSync > Sync Logs) shows a detailed history of all sync operations:
- Time — Timestamp of the event
- Level — SUCCESS (green), INFO (blue), WARNING (yellow), or ERROR (red)
- Message — Description of what happened
- Order — Link to the related WooCommerce order (if applicable)
You can filter by log level, refresh the list, or clear all logs. Logs are automatically cleaned up after 30 days.
Troubleshooting
Orders Not Syncing
- Verify your connection is active (green "Connected to Clover" status on settings page).
- Check that "Enable Sync" is checked in Sync Settings.
- Check the Sync Logs for error messages — look for red ERROR entries.
- Ensure the order is in a valid status (processing or completed).
Inventory Import Not Working
- Confirm your Clover account has inventory items.
- Check that your API token has the required permissions (for manual connections).
- Review Sync Logs for API error responses.
- Try Clean & Re-Sync, then Import from Clover again.
Push to Clover Stops Partway
- Products are pushed in batches of 30. If it stops, check the browser console (F12) for JavaScript errors.
- Check Sync Logs for API errors — you may be hitting Clover rate limits.
- Try pushing again — it will resume from where it left off.
Prices Not Syncing in Real-Time
- Real-time sync requires OAuth connection via the DineSync Hub. Manual connections do not receive webhooks.
- Check the Hub heartbeat status on the settings page.
- Check Sync Logs — you should see "Price unchanged, skipping" or "Price updated" entries.
Duplicate Products After Import
- Click Map Clover Items to auto-map existing products by name or SKU.
- If duplicates were created, delete them and click Map Clover Items to re-link the originals.
- For a fresh start, use Clean & Re-Sync, then Import from Clover.
Stock Levels Out of Sync
- Ensure the "Stock" field toggle is enabled in Fields to Sync.
- For real-time stock sync on in-store Clover sales, you need OAuth connection (webhooks).
- Run a Full Sync to align stock levels across both platforms.
Need Help?
Contact us at
info@monirtechsolutions.com or visit our
support page.