Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/metrotechs/ecwid2woo/archive/refs/heads/main.zipMetrotechs E2W Sync - Complete Ecwid to WooCommerce Product Migration Suite 🚀
Professional-grade WordPress plugin for seamless Ecwid to WooCommerce migration with self-optimizing batch processing, Smart Skip Technology, and advanced image preservation
Transform your e-commerce presence with the most advanced, reliable, and feature-complete Ecwid to WooCommerce product synchronization plugin available. Built by industry experts with enterprise-level architecture featuring self-healing adaptive batch sizing that automatically optimizes for your server's capabilities - no configuration required.
What's New in v1.6.2
Version 1.6.2 adds true Fast Skip behavior for repeat Full Sync runs:
- 100-Item Comparison Windows - Bulk-compares unchanged categories and products without raising the safe mutation batch
- Bulk Fingerprint Lookup - Existing mappings and source hashes are loaded once per comparison window
- Fast Read-Only Continuation - Fully unchanged windows continue after 500ms; real imports retain the server cooldown
- Exact Positional Resume - Partial scan windows preserve Ecwid source order and continuation offsets
Version 1.6.1 also includes the following production hardening:
- Safe Full Sync Scope – Full Sync preview and processing now consistently include enabled Ecwid products only
- Concurrent Sync Protection – An atomic, owner-checked catalog lock prevents overlapping mutations across tabs and administrators, with stale-lock recovery
- Deterministic Smart Skip – Product payload fingerprints replace the previous 24-hour timestamp guess and are saved only after images and variations finish successfully
- Deadline-Safe Continuation – Request-wide deadlines include Ecwid API retry time and return exact continuation offsets before the web request times out
- Safer Image Imports – Remote images use WordPress's safe HTTP client with host, response, file-size, and image validation
- Resource-Aware Variations – Low-resource servers use batches of up to 10 variations, while valid manual variation overrides are honored
- Redesigned Admin Experience – Settings and all sync pages now use responsive dashboards, clearer progress context, searchable/filterable activity, and improved controls
- Reproducible Releases – The release script packages an explicit production allowlist and writes a SHA-256 checksum next to the ZIP
See Version History for the complete release summary.
🌟 Why Choose Metrotechs E2W Sync?
The ONLY plugin that handles complete e-commerce catalog migration with enterprise recovery – Successfully tested with stores containing 6,974 products across 70+ API calls with advanced pagination and intelligent memory management.
🎯 Perfect For:
- Large Store Migrations – Handles 4500+ products with Smart Skip recovery
- Complete Catalog Migration – Products and categories in one solution
- E-commerce Agencies – Reliable client migrations with professional tools
- Store Owners – Seamless platform switching without data loss
- Developers – Enterprise-grade architecture with comprehensive debugging
- Enterprise Catalogs – Handles thousands of products with interruption recovery
✨ Key Features
🧠 Smart Skip Technology (NEW)
- Products & Categories – Smart Skip works on both product and category syncs
- Migration Recovery – Resume interrupted migrations without re-processing existing items
- Payload Fingerprints – Products skip only when the complete normalized Ecwid payload matches the last successful import
- Conservative Migration – Existing products without a fingerprint are processed once to establish reliable tracking
- Failure Safety – Fingerprints are recorded only after product images and variations finish successfully
- Debug Visibility – Comprehensive logging of skip decisions and timestamp analysis
- Enterprise Scale – Tested with 4500+ product migrations
⚡ Self-Optimizing Batch Processing (v1.5.0) + Manual Override (v1.6.0)
Enterprise-grade bidirectional adaptive sizing – Unlike typical plugins with fixed batch sizes, E2W Sync automatically adjusts to your server's real-time capabilities. No configuration needed – but power users can override if they choose.
- Manual Batch Size Override (v1.6.0) – Advanced Batch Settings in Settings page lets you set Products, Categories, and Variations batch sizes manually (1–100). Proceeds at your own risk with a persistent warning banner on all sync pages.
- Real-Time Logging – All sync pages show detailed logs as each batch processes (not just at the end)
- Bidirectional Batch Sizing – Batch size decreases on timeouts AND recovers after stable performance
- Self-Healing Recovery – After 5 successful batches, size increases by 50% (e.g., 50→75→100)
- Zero Configuration – Works optimally on shared hosting AND high-end VPS without manual tuning
- Conservative Defaults – Products start at 5-20/batch, categories at 10-50/batch based on server tier
- Batch Size Display – Current batch size shown in status: "Syncing Products: 50/1000 [batch size: 75]"
- Sync Page Parity – Full Sync, Product Sync, and Category Sync all use identical adaptive logic
- Progressive Cooldowns – Server recovery waits increase with consecutive timeouts (5s→10s→30s)
- Memory-Aware – PHP automatically reduces batch size if memory is low (<128MB free)
- 5 Retry Attempts – Up to 5 retries with batch size reduction before giving up
Example Recovery Path: 100 → [timeout] → 50 → [5 successes] → 75 → [5 successes] → 100 ✓
🛑 Stop Sync Control (v1.4.0)
- Immediate Cancellation – Stop any running bulk import operation instantly
- User Control – Cancel long-running operations without page refresh
- Smart UI – Stop buttons appear only during active imports
- Confirmation Dialogs – Prevent accidental cancellation of important operations
- AJAX Abortion – Category imports stop immediately via request cancellation
- Batch Interruption – Product imports stop cleanly between batches
- Universal Coverage – Available on both Product and Category sync pages
🔧 Enhanced Performance & Reliability (v1.3.8-1.4.8)
- Auto Server Detection – Automatically detects server resources and configures optimal batch sizes
- Server Tier System – 🚀 High (2GB+/VPS), ⚡ Medium (512MB-2GB), 🐢 Low (<512MB) with conservative defaults
- Server Crash Recovery – Handles HTTP 503 and Cloudflare 520-530 errors with 30-120s cooldown periods
- Fast Skip Optimization – Pre-loads existing Ecwid IDs in single query for 100x faster duplicate detection
- Intelligent Timeout Recovery – Detects Cloudflare 524, Gateway 504, Request 408, and jQuery timeouts
- Exponential Backoff Retry – Smart retry logic with increasing delays (3s→6s→12s) for server recovery
- Batch Loading System – Products, categories, and sync operations load in manageable batches
- Dynamic Delays – Delay between batches auto-adjusted (3-8s) based on server capability
- Progress Tracking – Real-time progress bars showing current batch and total progress
- Server Compatibility – Works on shared hosting, VPS, and dedicated servers
🔄 Complete Migration Suite
- Full Sync – Complete catalog migration with Smart Skip capabilities
- Category Sync – Independent category import with hierarchy management
- Product Sync – Selective and bulk product import with variations
- Batch Processing – Smart chunking prevents server timeouts on large catalogs
Complete Data Synchronization
- Product Information – Names, SKUs, descriptions, prices, stock levels, dimensions, weight
- Category Hierarchies – Full parent-child relationships preserved
- Product Variations – Complete support for variable products with all option combinations
- Image Management – Featured images, galleries, and variation-specific images
- Inventory Data – Stock status, quantities, and unlimited stock settings
- Category Thumbnails – Imports category images and attaches them to WooCommerce terms
- Currency Synchronization – Automatically updates WooCommerce to match your Ecwid store currency
⚡ Advanced Technical Features
- AJAX-Powered Processing – Non-blocking operations with real-time feedback
- Memory Optimization – Efficient handling of large product catalogs
- Smart Duplicate Prevention – Uses Ecwid IDs and SKU matching to avoid duplicates
- Auto-Recovery Systems – Handles API timeouts and connection issues gracefully
- Intelligent Attribute Handling – Automatically handles WooCommerce's 28-character attribute slug limits
- WordPress Standards Compliant – Follows all WordPress coding and security best practices
- Multilingual-Safe Slugs – Robust transliteration and length-limited slug generation for non‑Latin/long names while preserving original display names
🛡️ Reliability & Safety
- Stop Sync Control – Immediate cancellation capability for all operations
- Atomic Catalog Lock – Prevents overlapping sync jobs and safely recovers abandoned locks
- Exact Continuation Offsets – Deadline-limited batches resume at the first unprocessed item
- Validated Image Downloads – Restricts remote image imports by host, response type, and size before sideloading
- Comprehensive Error Handling – Detailed error reporting and recovery mechanisms
- Safe Re-syncing – Idempotent operations prevent data corruption
- Debug Integration – Works seamlessly with WordPress debug logging
📋 Requirements
Minimum Requirements
- WordPress: 5.0 or higher
- WooCommerce: 3.0 or higher
- PHP: 7.2 or higher (8.0+ recommended)
- MySQL: 5.6 or MariaDB 10.0
- Ecwid Store: Active store with API access
Recommended Environment
- WordPress: 6.0+
- WooCommerce: 7.0+
- PHP: 8.0+
- Server Memory: 512MB+ (2GB+ recommended for large catalogs with images)
- Reliable Internet: Stable connection for API operations
🚀 Installation
Via WordPress Admin (Recommended)
- Navigate to Plugins → Add New in your WordPress admin
- Click Upload Plugin and select the plugin ZIP file
- Click Install Now and then Activate
Manual Installation
- Download and unzip the plugin
- Upload the
metrotechs-e2w-syncfolder to/wp-content/plugins/ - Activate the plugin through the Plugins menu in WordPress
Post-Installation Setup
- Go to E2W Sync → Settings in your admin menu
- Enter your Ecwid Store ID and API Token
- Click Save Settings and test your connection
- You're ready to start syncing!
🔧 Getting Your Ecwid API Credentials
Step-by-Step Guide
-
Access Ecwid Control Panel
- Log into your Ecwid account
- Navigate to Apps → My Apps → API
-
Locate Your Store ID
- Your Store ID is displayed at the top of the API page
- Copy this number (it's typically 8-9 digits)
-
Generate API Token
- Click Create new token or Generate Token
- Note: Both Public and Secret tokens work – what matters are the permissions
- Ensure the token has these permissions:
- ✅ Read catalog
- ✅ Read store profile
- ✅ Read products
- ✅ Read categories
- Copy the generated token immediately (it won't be shown again)
-
Enter Credentials
- Paste both values into the plugin settings
- Click Save Settings and Test Connection
📖 Usage Guide
🏠 Settings Page
Location: E2W Sync → Settings
- Configure your Ecwid API credentials
- Test connection with visual feedback
- Advanced Batch Settings (v1.6.0) – Manually override auto-detected batch sizes for Products, Categories, and Variations. Enable the override checkbox, set your sizes (1–100), and save. A warning banner will appear on all sync pages. Use at your own risk.
- Review connection, server tier, memory, and recommended batch context in the responsive status dashboard
- Access quick navigation to all sync options
- Monitor connection status with real-time indicators
🔄 Full Sync
Location: E2W Sync → Full Sync
Perfect for: Complete store migrations or comprehensive updates
Features:
- Automatic Preview – See exactly what will be synced before starting
- Enabled Products Only – Preview and processing use the same enabled Ecwid product scope
- Two-Phase Process – Categories first, then products
- Real-time Progress – Visual progress tracking with detailed logs
- Activity Controls – Filter, search, clear, or download the activity log
- Safe Continuation – Request deadlines preserve the exact category or product offset for the next batch
- Sync Ownership – A catalog lock prevents a second tab or administrator from starting a conflicting job
- Stop Control – Cancel operation at any time
- Smart Batching – Processes data in optimized chunks
How to Use:
- Page automatically loads preview on visit
- Review categories and products to be synced
- Click Start Full Sync to begin
- Monitor progress and logs in real-time
- Use STOP SYNC if needed
📁 Category Sync
Location: E2W Sync → Category Sync
Perfect for: Setting up category structure before product import
Features:
- Batch Loading with Retry – Categories load in batches with automatic retry on 500/524 errors (v1.4.3)
- Enhanced UI Design – Professional interface with bordered information panels and status messages
- Stop Sync Control – Cancel bulk category imports instantly with confirmation dialog
- Automatic Category Loading – Categories load immediately when page opens with "📁 Category Loading Complete" confirmation
- Enhanced Debug Information – Shows API call count, total categories loaded, and detailed performance metrics
- Selective Import – Choose individual categories to import instead of all at once
- Visual Selection Interface – Enhanced checkbox design with alternating row colors and clear visual hierarchy
- Smart Selection Controls – "Select All/None" with indeterminate state and dynamic button text
- Category Information Display – Shows ID, Parent ID, and visual indicators for root vs subcategories
- Increased Timeout Handling – 120-second timeout for large category lists
- Comprehensive Logging – Debug logging shows each API call and category loading progress
- Hierarchy Preservation – Maintains parent-child relationships
- Hierarchy Fix Tool – Resolves any structural issues
- Independent Operation – Sync categories without touching products
How to Use:
- Categories automatically load when visiting the page with enhanced status display
- Click Reload Categories to refresh if needed
- Review the enhanced category list with visual indicators
- Select individual categories using the improved checkbox interface
- Use Select All/None for bulk selection with smart state indication
- Click Import Selected Categories (text dynamically updates based on selection count)
- Monitor progress with enhanced status messages and logging
- Use Fix Category Hierarchy if needed after sync
🎯 Selective Product Sync
Location: E2W Sync → Product Sync
Perfect for: Targeted imports, testing, or specific product updates
Features:
- Stop Sync Control – Cancel long-running import operations immediately with dedicated Stop Sync button
- Bulk Import All Products – Import entire product catalog with automatic batch processing (v1.4.0)
- Complete Product Loading – Handles stores with 6000+ products (tested with 6,974 products)
- Advanced Pagination – Makes 70+ API calls to load entire product catalog
- Enabled/Disabled Toggle – Separate views for enabled and disabled products
- Real-time Metrics – Shows API call count, total products loaded, and performance data
- Professional Status Panel – Comprehensive loading statistics and progress feedback
- Automatic Loading – All products load immediately when page opens
- Timeout Prevention – Ultra-small batch sizes (5 products) prevent server timeouts
- Visual Selection Interface – Enhanced checkbox design with detailed product information
Workflow:
- For Selective Import: Review the product list, select individual products using checkboxes, and click Import Selected Products
- For Bulk Import: Click Import All Products to automatically import your entire catalog in batches
- Monitor Progress: Watch real-time progress updates and detailed status messages
- Stop if Needed: Use the Stop Sync button to cancel long-running operations immediately
- Timeout Protection: Operations automatically use small batch sizes to prevent server timeouts
Placeholders Management
Location: E2W Sync → Placeholders
Purpose: Review and manage temporary placeholder items created during sync
- View placeholder categories created for missing parents
- Clean up temporary items after hierarchy fixes
- Monitor sync-related administrative data
🔧 Advanced Features
🔄 Variation Processing
- Automatic Attribute Creation – Missing WooCommerce attributes auto-generated with intelligent slug handling
- Smart Slug Management – Automatically truncates long attribute names to comply with WooCommerce's 28-character limit
- Smart Combination Mapping – Ecwid options become WooCommerce variations
- Batch Processing – Large variation sets processed in optimized chunks
- Variation-Specific Data – Individual SKUs, prices, stock, and images
🛠️ Error Handling
- Graceful Degradation – Continues processing even if individual items fail
- Detailed Error Reporting – Clear explanations of any issues encountered
- Automatic Recovery – Handles temporary API issues and timeouts
- Debug Integration – Works with WordPress WP_DEBUG for troubleshooting
🎨 User Experience
- Responsive Design – Works perfectly on desktop, tablet, and mobile
- Visual Feedback – Loading animations, progress indicators, and status messages
- Intuitive Navigation – Clear pathways between different sync options
- Accessibility – Follows WordPress accessibility guidelines
🚨 Important Notes
Before First Sync
- Backup Your Database – Always backup before running large operations
- Test Connection – Verify API credentials work correctly
- Review Preview Data – Check what will be synced before starting
- Consider Staging – Test on staging site first for large catalogs
Performance Tips
- Run Category Sync First – Establishes proper structure for products
- Use Selective Sync – For testing or specific updates
- Monitor Server Resources – Watch memory usage during large operations
- Schedule Large Syncs – Run during low-traffic periods
Troubleshooting Common Issues
"Connection Failed" Error
- Verify Store ID is correct (8-9 digits)
- Check API token has required permissions
- Ensure store is active and accessible
- Test API connection in Ecwid admin
"HTTP 403" Error
Most Common Issue: Missing API permissions
Quick Fix:
- Go to Ecwid Dashboard → Apps → My Apps → API
- Create new API token with required permissions:
- ✅ Read catalog
- ✅ Read store profile
- ✅ Read products
- ✅ Read categories
- Update plugin settings with new token
- Test connection - should show "Connection successful!"
"Memory Limit" Errors
- Increase PHP memory limit (512MB+ recommended)
- Use selective sync for large catalogs
- Run category sync separately first
- Enable debug logging to identify bottlenecks
Products Not Appearing
- Check if products are enabled in Ecwid
- Verify WooCommerce is properly configured
- Use "Fix Category Hierarchy" if needed
- Check for duplicate SKUs
🔍 Technical Specifications
API Integration
- Ecwid REST API v3 – Latest version for optimal performance
- Rate Limiting Compliance – Respects Ecwid's API rate limits
- Automatic Retries – Handles temporary connection issues
- Bulk Operations – Efficient batch processing for large datasets
WordPress Integration
- Native WP Hooks – Uses WordPress standards throughout
- WooCommerce Compatibility – Works with all major WooCommerce versions
- Multisite Support – Compatible with WordPress multisite networks
- Translation Ready – Prepared for internationalization
Security Features (v1.6.1 Enhanced)
- Sanitized Inputs – All data sanitized and validated across all sync pages
- Output Escaping – XSS prevention enforced throughout the admin interface
- Nonce Protection – CSRF protection strengthened on all AJAX endpoints and admin forms
- Capability Checks – Permission verification enforced consistently throughout the plugin
- Secure Uninstall – Uninstall routine secured against unauthorized execution
- Server-Side API Handling – The Ecwid token remains server-side and is not exposed in localized admin JavaScript
- Safe Remote Downloads – Image requests use WordPress SSRF protections plus host, content, and size validation
- Owner-Checked Sync Lock – Only the active job owner can mutate or release the catalog lock
- Idempotent Operations – Safe re-syncing with duplicate attribute prevention
- Variation Price Fallback – Intelligent price handling for variation imports
📊 Performance Benchmarks
Real-World Performance
- ⚡ Processing Speed – Up to 1,000 products per hour (including variations)
- ✅ Complete Migration Tested – 6,974 products processed successfully
- ✅ 70+ API Calls – Efficient pagination handling for large catalogs
- ✅ Memory Optimized – Processes large datasets without memory issues
- ✅ Zero Timeouts – Robust error handling and recovery
Typical Performance
- Small Store (1-100 items) – 2-5 minutes
- Medium Store (100-1000 items) – 10-20 minutes
- Large Store (1000+ items) – 20-60 minutes depending on variations
- Extra Large Store (6000+ items) – 1-6 hours depending on server specifications
Feature Performance
- Full Sync – Complete catalog import with Smart Skip optimization
- Category Sync – Handles complex hierarchies efficiently
- Product Sync – Processes variations and images with precision
- Enhanced UI – Instant loading with professional progress indicators
🎨 Enhanced Admin Interface
Professional Design
- Colorful Gradient Buttons – Modern, visually appealing navigation
- Responsive Grid Layout – Perfect display on all devices
- Consistent Styling – Professional look across all sync pages
- Real-time Status – Live progress indicators and success/error states
Navigation Improvements
- Quick Actions Dashboard – Main sync options accessible from settings
- Breadcrumb Navigation – Easy movement between sync pages
- Visual Hierarchy – Clear distinction between different sync types
- Enhanced Typography – Professional fonts and spacing
User Experience
- Auto-loading Data – Product and category data loads automatically
- Smart Progress Tracking – Real-time updates with detailed logging
- Error Prevention – Clear warnings and confirmations for destructive actions
- Accessibility Focus – Screen reader friendly and keyboard navigable
🆘 Support & Documentation
Getting Help
- Documentation: This README file
- Debug Logging: Enable WordPress debug mode for detailed logs
- Error Messages: Clear, actionable error descriptions with troubleshooting steps
- Community Support: GitHub Issues for bug reports and feature requests
Best Practices
- Always test on staging first
- Backup your database before major syncs
- Run syncs during low-traffic periods
- Monitor server resources during operations
- Use selective sync for testing new products
📈 Roadmap
Upcoming Features
- Real-time Sync – Webhook-based automatic updates
- Incremental Sync – Update only changed products
- Advanced Filtering – Enhanced filtering options for all sync types
- Scheduled Sync – Automated synchronization at specified intervals
- Multi-currency Support – Enhanced currency handling and conversion
- Import/Export Settings – Backup and restore plugin configurations
Version History
- v1.6.2 (2026-07-30) - TRUE FAST SKIP
- Bulk comparison windows scan up to 100 unchanged items per request
- New and changed items retain conservative server-tier mutation limits
- Fully unchanged windows use a 500ms continuation delay
- Positional API order preserves exact partial-window resume offsets
- v1.6.1 (2026-07-28) – PRODUCTION HARDENING
- Product payload fingerprints replace the unsafe 24-hour skip heuristic
- Atomic job locks prevent concurrent catalog mutations across tabs and administrators
- Request-wide deadlines include Ecwid API retry time and preserve exact continuation offsets
- Store currency sync runs once per full sync instead of once per batch
- Low-resource servers use 10-variation batches; manual variation overrides are now honored
- Admin output escaping, capability checks, image download validation, and public-request loading are hardened
- Settings, Full Sync, Category Sync, and Product Sync now use the redesigned responsive dashboard interface
- Duplicate category-import handling was removed and admin assets now use file-based cache busting
- Production ZIPs are built from an explicit allowlist with a SHA-256 checksum
- v1.6.0 (2026-02-23) – SHARED HOSTING PERFORMANCE & MANUAL BATCH CONTROL
- 🎛️ Manual Batch Size Override – New "Advanced Batch Settings" in Settings page for manual control of Products, Categories, and Variations batch sizes (1–100)
- ⚠️ Risk Warning Banner – Persistent warning displayed on all sync pages when manual override is active, with direct link to settings
- 🔒 Safety Cap – Manual batch sizes hard-capped at 100; adaptive timeout recovery remains active as safety net
- 🛡️ CPU Yield After Image Sideload – 250ms breathing room after thumbnail generation prevents server overload
- 🎯 Targeted Cache Clearing – Replaced full cache flushes with surgical per-product cache invalidation
- ⏱️ PHP Worker Protection – Capped set_time_limit to 300s to prevent indefinitely locked workers
- 💾 Cache Suspension During Imports – Suspended object cache additions during batch loops to reduce memory/CPU waste
- 🔥 HTTP 503 Recovery – 503 Service Unavailable now triggers full server-down recovery with cooldown and batch reduction
- 📊 Conservative Server Tiers – Raised tier thresholds (Low <512MB, Medium 512MB-2GB, High 2GB+/VPS) to prevent CPU overload on shared hosting
- 📉 Reduced Batch Sizes – Products default to 5-20/batch (was 10-50), categories to 10-50/batch (was 15-100), with longer delays between batches
- v1.5.2 (2026-02-22) – VARIATION & ATTRIBUTE FIXES
- 🎯 Default Displayed Price on Variations – Fallback to
defaultDisplayedPricefield when price is missing - ✅ Skip Duplicate Attributes on Re-import – Idempotent attribute creation prevents duplicates during re-syncs
- 🎯 Default Displayed Price on Variations – Fallback to
- v1.5.1 (2026-02-21) – SECURITY HARDENING
- Input sanitization improvements across all sync pages
- Output escaping hardened to prevent XSS vulnerabilities
- Nonce verification strengthened on all AJAX endpoints
- Capability checks enforced consistently throughout the plugin
- Uninstall routine secured against unauthorized execution
- v1.5.0 (2025-12-18) – SELF-OPTIMIZING BATCH PROCESSING
- 🔄 Bidirectional Batch Sizing – Decreases on timeouts AND recovers after stable performance
- 📈 Self-Healing Recovery – Batch size increases by 50% after 5 consecutive successes (e.g., 10→15→20)
- ⚡ Real-Time Logging – All sync pages show detailed logs as each batch processes
- 📊 Batch Size Display – Current batch size shown in status: "[batch size: 75]"
- 🎯 Zero Configuration – Works optimally on shared hosting AND high-end VPS
- 📦 Auto-Tuned Batch Defaults – Batch sizes auto-configured per server tier
- 🎯 Sync Page Parity – Full Sync, Product Sync, Category Sync all use identical adaptive logic
- ⏳ Progressive Cooldowns – Server recovery waits increase with timeouts (5s→10s→30s)
- 💾 Memory-Aware Batching – PHP auto-reduces batch size if memory low (<128MB free)
- 🏗️ Parent-First Sorting – Categories sorted so parents process before children
- 🌳 Topological Sort – Breadth-first traversal ensures parent categories exist first
- 🔗 Auto-Fix Orphaned Children – Orphans re-parented when parent is imported
- 📝 Next Step Messaging – Shows what sync step is coming next
- 🔍 Variation SKU Validation – Properly identifies variations from same product
- 🐛 Category Nesting Fix – Deep nested categories now import correctly
- v1.4.0 (2025-12-16) – SERVER INTELLIGENCE & PAUSE/RESUME
- ⏸️ Pause/Resume Sync – Pause and resume from exact position including variation queue
- 💻 Auto Server Detection – Detects server resources and adjusts batch sizes
- 🔥 Server Down Recovery – Handles Cloudflare 520-530 errors with extended cooldowns
- 🚀 Fast Skip Optimization – 100x faster duplicate detection with single SQL query
- 🎯 Server Tier System – 🚀 High (2GB+), ⚡ Medium (512MB-2GB), 🐢 Low (<512MB) with conservative defaults
- 🔍 System Diagnostics – Memory, disk space, WooCommerce stats panel
- v1.3.0 (2025-09-02) – STOP SYNC & STABILITY
- 🛑 Stop Sync Button – Cancel running product and category imports instantly
- 📦 Bulk Import Fix – Batch processing handles 6756+ products
- 🖼️ Gallery Image Fix – Fixed with correct API field mapping
- 🏷️ Plugin Renamed – "Metrotechs E2W Sync" for WordPress compliance
- v1.2.0 (2025-09-01) – SMART SKIP TECHNOLOGY
- 🧠 Smart Skip Technology – 70-90% time savings when restarting large migrations
- 🛡️ Image Preservation – Existing product images preserved during re-import
- 🎨 Enhanced UI – Professional interface improvements
- v1.1.0 (2025-08-30) – COMPLETE PRODUCT LOADING
- 📦 6000+ Products – Handles stores with thousands of products
- 🔄 Pagination Engine – Makes 70+ API calls to load entire catalog
- ✅ Tested at Scale – 6,974 products across 70+ API calls
- v1.0.5 (2025-07-22) – 500 error resolution, SKU conflict handling
- v1.0.4 (2025-06-28) – Client-side pagination, browser freezing fix
- v1.0.3 (2025-06-10) – UI fixes, memory leak fixes
- v1.0.2 (2025-05-25) – Multilingual slugs, category thumbnails
- v1.0.1 (2025-04-30) – Activation fixes, PHP 7.2+ compatibility
- v1.0.0 (2025-04-15) – Initial release with core sync functionality
📄 License
This plugin is licensed under the GPL v2 or later.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
🤝 Contributing
We welcome contributions! Please feel free to submit issues, feature requests, or pull requests.
Development Setup
-
Clone the repository
-
Set up a local WordPress/WooCommerce environment
-
Install the plugin in development mode
-
Enable WordPress debug logging
-
Run the source-level regression suites:
Get-ChildItem tests\*.test.js | ForEach-Object { node $_.FullName } -
Validate PHP and JavaScript syntax:
Get-ChildItem -File *.php | ForEach-Object { php -l $_.FullName } Get-ChildItem assets\js\*.js, tests\*.test.js | ForEach-Object { node --check $_.FullName } git diff --check -
Build a production ZIP and matching SHA-256 checksum:
.\scripts\build-release.ps1Release artifacts are written to
dist/. The package excludes tests, scripts, Git metadata, and internal implementation notes.
🌟 Show Your Support
If this plugin has helped your business, please consider:
- ⭐ Starring the repository
- 🐛 Reporting bugs and issues
- 💡 Suggesting new features
- 📢 Spreading the word
Built with ❤️ by Metrotechs for the WordPress community
Transform your e-commerce journey with confidence.