Elementary POS for WooCommerce

Changelog

0.9.18

  • Fixed: Race condition in webhook processing that could double stock changes when multiple webhooks arrive simultaneously
  • Fixed: Manual stock sync (EP→WC) no longer sends reverse deltas back to Elementary POS
  • Fixed: Piggyback retry of failed stock changes moved from synchronous checkout to async cron to prevent slow checkout
  • Fixed: Rollback during manual sync no longer leaks stock deltas to Elementary POS
  • Improved: Plugin deactivation now properly cleans up all scheduled cron events

0.9.17

  • Fixed: Czech translations not loading – added explicit load_plugin_textdomain() with bundled translations as fallback
  • Fixed: Bundled translations now load independently of WordPress.org language packs

0.9.16

  • Added: Manual stock changes in WooCommerce admin are now synchronized to Elementary POS
  • Added: Loop prevention for import operations to avoid duplicate sync during EP→WC import
  • Improved: Stock synchronization now covers both order-based and manual inventory adjustments
  • Improved: Queue system now automatically retries previously failed items when new activity occurs
  • Improved: Error suppression for server limit overrides to prevent fatal errors on restricted hosting environments
  • Fixed: All hardcoded Czech strings replaced with proper English translatable strings
  • Fixed: JavaScript strings now properly translatable through wp_localize_script
  • Changed: Updated documentation to reflect full bidirectional stock synchronization
  • Changed: Removed redundant en_US translation files

0.9.14

  • Added: Bidirectional tax mapping system for product imports
  • Added: Option to import tax classes with mapping for both EP→WC and WC→EP directions
  • Added: Auto-mapping of taxes based on percentage matching
  • Added: Interactive tax mapping table with dropdown selectors
  • Added: Visual display of tax rates (max 3 countries with “…” indicator)
  • Added: “No tax assigned” option for WooCommerce tax classes
  • Improved: Tax mapping stored in transients during import for consistency
  • Improved: WC→EP import now uses correct API endpoint (edit-sale-item for existing products, add-sale-item for new)
  • Changed: Replaced single tax dropdown in WC→EP import with comprehensive mapping system
  • Changed: Tax mapping is required for WC→EP import (EP API requires taxId), optional for EP→WC
  • Fixed: “SKU code already exists” error when updating existing products in WC→EP import

0.9.13

  • Improved: Pending products are now handled the same way as draft products
  • Improved: When “Sync draft products” is enabled, pending products are included in synchronization
  • Improved: Import, export, and stock sync now support pending product status
  • Improved: Dashboard statistics now include pending products when draft sync is enabled

0.9.12

  • Improved: Import tab – unified interface with dropdown for direction selection (EP→WC or WC→EP)
  • Improved: Sync tab – unified interface with dropdown for direction selection
  • Improved: Single “Načíst produkty” button instead of separate buttons for each direction
  • Improved: Single “Aktualizovat sklad” button instead of separate buttons for each direction
  • Changed: Removed “Quick Actions” section from Dashboard
  • Changed: Import and Sync tabs now use single unified buttons for better UX

0.9.11

  • Major: Refactored import to 3-phase system with transparent progress reporting
  • Added: Phase 1 – Delete all WC products in chunks (optional, prevents timeouts on large catalogs)
  • Added: Phase 2 – Import products from Elementary POS in chunks (prevents timeouts)
  • Added: Phase 3 – Load stock from Elementary POS in chunks (optional, prevents timeouts)
  • Improved: Real-time progress display for each phase with product counts
  • Improved: Phase-specific error handling and cancellation support
  • Improved: Function naming for future WC → EP export compatibility
  • Improved: Import option checkboxes are now disabled during import to prevent confusion
  • Changed: Import operations now separated for better user visibility and control
  • Fixed: Large imports (10k+ products) no longer timeout

0.9.10

  • Fixed: Draft products are now properly detected and updated during import
  • Fixed: Import now respects draft status – draft products remain draft after update
  • Added: New helper method for draft-aware product retrieval during import
  • Added: Detailed timeout diagnostics in JavaScript console
  • Improved: Import chunk size optimized for better performance (50 products per chunk)
  • Improved: Progress bar now shows actual percentage and product counts
  • Improved: Comprehensive error reporting with specific timeout types
  • Changed: Product status is preserved during updates (draft/published)

0.9.9

  • Added: Optional synchronization of draft products – new setting in Settings tab
  • Changed: Product removal now moves products to Trash instead of permanent deletion
  • Improved: Products can be restored from Trash after import with “delete all” option
  • Improved: Rollback mechanism now restores trashed products when import fails

0.9.8

  • Added: Option to import products as Draft instead of Published status
  • Improved: Loop prevention mechanism now uses global request-level flags instead of time-based transients for better reliability
  • Improved: Plugin uninstallation now automatically disables webhook in Elementary POS to prevent orphaned notifications
  • Improved: Removed verbose initialization log messages to keep logs cleaner
  • Changed: Queue type renamed from ‘order_stock_change’ to ‘stock_change’ for consistency
  • Changed: Refactored WooCommerce order stock handler into separate class

0.9.7

  • Improved: Loop prevention mechanism now uses global request-level flags instead of time-based transients for better reliability
  • Improved: Plugin uninstallation now automatically disables webhook in Elementary POS to prevent orphaned notifications
  • Changed: Queue type renamed from ‘order_stock_change’ to ‘stock_change’ for consistency
  • Changed: Refactored WooCommerce order stock handler into separate class

0.9.6

  • Fixed: Import with stock loading now correctly sets sync timestamp to enable automatic synchronization
  • Improved: Dashboard redesigned with single unified status table (9 rows) replacing previous dual-table layout
  • Improved: Added “Total Products with SKU” statistic to dashboard for better inventory overview
  • Improved: “Automatic Sync” status moved to second position in dashboard for better visibility
  • Improved: Reduced logging verbosity – removed verbose API request/response logs while keeping all errors and important events
  • Changed: Webhook validation simplified to accept initial synchronization from either direction (EP→WC or WC→EP)

0.9.5

  • CRITICAL FIX: Webhook now correctly applies stock changes as deltas instead of absolute values
  • CRITICAL FIX: Synchronization now uses syncTimestamp from Elementary POS API instead of local server time
  • CRITICAL FIX: WC→EP synchronization now correctly sets both general and direction-specific timestamps
  • Fixed: Webhook now works correctly regardless of which sync direction (EP→WC or WC→EP) was performed first
  • Security: Automatic synchronization is now automatically disabled when API key is changed
  • Security: Webhook cannot be enabled without performing initial synchronization first (both directions supported)
  • Improved: Manual synchronization now properly saves syncTimestamp from API response
  • Improved: Enhanced logging for webhook operations with aggregation details
  • Changed: Sync timestamps are reset to 0 when API key changes (different account safety)

0.9.4

  • Fixed: Webhook handler now properly skips stock changes from own plugin to prevent incorrect stock levels
  • Fixed: Removed unnecessary logging when webhook receives only own plugin changes

0.9.3

  • Improved: Extended queue and logs cleanup from 7 to 30 days
  • Improved: Webhook logs filtered to show only stock_updated events
  • Changed: Removed redundant “Webhook Status” from dashboard
  • Changed: Replaced auto-refresh section with compact manual refresh buttons next to tab headings
  • Changed: Log timestamp format changed to ISO format (YYYY-MM-DD HH:MM:SS)

0.9.2

  • Improved: Notice display time increased from 5 to 8 seconds for better readability
  • Changed: API test now shows Base URL instead of environment and product count
  • Improved: Code cleanup – removed unnecessary wrapper functions and dead code

0.9.1

  • Changed: Standardized all internal identifiers to use ‘elementary-pos-woocommerce’ prefix
  • Changed: Updated CSS class names for better consistency
  • Changed: Updated JavaScript handles for better consistency
  • Fixed: Plugin ID now matches the plugin slug

0.9.0

  • Added: Automatic webhook management via Elementary POS API
  • Added: Toggle switch for enabling/disabling webhook in Settings
  • Added: Real-time webhook status monitoring (healthy, warning, error, off)
  • Added: Test Status button for manual webhook verification
  • Changed: Webhook URL no longer needs manual copying – fully automated
  • Changed: Simplified webhook configuration in Settings tab
  • Improved: Better UX with visual toggle switch and status indicators
  • Improved: Automatic webhook registration on enable/disable
  • Improved: Loading state prevents visible toggle state changes

0.8.5

  • Changed: Plugin name shortened to “Elementary POS for WooCommerce”
  • Changed: Text domain updated to “elementary-pos-for-woocommerce”
  • Changed: All translations updated to new text domain
  • Fixed: Removed duplicate Author URI to comply with WordPress.org guidelines

0.8.4

  • Fixed: Plugin name compliance with WordPress.org trademark guidelines
  • Fixed: SQL query preparation for WordPress coding standards
  • Fixed: Global variable naming with proper prefixes
  • Improved: Code documentation and security comments for reviewers
  • Updated: Tested up to WordPress 6.8

0.8.3

  • Initial release candidate
  • Automatic Product Import – Import products from Elementary POS to WooCommerce with one click
  • Bidirectional Stock Sync – Keep stock levels synchronized in both directions
  • Real-time Webhooks – Instant updates when sales occur in Elementary POS
  • Automatic Order Sync – WooCommerce orders automatically update Elementary POS inventory
  • Queue System – Reliable processing with automatic retry on failures
  • Comprehensive Logging – Track all synchronization activities with detailed logs
  • Manual Controls – Full manual control over synchronization when needed
  • Dashboard with real-time statistics and quick actions
  • HPOS Compatible – Fully compatible with WooCommerce High-Performance Order Storage

Plugin Website
Visit website

Version:
0.9.18
Last Updated
March 24, 2026
Active Installs
10
Requires
WordPress 5.8
Tested Up To
WordPress 6.9.4
Requires PHP
7.4

Share Post

Join our newsletter.

Get insights into what’s happening at ChangelogWP right in your inbox. We don’t believe in spam.