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)