youwe / pimcore-bulkpump
Youwe Pimcore Importer
Installs: 3 198
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 11
Forks: 3
Open Issues: 0
Type:pimcore-plugin
Requires
- pimcore/core-version: ^4.3
- pimcore/installer-plugin: ^1.3
README
Version: Pimcore 4.x
Developed by: Roelf
Reference / latest developments: Roelf
Usage and examples
Click on "Product importer" on the left side. Documentation is available in the "doc" folder of this plugin.
Installation
Plugin can be installed through composer. If you have a different public web directory you have to set that in the 'config:document-root-path', otherwise you can ignore that section. Add json to your composer.json:
{
"config": {
"document-root-path": "htdocs"
},
"require": {
"youwe/pimcore-bulkpump": "^0.4.0"
},
}
Also, add these to your .gitignore:
/htdocs/plugins/PimcoreBulkpump
Plugin development
To create a new version, check out the master branch somewhere and go:
git tag 0.1.0
git push origin --tags
Documentation / list of functionalities
Pick a custom class to import CSV columns to.
o_key column mapping will be used to create the Pimcore key and to update existing objects.
If an object has an import[FieldName] function, this function will be used instead of the set[FieldName] function.
import function has 2 parameters: ($value, $all_values_for_all_fields)
###Custom filters Custom filters can be added to the project here:
/htdocs/website/models/BulkPumpFilter
Custom filters must have the same format as the native filters here:
/htdocs/plugins/BulkPump/models/BulkPump/ImportFilter/Native
###Custom import classes A completely custom import class can be used, overriding most standard functionalities:
/htdocs/website/lib/Website/BulkPump/CustomImport.php
Example of a CustomImport class:
<?php
/**
* CustomImport example
*/
namespace Website\BulkPump;
use PimcoreBulkpump\CustomImportInterface;
class CustomExample implements CustomImportInterface
{
//Create a general property to save multiple row handeling
public $importObject = true;
public function __construct($config)
{
}
/**
* Process every row
*/
public function import(&$object, array $row)
{
&object->setValue($row['value']);
//Set data in dataStore
$this->importObject->setDataStoreAttribute('tempID', 1234);
//Receive data => result in 1234
$id = $this->importObject->getDataStoreAttribute('tempID');
}
}
You must select in the GUI of the plugin, in the profile
section de Import type
to Custom
. Then there appears a addition section called Settings for import type Custom
and here you can set the custom class as followed:
\Website\Bulkpump\ImportBrands
And save the profile.
Run from commandline (CLI)
You can import CSV files by running from commandline, you can configure the profile from the interface. You could change the content of the file in the profile by changing in the following path:
/htdocs/website/var/tmp/bulk-pump
Then you can call the profile with the following command:
php pimcore/cli/console.php bulkpump:import --profileId=<profile id>
You have to change <profile id>
in the profile id you want to run. You can find the id in the GUI of the plugin. Or by running the following command:
php pimcore/cli/console.php bulkpump:list
Security
User must have this permission to use the plugin:
- plugin_bulkpump_user
Future permissions:
- plugin_bulkpump_admin
- plugin_bulkpump_import
- etc..