PHPackages                             falconmedia/magento2-product-data-sync - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. falconmedia/magento2-product-data-sync

ActiveMagento2-module

falconmedia/magento2-product-data-sync
======================================

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

1.2.0(3mo ago)921OSL-3.0PHPPHP ^8.1 || ^8.2 || ^8.3

Since Jan 22Pushed 3mo agoCompare

[ Source](https://github.com/falconmedia/magento2-product-data-sync)[ Packagist](https://packagist.org/packages/falconmedia/magento2-product-data-sync)[ RSS](/packages/falconmedia-magento2-product-data-sync/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (6)Versions (6)Used By (0)

Magento 2 Product Data Sync
===========================

[](#magento-2-product-data-sync)

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

Features
--------

[](#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
------------

[](#requirements)

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

Installation
------------

[](#installation)

### Via Composer

[](#via-composer)

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

### Manual Installation

[](#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
-----

[](#usage)

### Creating a Sync Profile

[](#creating-a-sync-profile)

1. Navigate to **Catalog &gt; Product Data Sync &gt; Profiles**[![admin menu](assets/admin-menu.jpg?raw=true)](assets/admin-menu.jpg?raw=true)
2. Click **Add New Profile**[![admin menu](assets/profiles.jpg?raw=true)](assets/profiles.jpg?raw=true)
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](assets/profile-create.jpg?raw=true)](assets/profile-create.jpg?raw=true)

### Syncing Products

[](#syncing-products)

1. Navigate to **Catalog &gt; Product Data Sync &gt; 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](assets/sync-products-specific.jpg?raw=true)](assets/sync-products-specific.jpg?raw=true)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](assets/sync-products-target-stores.jpg?raw=true)](assets/sync-products-target-stores.jpg?raw=true)

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

### Viewing Run History

[](#viewing-run-history)

1. Navigate to **Catalog &gt; Product Data Sync &gt; 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](assets/run-history.jpg?raw=true)](assets/run-history.jpg?raw=true)

[![View Run History](assets/run-history-view.jpg?raw=true)](assets/run-history-view.jpg?raw=true)

[![View synced attributes](/assets/run-history-view-attributes.jpg?raw=true)](/assets/run-history-view-attributes.jpg?raw=true)

Configuration
-------------

[](#configuration)

### Store Scope Behavior

[](#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

[](#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
-------

[](#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
---------------

[](#troubleshooting)

### Unique Constraint Violations

[](#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
-------

[](#license)

Copyright (c) 2026 Falcon Media () See LICENSE file for details.

Support
-------

[](#support)

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

Author
------

[](#author)

**Falcon Media**

- Website:
- Email:

###  Health Score

40

—

FairBetter than 88% of packages

Maintenance80

Actively maintained with recent releases

Popularity10

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

5

Last Release

104d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0ab506c6fbf58517ea41c5959be2ea46d89f403438433c6eb6042afcfd0b7c94?d=identicon)[falconmedia](/maintainers/falconmedia)

---

Top Contributors

[![henkvalk](https://avatars.githubusercontent.com/u/8955854?v=4)](https://github.com/henkvalk "henkvalk (10 commits)")

### Embed Badge

![Health badge](/badges/falconmedia-magento2-product-data-sync/health.svg)

```
[![Health](https://phpackages.com/badges/falconmedia-magento2-product-data-sync/health.svg)](https://phpackages.com/packages/falconmedia-magento2-product-data-sync)
```

###  Alternatives

[mollie/magento2

Mollie Payment Module for Magento 2

1121.6M10](/packages/mollie-magento2)[smile/elasticsuite

Magento 2 merchandising and search engine built on ElasticSearch

8044.5M33](/packages/smile-elasticsuite)[dotdigital/dotdigital-magento2-extension

Dotdigital for Magento 2

50374.2k18](/packages/dotdigital-dotdigital-magento2-extension)[swissup/module-search-mysql-legacy

Legacy mysql search for magento 2.4

10483.0k](/packages/swissup-module-search-mysql-legacy)[opengento/module-category-import-export

This module add the capability to import and export the categories from the back-office.

119.1k](/packages/opengento-module-category-import-export)[loki/magento2-admin-components

N/A

151.6k5](/packages/loki-magento2-admin-components)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
