clickandmortar/advanced-csv-connector-bundle

Advanced CSV Connector for Akeneo


README

Advanced CSV Connector is an extension of classic Akeneo CSV Connector. It allows to customize columns mapping on import or export.

Made with đź’™ by C&M

Versions

Optional

You can use php-lua package to update your values dynamically during import or export. For LUA scripts available functions and libraries have been limited for security reasons. You can use:

  • string
  • math
  • ipairs
  • load
  • next
  • pairs
  • rawequal
  • rawgetwget
  • rawlen
  • rawset
  • select
  • tonumber
  • tostring
  • type

This package is not a requirement. A classic PHP method can also be used.

Installation

Download the Bundle

Update your composer.json file to use our fork of Custom entity bundle in repositories node:

"repositories": [
        ...
        {
            "type": "vcs",
            "url": "https://github.com/ClickAndMortar/CustomEntityBundle"
        }
        ...
    ],

And add our bundle:

$ composer require "clickandmortar/advanced-csv-connector-bundle":"<version-wanted>.*"

Example for last version:

$ composer require "clickandmortar/advanced-csv-connector-bundle":"7.0.*"

Enable the Bundle

Enable the bundle by adding it to the list of registered bundles in the config/bundles.php file of your project:

<?php

return [
    // ...
    Pim\Bundle\CustomEntityBundle\PimCustomEntityBundle::class => ['all' => true],
    ClickAndMortar\AdvancedCsvConnectorBundle\ClickAndMortarAdvancedCsvConnectorBundle::class => ['all' => true]
];

Update your config/routes/routes.yml file:

pim_customentity:
        prefix: /reference-data
        resource: "@PimCustomEntityBundle/Resources/config/routing.yml"
        
candm_advanced_csv_connector:
    prefix: /candm-advanced-csv-connector
    resource: "@ClickAndMortarAdvancedCsvConnectorBundle/Resources/config/routing.yml"

And finally clear cache and update database:

rm -rf var/cache/*
php bin/console --env=prod pim:installer:assets --symlink --clean
yarn run webpack
php bin/console doctrine:schema:update --force

Usage

Import

To create a new import mapping, go to Référenciel / Mappings d'import and click on Create top right button. You can add as many mapping lines as you want by clicking on Ajouter une ligne.

Some explanations for table columns:

  • Attribut (mandatory): Attribute code in your Akeneo project (you can use suffixes like -fr_FR or -EUR for locales, channels, currencies, ...)
  • Nom de la colonne (mandatory): Column name in your file to import
  • Transformation: LUA script name or PHP method name to update value after mapping. Example: Uppercase, lowercase, ... (you can create a new LUA script under RĂ©fĂ©renciel / Scripts LUA).
  • Valeur par dĂ©faut: Default value for attribute if empty data in file
  • Identifiant (mandatory): Used to defined main identifier attribute of product
  • Uniquement Ă  la crĂ©ation: Set attribute value only if product is new (checked with identifier attribute)
  • Effacer si null: Remove key from item mapping if value is null
  • Supprimer: Click on this cell to delete mapping line

Once mapping is saved, go to Imports part and create a new job with type Import des produits avancé (CSV). After job creation, go to edition mode and update Mapping parameter in global parameters tab.

Export

To create a new export mapping, go to Référenciel / Mappings d'export and click on Create top right button. You can add as many mapping lines as you want by clicking on Ajouter une ligne.

Some explanations for table columns:

  • Attribut (mandatory): Attribute code in your Akeneo project (you can use suffixes like -fr_FR or -EUR for locales, channels, currencies, ...)
  • Nom de la colonne (mandatory): Column name in your file to export
  • Valeur forcĂ©e: Force a value (erase given attribute value from Akeneo)
  • Transformation: LUA script name or PHP method name to update value after mapping. Example: Uppercase, lowercase, ... (you can create a new LUA script under RĂ©fĂ©renciel / Scripts LUA)
  • Utiliser le libellĂ©: Boolean to get the label associated to the code given (for attribute options or custom entities)
  • Langue: Select a specific locale for the label to export (linked to Utiliser le libellĂ© column)
  • Longueur max.: Integer use to shorten attribute value if necessary
  • Valeur par dĂ©faut: Default value for column if empty attribute value
  • Supprimer: Click on this cell to delete mapping line

Once mapping is saved, go to Exports part and create a new job with type Export des produits avancé (CSV). After job creation, go to edition mode and update Mapping parameter in global parameters tab.