falconmedia/magento2-product-data-sync

Safe, repeatable, multi-store product data synchronization between products

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 5

Watchers: 0

Forks: 1

Open Issues: 0

Type:magento2-module

pkg:composer/falconmedia/magento2-product-data-sync

1.2.0 2026-01-27 09:46 UTC

This package is auto-updated.

Last update: 2026-01-27 10:04:30 UTC


README

A powerful Magento 2 module for safely synchronizing product data between products with support for multi-store configurations, attribute filtering, and comprehensive logging.

Features

  • Multi-Store Support: Sync product data across multiple store views with three modes:

    • All for target: Sync only to default store and target product's stores
    • All from source: Link all source stores to target and copy all overridden attributes
    • Specific: Sync to a specific store view
  • Profile-Based Configuration: Create reusable sync profiles with:

    • Custom attribute selection
    • Protected attributes (never synced)
    • Sync behavior settings (skip empty, fill empty only, etc.)
    • Store scope behavior configuration
    • Execution settings (batch size, max pairs per run)
  • Safe Attribute Handling:

    • Automatically skips global attributes when syncing to store views
    • Skips unique attributes (SKU, URL key, etc.) in store views
    • Detects and skips attributes that use default values to prevent constraint violations
    • Validates image file existence before syncing
  • Comprehensive Logging:

    • Detailed run history with success/failure tracking
    • Per-item logging with store view information
    • Custom log file: var/log/product-data-sync.log
    • Detailed error messages with stack traces
  • Dry Run Support: Validate product pairs before actual sync

  • Run History: Track all sync operations with detailed results

  • Batch Processing: Process large product sets efficiently

Requirements

  • Magento 2.4.x
  • PHP 8.1, 8.2, or 8.3
  • MySQL/MariaDB

Installation

Via Composer

composer require falconmedia/magento2-product-data-sync
bin/magento setup:upgrade
bin/magento cache:clean

Manual Installation

  1. Copy the module to app/code/FalconMedia/ProductDataSync or add as a package
  2. Run:
bin/magento setup:upgrade
bin/magento cache:clean

Usage

Creating a Sync Profile

  1. Navigate to Catalog > Product Data Sync > Profiles admin menu
  2. Click Add New Profile admin menu
  3. Configure:
    • Profile Name: Descriptive name for the profile
    • Attributes: Select which attributes to sync
    • Protected Attributes: Attributes that should never be synced (default: SKU, entity_id, type_id, attribute_set_id)
    • Sync Behavior: Configure how to handle empty values
    • Store Scope Behavior: How to handle store-scoped attributes
    • Execution Settings: Batch size and limits admin menu

Syncing Products

  1. Navigate to Catalog > Product Data Sync > Sync Products
  2. Select a Profile
  3. Choose Stores Mode:
    • All for target: Sync to default + target product's stores
    • All from source: Link all source stores and copy overridden attributes
    • Specific: Sync to a specific store view

admin menu 4. Add product pairs (Source SKU → Target SKU)

  • Click on Add Row to add an extra row
  • You can copy two rows from a spreadsheet and paste it through Paste from Clipboard
  • You can upload a comma separeted CSV file through Upload CSV

admin menu

  1. Click Validate to check pairs, Dry Run to test, or Run Sync to execute

Viewing Run History

  1. Navigate to Catalog > Product Data Sync > Run History
  2. View all sync runs with status, item counts, and duration
  3. Click View to see detailed results per product pair
  4. To see the changes of the attributes click on the button Show synced attributes to execute the same sync again Run History

View Run History

View synced attributes

Configuration

Store Scope Behavior

  • Per Store: All attributes saved with selected store context
  • Global: Global attributes saved on store 0, store attributes with selected store
  • Inherit: Use attribute's own scope setting

Sync Behavior

  • Skip Empty Source: Don't copy attributes with empty source values
  • Only Fill Empty Target: Only copy if target attribute is empty

Logging

All sync operations are logged to var/log/product-data-sync.log with:

  • Start/end of sync operations
  • Product loading details
  • Attribute processing results
  • Detailed error information with stack traces
  • Skipped attributes with reasons

Troubleshooting

Unique Constraint Violations

If you encounter unique constraint violations:

  • The module automatically skips attributes that use default values
  • Check the log file for detailed information about which attributes are skipped
  • Ensure you're not trying to sync global attributes to store views

License

Copyright (c) 2026 Falcon Media (https://www.falconmedia.nl/) See LICENSE file for details.

Support

For issues, questions, or contributions, please open an issue on GitHub.

Author

Falcon Media