mercantor

plugin

1.2.0 • public • Published 4 hours ago

Seamlessly sync your WooCommerce products to Google Merchant Center with real-time updates, multilingual support, and automatic error handling.

google adsgoogle shoppingmerchant centerproduct feedwoocommerce

Description

Mercantor is a powerful WordPress plugin that automatically syncs your WooCommerce products to Google Merchant Center, making it easy to advertise on Google Shopping and Google Ads.

Key Features

  • Automatic Product Sync - Products are automatically synced to Google Merchant Center when created or updated
  • Real-time Change Detection - Hash-based diffing only syncs changed products, saving API quota
  • Multilingual & Multi-currency Support - Full support for WPML, Polylang, TranslatePress, and WooCommerce Multilingual
  • Multiple Target Markets - Sell to multiple countries with different languages and currencies
  • Smart Error Handling - Diagnostics inbox with grouped Google issues and actionable messages
  • Transformation Rules - Map and transform attributes with a rule builder and presets
  • Product Feed Export - Generate tokenized XML and CSV feeds for external tools
  • Scheduled Sync - Configure automatic hourly, twice daily, daily, or weekly sync schedules
  • Product Identifier Management - Track GTIN, MPN, and Brand coverage with bulk import functionality
  • GTIN Bulk Import - Import product identifiers via CSV with SKU or product ID matching
  • Background Processing - All syncing happens in the background using WordPress Action Scheduler
  • OAuth 2.0 Integration - Secure Google account connection
  • Guided Setup Wizard - Step-by-step configuration to get you started quickly
  • WP-CLI Tools - Sync, validate, and fetch diagnostics from the command line

Perfect For

  • E-commerce stores using WooCommerce
  • Multi-language and multi-currency stores
  • International sellers with multiple target markets
  • Stores that need reliable Google Shopping integration
  • Merchants who want automated product feed management

Requirements

  • WordPress 6.5 or higher
  • WooCommerce 8.5 or higher
  • PHP 8.1 or higher
  • Google Merchant Center account

Documentation & Support

Installation

  1. Upload the mercantor folder to the /wp-content/plugins/ directory
  2. Activate the plugin through the 'Plugins' menu in WordPress
  3. Navigate to 'Mercantor' in the WordPress admin menu
  4. Follow the setup wizard to connect your Google Merchant Center account
  5. Configure your target markets and languages
  6. Start syncing products!

From WordPress.org

  1. Go to Plugins > Add New
  2. Search for "Mercantor"
  3. Click "Install Now" and then "Activate"
  4. Follow the setup wizard

Frequently Asked Questions

Can I export product feeds?

Yes, you can generate tokenized XML and CSV feed URLs for external tools.

Can I sync to multiple countries?

Yes, you can configure multiple target countries and languages in the settings.

Do I need a Google Merchant Center account?

Yes, you need an active Google Merchant Center account to use this plugin.

Does this work with multisite?

Currently, Mercantor is designed for single-site installations.

Does this work with variable products?

Yes, Mercantor fully supports variable products and will sync all variations.

Is my Google account secure?

Yes, we use OAuth 2.0 for secure authentication. Your credentials are never stored.

What happens if a product has errors?

Mercantor will show you detailed error messages with suggested fixes in the Issues Inbox.

Screenshots

Dashboard with sync statistics and real-time updates

Dashboard with sync statistics and real-time updates

Setup wizard for easy configuration

Setup wizard for easy configuration

Manual sync with real-time progress tracking

Manual sync with real-time progress tracking

Product feed URL generation

Product feed URL generation

Changelog

1.2.0

  • IMPROVED: Batch processing for product sync - eliminates memory issues on large catalogs
  • IMPROVED: Atomic batch upsert in ItemsDAO - resolves N+1 query performance bottleneck
  • IMPROVED: Paginated product queries with configurable batch size
  • IMPROVED: Extracted ContainerBuilder for cleaner plugin architecture
  • IMPROVED: Refactored sync_single_product into smaller, testable methods
  • IMPROVED: Immutable product transformation - prevents unintended DTO mutation
  • IMPROVED: React admin UI uses Context API instead of prop drilling
  • IMPROVED: Setup wizard fully typed - removed all unsafe any casts
  • IMPROVED: Accessible UI - ARIA labels for progress bars, keyboard-navigable issues inbox, semantic wizard stepper
  • IMPROVED: OAuth token encryption uses OPENSSL_RAW_DATA with graceful fallback
  • FIX: Transient-based polling replaced with direct status reads in SyncOrchestrator
  • FIX: get_pending_jobs_count() now correctly returns int instead of array
  • FIX: JSON decode errors handled gracefully in MerchantApiClient
  • FIX: PHP version requirement unified to 8.1 across all configuration files
  • FIX: empty(0) bug in ProductValidator price check
  • FIX: Memory leak from missing interval cleanup in IssuesInbox
  • FIX: Stale closure in SyncProgress resolved with useRef
  • FIX: Unsafe CSV parsing replaced with proper delimiter handling
  • FIX: Raw SQL in SyncController replaced with DAO pattern
  • FIX: Dead code removed from SyncOrchestrator
  • NEW: Error boundaries for React admin UI with graceful recovery
  • NEW: GitHub Actions CI/CD pipeline (PHP 8.1-8.3 matrix, frontend lint & build)
  • NEW: Pre-commit hooks via Husky and lint-staged
  • NEW: PHPStan level 6 static analysis with WordPress extension
  • NEW: Integration tests for ProductTransformer and ProductValidator

1.1.0

  • NEW: Scheduled Sync - Configure automatic sync schedules (hourly, twice daily, daily, weekly)
  • NEW: Product Identifier Manager - Dashboard widget showing GTIN, MPN, Brand coverage
  • NEW: GTIN Bulk Import - Import product identifiers via CSV with SKU or product ID matching
  • NEW: Missing Identifiers Tab - Quickly find and edit products missing GTINs, MPNs, or Brands
  • NEW: Inline Identifier Editing - Edit product identifiers directly from the dashboard
  • NEW: Identifier Export - Export all product identifiers to CSV
  • IMPROVED: Action Scheduler integration for reliable background processing
  • IMPROVED: Better error handling and user feedback
  • FIX: SyncScheduler now correctly handles invalid interval values

1.0.0

  • Initial release
  • Automatic product sync to Google Merchant Center
  • OAuth 2.0 Google account connection
  • Multilingual and multi-currency support
  • Real-time change detection
  • Background job processing with Action Scheduler
  • Comprehensive error diagnostics
  • Manual sync with progress tracking
  • Product feed export (XML/CSV)
  • Guided setup wizard

Upgrade Notice

1.0.0

Initial release of Mercantor.

1.1.0

New features: Scheduled Sync, Product Identifier Manager with GTIN Bulk Import, Missing Identifiers tracking, and Inline Editing.

1.2.0

Performance and stability release: batch sync processing, N+1 query fix, improved encryption, accessible UI, PHPStan static analysis, and CI/CD pipeline. Fixes several edge-case bugs including memory leaks, stale closures, and price validation.

Credits

Built with ❤️ for the WordPress and WooCommerce community.

External Services

Mercantor connects to Google services that you explicitly authorize in order to publish and monitor your Merchant Center listings.

Google Merchant Center API

  • Endpoint: https://merchantapi.googleapis.com
  • Purpose: Creates, updates, and inspects Google Merchant Center product listings on your behalf.
  • Data sent: Product identifiers, titles, descriptions, image URLs, pricing, availability, shipping settings, and other product attributes required by Google. Customer or order information is never transmitted.
  • When data is sent: During the guided connection flow and whenever automated or manual sync jobs run.
  • Authentication: OAuth 2.0 using the https://www.googleapis.com/auth/content scope. Access and refresh tokens are stored securely in your WordPress database and can be revoked from the Mercantor settings page.
  • Terms of Service: https://policies.google.com/terms
  • Privacy Policy: https://policies.google.com/privacy

Privacy Policy

Mercantor connects to the Google Merchant Center API only after you complete the OAuth consent flow inside the plugin. We transmit product catalog data (titles, descriptions, pricing, availability, images, and required attributes) so your listings stay in sync with Google. Customer, order, and analytics data are never sent. OAuth credentials are stored in the WordPress options table using secure WordPress APIs and can be revoked at any time through Mercantor → Settings → Disconnect Google.
On uninstall, Mercantor drops its custom database tables and deletes its options (including OAuth tokens, feed tokens, and setup data) so no plugin data is retained.

Roadmap / Upcoming

  • Stricter Content Security Policy (CSP) rollout for the admin app
  • Opt-in telemetry with diagnostics export bundle (logs, payload samples, system info)
  • Scheduled health checks and automated diagnostics refresh
  • In-product fix recipes and support macros for top Merchant Center errors
  • Optional GA4 tracking toggle with consent-mode compatibility