# Changelog ## [Unreleased] - Change Service\AbstractImport to return Result rather than array ($result->getData()) - Automation. Add system to allow setting up automated services ## [1.8.32] - 2023-11-30 ### [Fixed] - Fixed a trailing comma in MiscTest which caused a PHP 7.4 syntax error. ## [1.8.31] - 2023-11-29 ### [Fixed] - Fixed issue where 'attribute' would be removed if '#attribute' was also included in export. ### [Tests] - Added tests to ensure mismatched columns can be imported. ## [1.8.30] - 2023-11-29 ### [Fixed] - Fixed issue where option labels were saved in a CSV format for a multiselect product attribute rather than the option IDs. This returned an array with empty values. These are now ignored and empty values will not be returned. ## [1.8.29] - 2023-11-28 ### [Fixed] - Fixed issue where image URLs containing spaces were converted to + signs, which didn't always work in Apache. ## [1.8.28] - 2023-11-24 ### [Fixed] - Changed array_filter on options export to only filter out NULL values. ## [1.8.27] - 2023-11-21 ### [Fixed] - Removed sort_order from options. This is now implied by array item order. ## [1.8.26] - 2023-11-20 ### [Added] - Added import/export for custom options for products. ## [1.8.25] - 2023-09-12 ### [Fixed] - Fixed issue when importing using builder (CSV) where empty values were ignored. For EAV imports, empty values now result in the value being deleted. ## [1.8.24] - 2023-08-08 ### [Fixed] - Fixed error with 'available_shipping_methods' attribute added by Mageworx module. This stores attribute options in an odd format (value is an array of options) which cannot be exported. This fix stops options like these being included in the export. ## [1.8.22] - 2023-07-11 ### [Fixed] - Fixed exception when exporting via CLI using simple builder but mainTable not set. ### [Added] - Added --limit=N option to CLI export to limit records ### [Changed] - Changed filtering columns in CLI export that usually use range. If only 1 filter is given then this uses equals rather than a range. To specify a range, specify 2 values. ## [1.8.20] - 2023-06-22 ### [Changed] - Changed Boolean import to convert true|false boolean values correctly. ## [1.8.19] - 2023-05-23 ### [Changed] - Allow redirects in import file URLs. - Log URL key generation duplicate errors and continue with import. ## [1.8.18] - 2023-04-27 ### [Fixed] - Fixed bad constant reference for array label separator. ## [1.8.17] - 2023-04-27 ### [Added] - Importing -1 as the parent_id for a category sets it to the stores root category ID ### [Changed] - Changed UiComponent helper dependency on Layout class to a Proxy ### [Fixed] - Fixed CLI command bug where import failed when using short name as command. ### [Removed] - Removed error message when no IDs imported but IDs deleted. ## [1.8.16] - 2023-04-27 ### [Fixed] - undefined $this->tableNameProvider variable name when using simple import - CSV reader bug where trailing "0" values from row where converted to NULL. - CLI importing using Simple import missing table name ### [Changed] - Name and descriptions for Simple builders. ## [1.8.15] - 2023-04-25 ### [Fixed] - Import issue that caused broken transactions and some data not being saved. - Allowed file extension detection in product images. ### [Changed] - Tests now rely only on internal images so can be run without external network connection. ## [1.8.14] - 2023-04-17 ### [Fixed] - Fixed console command return types. ## [1.8.10] - 2023-04-17 ### [Changed] - Changed MediaGallery column handler error to report row ID if exception occurs. - Added try catch around each import handler's import call. This modifies exception message to include handlerId and row ID and then throws exception again. ## [1.8.9] - 2023-04-14 ### [Changed] - Specifying an ID in an import that does not exist no longer stops the whole import. Instead it logs an error, skips that row and moves onto the next row. ## [1.8.8] - 2023-04-13 ### [Changed] - Wrapped MediaGallery column handler in a try catch. This stops a 404 image URL from stopping the entire import. Instead a warning is displayed after the import has finished. ## [1.8.7] - 2023-04-12 ### [Changed] - Centralised array implosion for builders. This means it happens in a single place (column handler) rather than in each different place its required (eg. OutputMinifier, CLI commands etc). ## [1.8.5] - 2023-04-11 ### [Added] - Added test for file uploading. This checks that files with the same name are uploaded with new filenames to ensure fresh data is imported. - Added our own File\Uploader class that is Noninterceptable. - bin/magento fishpig:flow:clean This cleans up old temp files in var/flow - Added User agent to CURL requests. ## [1.8.4] - 2023-04-10 ### [Changed] - Stopped 404 images from stopping the import from proceeding. Now a warning is raised ### [Added] - Added Import\Result to store result rather than array. This is partial currently, as it returns an array so is still in the same format ## [1.8.3] - 2023-04-09 ### [Changed] - Changed the core HTTP\ClientInterface and related classes to a Flow specific version. This allows for fixing an issue where a URL contains an unencoded space and CURL won't make the HTTP request for it and returns CURL error 3 (MALFORMED). - Added tests for new HTTP\ClientInterface ## [1.8.2] - 2023-04-07 ### [Fixed] - Image URLs that contain unencoded spaces. - Uncaught exception when invalid or no builder ID specified in Admin. ### [Changed] - Allow 301 and 302 status codes when downloading files. ## [1.8.0] - 2023-04-05 ### [Added] - Ability to import ZIP files that contain a CSV file. - Ability to import from URLs. ### [Fixed] - Cast float to string for use in array keys in AbstractExportBuilder. ## [1.7.1] - 2023-04-04 ### [Fixed] - Backwards compatibility with older versions of Symfony Console. ## [1.7.0] - 2023-04-03 ### [Added] - Profile ID option to export CLI command (--profile=123) - Category filters when exporting product categories. ### [Changed] - Improved import/export of category_ids and #category_ids field for products. ### [Fixed] - Reverted Admin CSS to previous working version. ## [1.6.0] - 2023-03-22 ### [Added] - Added PHP 8.2 support. ## [1.5.1] - 2023-03-20 ### [Changed] - Added exception handling to the attribute list for EAV exports. This stops uninstalled source models throwing fatal exceptions. ## [1.5.0] - 2023-02-09 ### [Added] - Added support for media_gallery product attribute. This allows you to pipe separate images (eg. /a/b/abc.png|/d/e/def.jpg). You can also specify extra data using JSON: /a/b/abc.png{"label":"This is the label"}|/d/e/def.jpg ## [1.4.2] - 2023-02-03 ### [Fixed] - Return type error triggered when EAV\Attribute\Source has to create an option ID ## [1.4.1] - 2023-01-31 ### [Fixed] - Undefined $arrayManager in FishPig\Flow\Builder\DataProvider\Modifier ## [1.4.0] - 2023-01-31 ### [Added] - MediaImage column handler. This will auto download images from their URLs and validate the data as an image. - Added new tests for CSV and file compilation. - Added tests for builders - Added Helper\Pool and moved all Helpers into here. ## [Changed] - Changed Context objects to use a single context object through the whole module. ## [1.3.3] - 2023-01-27 ### [Changed] - Added the array label separator '||'. This can be used to separate array labels during import. ## [1.3.2] - 2023-01-27 ### [Changed] - Changed export preview to send data in JSON format. Data is also minified. Preview is then built using JS. This reduces data transfer and seems to help previewing large exports. - Arrays joined using comma in export ## [1.3.1] - 2023-01-26 ### [Added] - Added ServiceHandler for profiles. This is only used for debugging. ## [1.3.0] - 2023-01-26 ### [Added] - Added the SimpleExport and SimpleImport services and builders. This allows the selection of any DB table to export and then import. This opens up the entire Magento DB to import/export, in a generic way. ## [1.2.6] - 2023-01-24 ### [Fixed] - Fixed issue with source attributes that use strings as their value, rather than int. Typecasting to int is now removed from the value column. ## [1.2.5] - 2023-01-24 ### [Fixed] - Saving columns to an export profile that had no filter (ie. were text based) did not save. ## [1.2.4] - 2023-01-21 ### [Fixed] - Fixed last_executed_at so this is set when export profile is executed. ## [1.2.3] - 2023-01-20 ### [Fixed] - Modified the way the JS detects if the export download window is displayed so that it can correctly close the loading mask. ## [1.2.2] - 2023-01-20 ### [Fixed] - Fixed bug that caused an empty array item filter to be applied when no filter was selected for certain attributes - Fixed UI component error on import builder ### [Changed] - Cleaned up json data storage to use filterBuilder::build. This ensures all saved filter data is uniform at all stages. ## [1.2.0] - 2023-01-20 ### [Added] - Ability to change order of fields in export. This can be saved to a profile. - Ability to delete saved export profiles. ## [1.1.0] - 2023-01-19 ### [Added] - Added export profiles. ## [1.0.7] - 2022-12-21 ### [Fixed] - Fixed reference to Test dir. This is now Tests. ## [1.0.4] - 2022-10-12 ### [Fixed] - Fixed compilation error by changing Builder pool to a Proxy object in CLI commands. ## [1.0.3] - 2022-10-12 ### [Fixed] - CategoryExportBuilder store type issue. ## [1.0.2] - 2022-10-12 ### [Changed] - Changed Category product link ID from links to link. ## [1.0.1] - 2022-10-12 ### [Removed] - Removed legacy interface that broke compilation.