PH2M_Logistic
Manage your imports / exports., (*1)
Requirements
Magento >= 2.1.0, (*2)
Installation
composer config repositories.firegento_extendedimport2 vcs https://github.com/firegento/FireGento_ExtendedImport2
composer require ph2m/logistic
bin/magento module:enable FireGento_FastSimpleImport FireGento_ExtendedImport PH2M_Logistic
bin/magento setup:upgrade
Console commands
You can launch the imports by typing the following commands:, (*3)
# Products import
bin/magento logistic:import:products
# Stocks import
bin/magento logistic:import:stocks
Launch tests
vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist vendor/ph2m/logistic
To do list
- [ ] Complete unit tests
- [ ] Add WS connection type
Add another import
The following steps are for a new import class but they are the same for an export one. Just use export class/folders instead., (*4)
- Create a class which extends the
PH2M\Logistic\Model\Import\AbstractImport class
- In this class, add a
code variable
- Add in your
system.xml these configurations (replace <code> by your code variable value):
-
<code>_enable: a select with a Magento\Config\Model\Config\Source\Yesno source model
-
<code>_path: a text field
-
<code>_file_pattern: a text field
-
<code>_archive_path: a text field
- If necessary, override the
columnsToIgnore variable to ignore some columns
- If necessary, override the
columnsToRename variable to rename some header columns to real product attributes codes:
```
/**
- @var array
*/
protected $columnsToRename = [
'columnFromFile' => 'newColumnName'
];
```
- If necessary, override the
columnsFixedValue variable to add some fixed values (attribute set if it's not defined in your CSV file for example)
Add a custom object import
If you want to import a custom object (stores from a store locator for example), override the _launchImporter method in your import class.
This method should return an array which has a success and a message (in case of error) value., (*5)
Add another export
- Create a class which extends the
PH2M\Logistic\Model\Export\AbstractExport\ class
- In this class, add a
code variable
- If you don't want to create a file for each exported object, set the
createAFileForEachObject variable to false
- Override
_getFileName function to set the export file name
- Override
_initObjectsToExport function to return the objects to export
- Add in your
system.xml these configurations (replace <code> by your code variable value):
-
<code>_enable: a select with a Magento\Config\Model\Config\Source\Yesno source model
-
<code>_path: a text field
- XML files are not supported at the moment, if you want to export as XML you have to override the
_exportObjects function and send an empty header to _createAndSendFile
Local import
Local import must be placed in /var directory. You can next setup your import and archive paths like in the distant imports., (*6)
Licence
GNU General Public License, version 3 (GPLv3), (*7)
Troubleshooting
This file does not contain any data.
I have seen this issue because I was trying to import a product attribute which had a code in camel case, ie MyAttribute. Replace it by my_attribute.
It can also happen if your data has a bad format, ie you're trying to import an array as value., (*8)
Special thanks
Special thanks to Firegento and all contributors to the FastSimpleImport extension!, (*9)