qoliber / m2-datapatchcreator
Installs: 713
Dependents: 4
Suggesters: 0
Security: 0
Stars: 55
Watchers: 3
Forks: 15
pkg:composer/qoliber/m2-datapatchcreator
Requires
- php: >=8.1
- qoliber/core: *
README
Magento 2 DataPatchCreator
When working with large teams, many times someone forgets to create
a data patch for a cms page, block, configuration or a product attribute.
This module allows you to create PHP Data Patch Files in Magento 2 Admin panel and export
them to PHP files which you can add to your code repositories.
Important:
This main version of the module does not work with PageBuilder to assure 2.3.x version compatibility.
If you want to make it work with PageBuilder from Magento 2.4.3 it is required to install additional composer package:
qoliber/m2-datapatchcreator-pagebuilder
Details: https://github.com/qoliber/m2-datapatchcreator-pagebuilder-compatibility
Installation
Installation is via composer
composer require qoliber/m2-datapatchcreator
After installing the packages just run:
php bin/magento setup:upgrade
Requirements:
PHP 8.1and higherMagento 2.3.xand higher
Tested on:
Magento 2.3.xOpenSourceMagento 2.4.xOpenSource
Available Data Types for data patches:
- Product Attributes (with image swatches sync)
- CMS Pages
- CMS Blocks
- Store Configuration
- more to come in future releases
How to create data patches?
You do everything in Magento 2 admin panel. :)
There are 2 ways to create Magento 2 Data Patch files:
- direct download (DEFAULT OPTION):
- for a single entity, a
PHPfile is generated - for sets of data patch files (Mass Exports), a
ZIPfile containing patch files is generated
- for a single entity, a
- local files:
- files are always created in specified location (both for single entities and mass exports)
Sync images between store copies:
Module allows images synchronization between Magento 2 store copies.
Class used to dump / fetch images needs to implement ImageSyncInterface
Default Image sync: LocalFile
- Files are copied to target location when patch file is created
- Files are copied from configured location to Magento 2
mediafolded
Adding new Image Sync Models:
Image Sync Models are passed into array of ImageSync class via DI.XML
<type name="Qoliber\DataPatchCreator\Model\ImagesSync\ImageSync"> <arguments> <argument name="syncModels" xsi:type="array"> <item name="LocalFile" xsi:type="object">Qoliber\DataPatchCreator\Model\ImagesSync\LocalFile</item> </argument> </arguments> </type>
If you want to add a new ImageSync model, just add a new element to syncModels array via di.xml
This key needs to match the store configuration set for
sync_model configuration value.
Create a plugin for SyncMethods and make sure the value field matches
array key passed in di.xml.
For example:
<type name="Qoliber\DataPatchCreator\Model\ImagesSync\ImageSync"> <arguments> <argument name="syncModels" xsi:type="array"> <item name="AmazonS3" xsi:type="object">YourVendor\YourModule\ImagesSync\AmazonS3</item> </argument> </arguments> </type>
return [ ['value' => "AmazonS3", 'label' => __('Copy images to designated folder')], ];
Setting configuration in the admin panel will make force usage of your module for images sync.
Suggested Packages:
- PageBuilder Compatibility: https://github.com/qoliber/m2-datapatchcreator-pagebuilder-compatibility