# agencednd/module-pimgento

> Module Pimgento for Magento 2

`composer require agencednd/module-pimgento`

Canonical URL: https://packagento.com/agencednd/module-pimgento

## At a glance

- **Vendor**: agencednd (https://packagento.com/agencednd.md)
- **Latest version**: 100.4.0 — released 2019-07-18
- **Pricing**: Free
- **Package type**: Magento 2 module
- **Status**: active, accepting new buyers

## Installation

Packagento is licence-gated, so even free packages need a licence on a project before Composer can resolve them.

1. **Sign in or create an account** at https://packagento.com/customer/account/.

2. **Add the package to your account.** Open https://packagento.com/agencednd/module-pimgento and complete the free checkout. A licence is minted automatically.

3. **Create or pick a project, then activate the licence on it.**
   - Projects represent the Magento installs you deploy to. Manage them at https://packagento.com/projects/.
   - Activate the new licence on the project you'll deploy this package to. Activation is what generates the Composer credentials scoped to that project.

4. **Add the project credentials to your Magento codebase.**

   Grab the project's public + private key from https://packagento.com/projects/ (open the project, then its Credentials tab), and add them to `auth.json`:

   ```json
   {
     "http-basic": {
       "packagento.com": {
         "username": "ppk_live_...",
         "password": "psk_live_..."
       }
     }
   }
   ```

   Add the Packagento Composer repository to `composer.json`:

   ```json
   {
     "repositories": [
       { "type": "composer", "url": "https://packagento.com" }
     ]
   }
   ```

5. **Install and apply.**

   ```bash
   composer require agencednd/module-pimgento:*
   bin/magento setup:upgrade
   bin/magento setup:di:compile
   bin/magento cache:flush
   ```

## What it does

Module Pimgento for Magento 2

## README

> This version of PIMGento2 connector will not be maintained anymore by the end of 2018.
> We kindly invite you to visit the Github repository of the new PIMGento2 (API) connector (https://github.com/Agence-DnD/PIMGento-2-API).

PIMGento2 is a Magento 2 extension that allows you to import your catalog from Akeneo CSV files into Magento.

You can discover PIMGento on the official website (https://www.pimgento.com/).

### Documentation

PIMGento complete documentation is available [here](doc/summary.md).

### Upgrade from Magento 2.1 to 2.2

Please refer to [Compatibility](doc/important_stuff/compatibility.md).

### How it works

PIMGento reads CSV files from Akeneo and insert data directly in Magento database.

In this way, it makes imports very fast and doesn't disturb your e-commerce website.

With PIMGento, you can import :
* Categories
* Families
* Attributes
* Options
* Variants (Akeneo < 2.0)
* Product Model (Akeneo >= 2.0)
* Family Variant (Akeneo >= 2.0)
* Products

### Requirements

* Akeneo PIM >= 1.3 (CE & EE)
* Magento >= 2.0 CE & EE
* Database encoding must be UTF-8

Only for MySQL LOAD DATA INFILE statement:

* Set local_infile mysql variable to TRUE
* Add "driver_options" key to Magento2 default connection configuration (app/etc/env.php)

```php
'db' =>
  array (
    'table_prefix' => '',
    'connection' =>
    array (
      'default' =>
      array (
        'host' => '',
        'dbname' => '',
        'username' => '',
        'password' => '',
        'active' => '1',
        'driver_options' => array(PDO::MYSQL_ATTR_LOCAL_INFILE => true),
      ),
    ),
  ),
```

If LOAD DATA INFILE statement is not authorized for security reasons, insertion row by row is possible.

### Installation, Configuration and Usage

If you want to know how to install, configure or use PIMGento, please check [how to...](doc/important_stuff/how_to.md) section. We advise you to start here!

### Roadmap

We have updated our roadmap. Just go [here](doc/important_stuff/roadmap.md).

### About us

Founded by lovers of innovation and design, [Agence Dn'D](https://www.dnd.fr) assists companies in the creation and development of customized digital (open source) solutions for web and E-commerce since 2004.

## Changelog

All notable changes to this project will be documented in this file.

### [100.4.0] - 2019-07-18

  * compatibility: Add Magento 2.3 compatibility
  * fix: error on getAttribute function when empty

### [100.3.4] - 2018-12-04

  * fix: error on file deletion

### [100.3.3] - 2018-05-15

  * fix: Missing call for pimgento_family_attribute_relations table
  * fix: columns added for upsell / crosssell / related links

### [100.3.2] - 2018-02-02

  * update: uploaded file timestamp

### [100.3.1] - 2018-01-12

  * update: Improved image import performance

### [100.3.0] - 2017-12-05

  * update: Sample files updated with Akeneo 2.0 demo data
  * update: Akeneo 2.0 compatibility (Product model and Variant Family)
  * update: New module for upgrade from Magento 2.1 to 2.2 added (use only for upgrade)
  * update: Magento 2.2 compatibility (compatibility preserved with previous versions)
  * update: fix magic number
  * update: fix SQL error in option import for non existing attribute

### [100.2.23] - 2017-10-25

  * update: set query number for rows insertion in configuration
  * fix : avoid warning with website matching

### [100.2.22] - 2017-09-27

  * fix: Url Key localized

### [100.2.21] - 2017-09-25

  * fix: Variant table engine for big data
  * fix: Attribute attached to a lot of families

### [100.2.20] - 2017-09-05

  * update: disabled media importation if needed

### [100.2.19] - 2017-08-30

  * update: EnhancedConnectorBundle requirement is now useless
  * fix: remove product from old categories

### [100.2.18] - 2017-07-31

  * fix: import on table with prefix
  * fix: table engine with big data

### [100.2.17] - 2017-07-21

  * fix: notice on table variable

### [100.2.16] - 2017-07-20

  * fix: URL rewrite with ignored URL key

### [100.2.15] - 2017-07-18

  * fix: incompatibility with EE staging content
  * fix: url_key erased when category url key update is set to NO

### [100.2.14] - 2017-07-05

  * fix: event names
  * fix: static values for entity
  * fix: clean System Urls Before Insertion
  * fix: category URL key increment on multi-store

### [100.2.12] - 2017-07-04

  * fix: overwriting of existing category product positions when importing products
  * fix: set Magento value data to NULL for empty Pim value

### [100.2.11] - 2017-06-29

  * fix: Generate image cache
  * fix: localized, multiselect attribute import

### [100.2.10] - 2017-06-28

  * fix: area code in CLI
  * fix: data overwritten by last language
  * fix: url rewrite suffix for product and category

### [100.2.9] - 2017-06-22

  * add: New configuration for not erase category url key on update

### [100.2.8] - 2017-06-06

  * add: channel configuration for default values

### [100.2.7] - 2017-05-30

  * fix: avoid duplicate URL key

### [100.2.6] - 2017-05-24

  * fix: channel added in url_key column

### [100.2.5] - 2017-03-17

  * fix: fix image import with staging mode

### [100.2.4] - 2017-02-21

  * fix: Error during URL rewrite updates with multiple locales

### [100.2.3] - 2017-02-21

  * fix: Integrity constraint violation when importing in a shop with multiple store views

### [100.2.2] - 2017-02-21

  * fix: Avoid error on products without family

### [100.2.1] - 2017-02-21

  * fix: avoid duplicate URL keys for categories

### [100.2.0] - 2017-02-03

  * add: code refactoring for media and related
  * add: compatibility with staging modules

### [100.1.2] - 2017-02-01

  * fix: load model import
  * fix: Use the configured category suffix instead of hardcoded.html
  * fix: Open up PHP version constraints
  * add: refactoring all the "AddPimgentoImportObserver" observers to add generic events on classname and additionnal steps
  * add: add position to media during product import
  * fix: get url suffix from config for url rewrite
  * fix: composer version in composer.json file
  * fix: error on loading import model

### [100.1.1] - 2016-11-03

_(Changelog truncated for .md surface. Full history on https://packagento.com/agencednd/module-pimgento.)_

## Recent Versions

| Version | Released |
|---|---|
| 100.4.0 | 2019-07-18 |
| 100.3.4 | 2018-12-04 |
| 100.3.3 | 2018-05-15 |
| 100.3.2 | 2018-02-02 |
| 100.3.1 | 2018-01-12 |
| 100.3.0 | 2017-12-07 |

## Dependencies

### Require

| Package | Constraint |
|---|---|
| magento/framework | >=100.0.1 |
| magento/module-backend | >=100.0.1 |
| magento/module-catalog | >=100.0.1 |
| magento/module-eav | >=100.0.1 |
| magento/module-store | >=100.0.1 |
| php | ^7.0 |

## Quality

Latest release (100.4.0) fails the Packagento QA pipeline. Verdicts below are per-cell (Magento line × PHP version) for the matrixed tools, and run-once for the static / security tiers.


### Compatibility

Each Magento line is installed on its supported PHP versions, then the module is built (DI compile + static-content deploy). Cells show passed / failed / untested; staircase gaps render as `–`.

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | not tested | not tested | – | – |
| 2.4.8 | – | not tested | not tested | – |
| 2.4.9 | – | – | not tested | not tested |


### Code Quality

Advisory checks against the module's source. Never affect the Compatibility verdict — a phpcs finding can't make a module incompatible.

#### Static Analysis

Coding standards (phpcs), mess detection (phpmd), copy-pasted code (cpd), PHP cross-version compatibility, composer.json validity. Each runs once for the whole module.

| Tool | Status | Findings | Summary |
|---|---|---|---|
| PHPCS | Fail | 715 | 30 errors, 685 warnings (ruleset: Magento2) — 508 auto-fixable with phpcbf |
| PHPMD | Warning | 45 | 45 rule violations (NPathComplexity:9, CyclomaticComplexity:8, UnusedLocalVariable:7, ExcessiveMethodLength:6, MissingImport:6) |
| Cpd | Warning | 2 | 2 duplicated chunks spanning 90 total lines (min-lines=5, min-tokens=70) |
| Composer validate | Info | 6 | valid; 6 advisory notes (composer validate --strict) |

#### PHPStan

Type-checks the module against a real Magento install. Re-runs per Magento + PHP version because resolvable symbols differ between releases.

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | N/A | N/A | – | – |
| 2.4.8 | – | N/A | N/A | – |
| 2.4.9 | – | – | N/A | N/A |


### Tests

Unit and integration suites run per Magento + PHP cell. Test failures speak to the module's behaviour, not its compatibility with a line, so they're reported here separately.

#### Unit Tests

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | N/A | N/A | – | – |
| 2.4.8 | – | N/A | N/A | – |
| 2.4.9 | – | – | N/A | N/A |

#### Integration Tests

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | N/A | N/A | – | – |
| 2.4.8 | – | N/A | N/A | – |
| 2.4.9 | – | – | N/A | N/A |


### Security

Dependency-advisory audit (composer audit) plus a source malware scan. A malware detection fails the version outright.

| Tool | Status | Findings | Summary |
|---|---|---|---|
| Composer audit | Pass | 0 |  |
| Malware scan | Pass | 0 |  |

## Licence and pricing

Free. A licence is still minted on checkout and bound to your project for Composer access — no payment step.

Refundable within 14 days of first purchase via https://packagento.com/account/refunds/.

## Install via Claude Code or any MCP client

The Packagento MCP server can run the licence + project + Composer steps above in one tool call:

```
purchase_and_install_packages(
  composer_names=["agencednd/module-pimgento"],
  project_id="proj_xxx"
)
```

This handles cart, checkout, licence minting, project activation, and writes auth.json credentials. Connect a client with `claude mcp add packagento https://mcp.packagento.com`. Full setup at https://packagento.com/docs/mcp-setup.

## Vendor

agencednd is a Magento 2 vendor on Packagento. See https://packagento.com/agencednd.md for their full catalogue.

