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)