Code Monkey home page Code Monkey logo

techdivision / import-cli-simple Goto Github PK

View Code? Open in Web Editor NEW
68.0 20.0 17.0 8.99 MB

This the meta package for Pacemaker Community, a Symfony based CLI application that provides import functionality for products, categories, attributes, and attribute-sets. The default format is CSV, adapters for XML are also available. The application can be declaratively extended by additional operations, which can be used to reassemble and execute the existing functionalities according to project-specific requirements. But also completely new commands can be integrated quickly and easily via dependency injection.

Home Page: https://pacemaker.techdivision.com

License: MIT License

PHP 88.62% Gherkin 11.16% Shell 0.22%
magento import products categories csv commandline attributes pacemaker cli

import-cli-simple's Introduction

import-cli-simple's People

Contributors

amenk avatar david-fuehr avatar deiserh avatar kenza-ya avatar mardl avatar pathmissing avatar sydekumf avatar vadimjustus avatar wagnert avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

import-cli-simple's Issues

attribute add-update fails to update storefront labels

Describe the bug
In [Usage] (https://docs.m2if.com/37/getting-started/usage) the shortcut add:update seems referred to apply only to product (function description is about product catalogue and sku)
but testing ALSO with attribute:import this kind of add-update seems to be also present in attribute:import
(First issue: maybe ad addendum to the doc may better describe this functionality)

We can APPEND new values in the attribute list, with the corresponding language labels.
BUT seems the add:update CANNOT update the labels for the attribute label in the storefront for other languages.

To Reproduce
I enclose the two examples I made to add-update the basic attribute "manufacturer" (that is part of the basic Magento2 install), in two steps.

  1. The firs csv appended new attribute values in requested languages, AND updated the storefront label for said languages. (from Manufacturer to Brand , for all languages)
  2. The second csv appended the new attribute value (e.g. Pelikan) but FAILED to update the Italian manufacturer storefront label from "Brand" to "Marchio"

bin/import-cli-simple.phar import:attributes add-update

https://drive.google.com/file/d/1Doh8olGvHMt3xEfpQkyeHDCXyB1b_Sfm/view?usp=sharing
https://drive.google.com/file/d/1jOn-oBv-Ej1AIsm9vMPpaKUsHrlonO5-/view?usp=sharing

Expected behavior
The italian label for manufacturer should change to "Marchio" after the second attribute:import

Screenshots
https://drive.google.com/file/d/14nVno9h1BUVDnto1Rs5RoTBCf3tZh3b3/view?usp=sharing

Desktop (please complete the following information):

  • OS: ubuntu 18.04
  • Browser [e.g. chrome, safari]
  • Magento 2.3.5p1
    -M2IF 3.8.16

Issues with convert in 3.8.11

Describe the bug
I cannot find documentation anywhere on how to use the convert shortcut for attributes, https://docs.m2if.com/38/getting-started/usage#shortcuts. I tried the following.

vendor/bin/import-simple import:create:ok-file && vendor/bin/import-simple import:attributes -- convert

And received this error: Can't find any plugins for shortcut "convert"

I installed through composer, so I have all the libraries. What am I missing?

What I am actually trying to do is get it to generate an attribute template file for me. Then I can start filling in the rest of the information.

To Reproduce
Steps to reproduce the behavior:

  1. Upload a product import CSV.
  2. Run the following command.
    vendor/bin/import-simple import:create:ok-file && vendor/bin/import-simple import:attributes -- convert

Expected behavior
I expected an attribute CSV to be generated.

Environment

  • Magento Open Source 2.3.3
  • PHP 7.3
  • techdivision/import-cli-simple 3.8.11

Integrity constraint violation: 1062 Duplicate entry for key 'URL_REWRITE_REQUEST_PATH_STORE_ID'

Describe the bug
When importing product CSV containing a mix of new and existing products, I continue to get the following error on new products. I have confirmed the request path does not exist in the url_rewrite table.

Integrity constraint violation: 1062 Duplicate entry for key 'URL_REWRITE_REQUEST_PATH_STORE_ID' when executing SQL "INSERT

If I delete all products in Magento and then run the product import, I do not receive this error.

To Reproduce
Steps to reproduce the behavior:

  1. Upload product CSV.
  2. Run vendor/bin/import-simple import:create:ok-file && vendor/bin/import-simple import:products.
  3. See error

Environment
Magento 2.3.3 CE
PHP 7.3
techdivision/import-cli-simple 3.8.21

What is wrong with my CSV?

./bin/import-cli-simple.phar import:create:ok-file --configuration=./magento2/m2if/import-cli-simple/vendor/techdivision/import-category/etc/techdivision-import.json
Successfully written OK file /var/www/magento_2.3.3/var/importexport/category-import.ok

./bin/import-cli-simple.phar --verbose import:categories
Now start import with serial e00d6bc3-8a1b-424b-998f-afecfb76c5bc [catalog_category => add-update]
[2019-12-04 21:14:40] logger/system.INFO: Now start import with serial e00d6bc3-8a1b-424b-998f-afecfb76c5bc [catalog_category => add-update] {"memory_peak_usage":"10 MB"}
[2019-12-04 21:14:40] logger/system.INFO: Now start processing file /var/www/magento_2.3.3/var/importexport/e00d6bc3-8a1b-424b-998f-afecfb76c5bc/category-import_20190608-114344_01.csv {"memory_peak_usage":"12 MB"}
[2019-12-04 21:14:40] logger/system.INFO: Successfully processed file /var/www/magento_2.3.3/var/importexport/e00d6bc3-8a1b-424b-998f-afecfb76c5bc/category-import_20190608-114344_01.csv with 2 lines in 0.000423 s {"memory_peak_usage":"12 MB"}
[2019-12-04 21:14:40] logger/system.INFO: Now start processing file /var/www/magento_2.3.3/var/importexport/e00d6bc3-8a1b-424b-998f-afecfb76c5bc/category-create_20190608-114344_01.csv {"memory_peak_usage":"14 MB"}
[2019-12-04 21:14:40] logger/system.INFO: Successfully processed file /var/www/magento_2.3.3/var/importexport/e00d6bc3-8a1b-424b-998f-afecfb76c5bc/category-create_20190608-114344_01.csv with 2 lines in 0.011114 s {"memory_peak_usage":"14 MB"}
[2019-12-04 21:14:40] logger/system.INFO: Now start processing file /var/www/magento_2.3.3/var/importexport/e00d6bc3-8a1b-424b-998f-afecfb76c5bc/category-path_20190608-114344_01.csv {"memory_peak_usage":"14 MB"}
[2019-12-04 21:14:40] logger/system.INFO: Successfully processed file /var/www/magento_2.3.3/var/importexport/e00d6bc3-8a1b-424b-998f-afecfb76c5bc/category-path_20190608-114344_01.csv with 2 lines in 0.001208 s {"memory_peak_usage":"14 MB"}
[2019-12-04 21:14:40] logger/system.INFO: Now start processing file /var/www/magento_2.3.3/var/importexport/e00d6bc3-8a1b-424b-998f-afecfb76c5bc/category-url-rewrite_20190608-114344_01.csv {"memory_peak_usage":"14 MB"}
[2019-12-04 21:14:40] logger/system.INFO: Successfully processed file /var/www/magento_2.3.3/var/importexport/e00d6bc3-8a1b-424b-998f-afecfb76c5bc/category-url-rewrite_20190608-114344_01.csv with 2 lines in 0.001677 s {"memory_peak_usage":"14 MB"}
[2019-12-04 21:14:40] logger/system.INFO: Found 5 files to archive in directory /var/www/magento_2.3.3/var/importexport/e00d6bc3-8a1b-424b-998f-afecfb76c5bc {"memory_peak_usage":"14 MB"}
[2019-12-04 21:14:40] logger/system.INFO: Successfully archived imported files to /var/www/magento_2.3.3/var/importexport/archive/e00d6bc3-8a1b-424b-998f-afecfb76c5bc.zip! {"memory_peak_usage":"14 MB"}
Successfully finished import with serial e00d6bc3-8a1b-424b-998f-afecfb76c5bc in 0.102054 s
[2019-12-04 21:14:40] logger/system.INFO: Successfully finished import with serial e00d6bc3-8a1b-424b-998f-afecfb76c5bc in 0.102054 s {"memory_peak_usage":"14 MB"}

Danke im voraus!

cat

csv_1.txt
csv_2.txt

Not mapped entity ID for SKU in variants_

Hi @wagnert, I ran a very simple CSV with only 2 configurable products and confirmed there were no hidden characters in the beginning of the file. When I ran the import, I get a new error message, but still about SKUs.

Found not mapped entity ID for SKU in file variants_20200616-000000_03.csv on line 2 in column(s) variant_parent_sku

A record is being created in catalog_product_entity, but it is missing a sku. Some debugging shows the Lexer is picking up the skus from the CSV.

TechDivision\Import\Adapter\Goodby\Lexer::parse (117) line = array ( 0 => 'sku', 1 => 'product_type', 2 => 'product_websites', 3 => 'gift_message_available', 4 => 'product_online', 5 => 'visibility', 6 => 'tax_class_name', 7 => 'is_in_stock', 8 => 'name', 9 => 'attribute_set_code', 10 => 'categories', 11 => 'configurable_variations', ) TechDivision\Import\Adapter\Goodby\Lexer::parse (117) line = array ( 0 => 'HR-TEST-04', 1 => 'configurable', 2 => 'base', 3 => '2', 4 => '1', 5 => 'Catalog, Search', 6 => 'Taxable Goods', 7 => '1', 8 => 'HR Configurable Test Product 04', 9 => 'Default', 10 => 'SHOP/KC Gear/KC Apparel', 11 => 'sku=72021,pim_lenscolor=|sku=72011,pim_lenscolor=', )
I traced the rows through TechDivision\Import\Adapter\Goodby\Interpreter::interpret and confirmed the sku is still in the data before and after notify(). This is called repeatedly. It appears once the variant process/subject is entered, that is when the sku goes missing.

`TechDivision\Import\Product\Variant\Observers\VariantSuperLinkObserver::process (80) ColumnKeys::VARIANT_PARENT_SKU=variant_parent_sku, parentSku =''

vendor/techdivision/import-product-variant/src/Observers/VariantSuperLinkObserver.php(87): TechDivision\Import\Product\Variant\Observers\VariantSuperLinkObserver->mapSku(NULL)`

Here is the CSV I'm working with.
product-import_20200616-000000_03.zip

Product price is not validated

Describe the bug
We have cases with products that do not contain a price in the default scope. Those products are imported without issues. I think it would be good to validate that the price is not empty since it is a required field in Magento.

To Reproduce
Steps to reproduce the behavior:

  1. Create a CSV with an empty price field
  2. Import the CSV

Expected behavior
The import stops with an validation error.

System:

  • OS: Ubuntu 20.04
  • Version: 4.1.2

Import path isn't set to magento root directory

Hello,

Executing the import command outside of the root directory of magento throws the error that no import csv's could be found.
The importand csv is generated in MAGENTO_ROOT/var/pacemaker/import. The importer looks inside of of the directory executed for a "var" directory and even adding it e.g. executed in /var/www/ a new "var" folder is generated with the pacemaker path inside.
Executing it inside the magento root works just fine. But working with builds and releases is an issue.

To Reproduce
Steps to reproduce the behavior:

  1. cd /var/www/
  2. Execute the import command
  3. Importer starts and outputs-> No Csv files found in var/pacemaker/import
  4. No Import occures

Used Version

techdivision 4.2.3
Magento: 2.4.6-p3

Remote images via url

Hi Tim,
thanks for your valuable support. AS you said that we will upload the images directly to folder and put the images relative path in csv file. but if we have remote images then what procedure we will adopt.

Thanks & Regards,
Zia

Undefined `sourceDir` when combining --installation-dir with --configuration-dir options

When invoking an attribute import with the following command

vendor/bin/import-simple import:attributes \
  --source-dir=project/import/tmp/ \
  --installation-dir=project/src \
  --configuration=path/to/configuration-file/techdivision-import.json

The import fails with the following notice/error

[27-Nov-2018 15:12:17 Europe/Berlin] PHP Notice:  Undefined variable: sourceDir in /Users/wagnert/Workspace_Idea/eglo/project/src/vendor/techdivision/import-cli-simple/src/ConfigurationLoader.php on line 176
[27-Nov-2018 15:12:17 Europe/Berlin] PHP Stack trace:
[27-Nov-2018 15:12:17 Europe/Berlin] PHP   1. {main}() /Users/wagnert/Workspace_Idea/eglo/project/src/vendor/techdivision/import-cli-simple/bin/import-simple:0
[27-Nov-2018 15:12:17 Europe/Berlin] PHP   2. require() /Users/wagnert/Workspace_Idea/eglo/project/src/vendor/techdivision/import-cli-simple/bin/import-simple:2
[27-Nov-2018 15:12:17 Europe/Berlin] PHP   3. require() /Users/wagnert/Workspace_Idea/eglo/project/src/vendor/techdivision/import-cli-simple/bin/import-simple.php:54
[27-Nov-2018 15:12:17 Europe/Berlin] PHP   4. TechDivision\Import\Cli\Application->run($input = *uninitialized*, $output = *uninitialized*) /Users/wagnert/Workspace_Idea/eglo/project/src/vendor/techdivision/import-cli-simple/bootstrap.php:39
[27-Nov-2018 15:12:17 Europe/Berlin] PHP   5. TechDivision\Import\Cli\Application->doRun($input = *uninitialized*, $output = *uninitialized*) /Users/wagnert/Workspace_Idea/eglo/project/src/vendor/symfony/console/Application.php:117
[27-Nov-2018 15:12:17 Europe/Berlin] PHP   6. TechDivision\Import\Cli\Application->doRunCommand($command = *uninitialized*, $input = *uninitialized*, $output = *uninitialized*) /Users/wagnert/Workspace_Idea/eglo/project/src/vendor/symfony/console/Application.php:185
[27-Nov-2018 15:12:17 Europe/Berlin] PHP   7. TechDivision\Import\Cli\Command\ImportAttributesCommand->run($input = *uninitialized*, $output = *uninitialized*) /Users/wagnert/Workspace_Idea/eglo/project/src/vendor/symfony/console/Application.php:835
[27-Nov-2018 15:12:17 Europe/Berlin] PHP   8. TechDivision\Import\Cli\Command\ImportAttributesCommand->execute($input = *uninitialized*, $output = *uninitialized*) /Users/wagnert/Workspace_Idea/eglo/project/src/vendor/symfony/console/Command/Command.php:245
[27-Nov-2018 15:12:17 Europe/Berlin] PHP   9. Symfony\Component\DependencyInjection\ContainerBuilder->get($id = *uninitialized*, $invalidBehavior = *uninitialized*) /Users/wagnert/Workspace_Idea/eglo/project/src/vendor/techdivision/import-cli-simple/src/Command/AbstractImportCommand.php:102
[27-Nov-2018 15:12:17 Europe/Berlin] PHP  10. Symfony\Component\DependencyInjection\ContainerBuilder->createService($definition = *uninitialized*, $inlinedDefinitions = *uninitialized*, $id = *uninitialized*, $tryProxy = *uninitialized*) /Users/wagnert/Workspace_Idea/eglo/project/src/vendor/symfony/dependency-injection/ContainerBuilder.php:467
[27-Nov-2018 15:12:17 Europe/Berlin] PHP  11. TechDivision\Import\Cli\ConfigurationLoader->load() /Users/wagnert/Workspace_Idea/eglo/project/src/vendor/symfony/dependency-injection/ContainerBuilder.php:903

Integrity constraint violation in catalog_product update

logger/system.ERROR: SQLSTATE[23000]:
  Integrity constraint violation: 1452 Cannot add or update a child row:
  a foreign key constraint fails (`magento`.`catalog_product_entity_text`, 
  CONSTRAINT `CATALOG_PRODUCT_ENTITY_TEXT_ROW_ID_CATALOG_PRODUCT_ENTITY_ROW_ID` 
  FOREIGN KEY (`row_id`) REFERENCES `catalog_product_entity` (`row_id`) ON )
when executing SQL
INSERT INTO catalog_product_entity_text
    (row_id,
     attribute_id,
     store_id,
     value)
VALUES (14,
     75,
     1,
     'The new description goes here')

... in file <file>.csv on line <line>

Magento 2.3.3 EE and M2IF 3.8 using minimal csv file with below headers:

sku,product_type,attribute_set_code,store_view_code,description,color,categories

and two rows with all details same except store_view_code (varies by locale) and description (varies by locale too)

in first import it works fine. but with same dataset if i change the description and import again, there is an error as shown above.

Events on Subjects not working

Listeners on Subjects level are not recognized.

"listeners": [ { "subject.artefact.header.row.process.start": [ "import.listener.validate.header.row" ] } ]

Please take a look in AbstractSubject where the EventName is generated.

protected function getEventName($eventName) { return sprintf( '%s.%s.%s.%s', $this->getConfiguration()->getPluginConfiguration()->getOperationConfiguration()->getName(), $this->getConfiguration()->getPluginConfiguration()->getId(), $this->getConfiguration()->getId(), $eventName ); }

GraphNavigator Error on Database Configuration

/**
 * The DB password to use.
 *
 * @var string
 * @Type("string")
 * @Exclude(if="context.getDirection() === 1")
 */
protected $password;

will fail on the GraphNavigator because there is no expressionExclusionStrategy set.

Integrity constraint violation: 1048 Column 'sku' cannot be null

Describe the bug
When importing a CSV containing configurable products, I continue to get the following error. I have confirmed sku is being set in the CSV file.

Integrity constraint violation: 1048 Column 'sku' cannot be null when executing SQL "INSERT INTO inventory_source_item (source_code, sku, quantity, status) VALUES (default, , 0, 1)" in file inventory-msi_20200616-000000_04.csv on line 2

Shouldn't the inventory be skipped for configurable products since inventory is maintained on the simples instead?

To Reproduce
Steps to reproduce the behavior:

  1. Upload product CSV.
  2. Run vendor/bin/import-simple import:create:ok-file && vendor/bin/import-simple import:products.
  3. See error

Expected behavior
I expected inventory to be skipped for configurable products. If a record is needed, I expected the sku from the CSV to be used.

Environment
Magento 2.3.3 CE
PHP 7.3
techdivision/import-cli-simple 3.8.21

Importing additional attributes in specific fields fails

Describe the bug
A clear and concise description of what the bug is.
Creating a csv file with additional attributes each on specific coloumn, makes m2if import fails

To Reproduce
Steps to reproduce the behavior:

  1. Created one CSV, and validate it with Magento2 import validation
    https://drive.google.com/file/d/1s2Phz17y__V_omecN57581myjoaOks1o/view?usp=sharing
  2. copy the csv file in m2root/var/importexport
  3. create the ok file with m2if and then import products
  4. try to import the csv file, but the program claims it is not possible

Expected behavior
the file shoud be imported as in Magento2 import

Screenshots
https://drive.google.com/open?id=1DtbZyfMqsUHCcry6Dp2K_yZQZvyEI_Zz

Desktop (please complete the following information):
I’m using ubuntu 18.04 + PHP 7,2 + Apache2 + M2IF phar v3,8,0 + Magento 2.3.5p1

command sequence

giuliano@firenze:/var/www/penstore$ bin/import-cli-simple.phar import:create:ok-file

_______        _     _____  _       _     _
|__   __|      | |   |  __ \(_)     (_)   (_)
  | | ___  ___| |__ | |  | |___   ___ ___ _  ___  _ __
  | |/ _ \/ __| '_ \| |  | | \ \ / / / __| |/ _ \| '_ \
  | |  __/ (__| | | | |__| | |\ V /| \__ \ | (_) | | | |
  |_|\___|\___|_| |_|_____/|_| \_/ |_|___/_|\___/|_| |_|

Now start import with serial 1235d2da-1c57-441f-aa7d-2a6e21db68c7 [none => create-ok-files] 
+--------------------------------+-------+----------------------------------------------------------------------------------+
| Variable                       | Value | Description                                                                      |
+--------------------------------+-------+----------------------------------------------------------------------------------+
| innodb_flush_log_at_trx_commit | 1     | Your setting for may result in a significantly slower performance. Consider to s |
|                                |       | witch this value to 0 or 2 to improve performance. Read more about that topic on |
|                                |       | the MySQL website https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html |
|                                |       | #sysvar_innodb_flush_log_at_trx_commit.                                          |
+--------------------------------+-------+----------------------------------------------------------------------------------+
Successfully executed command import:create:ok-file with serial 1235d2da-1c57-441f-aa7d-2a6e21db68c7 in 00:00:00 s 

giuliano@firenze:/var/www/penstore/var/importexport$ ls -al

totale 12
drwxrwsrwx  2 www-data www-data   71 mag  8 15:27 .
drwxrwsrwx 12 www-data www-data  336 mag  8 15:28 ..
-rw-r--r--  1 giuliano www-data 2864 mag  7 21:34 magento_bag_3.csv
-rw-r--r--  1 giuliano www-data   17 mag  8 15:27 magento_bag.ok
-rw-r--r--  1 giuliano www-data  809 mag  8 15:27 system.log

giuliano@firenze:/var/www/penstore$ bin/import-cli-simple.phar import:products

_______        _     _____  _       _     _
|__   __|      | |   |  __ \(_)     (_)   (_)
  | | ___  ___| |__ | |  | |___   ___ ___ _  ___  _ __
  | |/ _ \/ __| '_ \| |  | | \ \ / / / __| |/ _ \| '_ \
  | |  __/ (__| | | | |__| | |\ V /| \__ \ | (_) | | | |
  |_|\___|\___|_| |_|_____/|_| \_/ |_|___/_|\___/|_| |_|

Now start import with serial 230a2cc8-a532-40d0-92b9-5bc21385ec48 [catalog_product => add-update] 
+--------------------------------+-------+----------------------------------------------------------------------------------+
| Variable                       | Value | Description                                                                      |
+--------------------------------+-------+----------------------------------------------------------------------------------+
| innodb_flush_log_at_trx_commit | 1     | Your setting for may result in a significantly slower performance. Consider to s |
|                                |       | witch this value to 0 or 2 to improve performance. Read more about that topic on |
|                                |       | the MySQL website https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html |
|                                |       | #sysvar_innodb_flush_log_at_trx_commit.                                          |
+--------------------------------+-------+----------------------------------------------------------------------------------+
Stop processing, because can't find the mandatory OK file to process at least one of 1 files 

MSI Import does not update quantities in stock

Describe the bug
I am having a strange issue with the standalone msi-import. The import itself is working but the quantity in the "stock view" of magento is not updating.

To Reproduce
Steps to reproduce the behavior:

  1. Execute the command import:products:inventory:msi
  2. Open your database tool and open table "inventory_source_item" and check a imported entity
  3. The imported values in the table are correct
  4. Open your database tool and open generated view for stock (in my case "inventory_stock_1") and search for the sku of the importet product -> see the value is not updated.

Sidenote
The strangest thing is, if the csv file (from pacemaker generated) is imported directly with the magento import in the backend, everything works as expected! And another Problem which is maybe related, if only products are imported the saleable quantity is also 0 for all imported products. Even if no stock is imported.

Expected behavior
The stock view should also update.

Screenshots
image

Additional context
Add any other context about the problem here.

Tech specs

  • magento 2.4.5-p1
  • php 8.1
  • mariadb 10.4
  • pacemaker community version
  • version of module techdivision/import is 17.3.8 , version of techdivision/import-cli-simple is 12.1.1 version of module techdivision/import-cli-simple is 4.2.3
  • indexer is on asynchron

Can't use import:create:configuration-file

I tried to dump a configuration file to kick-off my import project. But it does not work with the current version:

$ vendor/bin/import-simple --version
Pacemaker - Community Console Tool 4.1.2

$ vendor/bin/import-simple import:create:configuration-file --dest=.temp/techdivision-import.json

Fatal error: Uncaught TypeError: Argument 1 passed to JMS\Serializer\JsonSerializationVisitor::__construct() must be of the type int, object given, called in [...]/vendor/techdivision/import-cli/src/Command/ImportCreateConfigurationFileCommand.php on line 99 and defined in [...]/vendor/jms/serializer/src/JsonSerializationVisitor.php:29
Stack trace:
#0 [...]/vendor/techdivision/import-cli/src/Command/ImportCreateConfigurationFileCommand.php(99): JMS\Serializer\JsonSerializationVisitor->__construct()
#1 [...]/vendor/techdivision/import-cli/src/Command/AbstractSimpleImportCommand.php(92): TechDivision\Import\Cli\Command\ImportCreateConfigurationFileCommand->executeSimpleCommand()
#2 [...]/vendor/symfony/console/Command/Command.php in [...]/vendor/jms/serializer/src/JsonSerializationVisitor.php on line 29

$ composer info jms/serializer
name     : jms/serializer
[...]
versions : * 3.17.1
[...]

I could make it work by replacing JsonSerializationVisitor with JsonSerializationVisitorFactory, as just not passing the strategy object resulted in another error later in that method.

Attribute Import fails when invoking `add-update` after `replace` operation

Attribute Import (using sample data) fails, when invoking add-update after a replace operation with the following message:

  [TechDivision\Import\Exceptions\WrappedColumnException]                                                                                                                                                                                                         
  SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0-443' for key 'EAV_ATTRIBUTE_OPTION_SWATCH_STORE_ID_OPTION_ID' in file projects/sample-data/tmp/9ab96cbe-35e0-4a52-8811-e10a1a799d9b/attribute-import_20170428-124902_01.csv on line 8  
  [PDOException]                                                                                                                          
  SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0-443' for key 'EAV_ATTRIBUTE_OPTION_SWATCH_STORE_ID_OPTION_ID' 

Stack Trace:

PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0-443' for key 'EAV_ATTRIBUTE_OPTION_SWATCH_STORE_ID_OPTION_ID' in /Users/wagnert/Workspace/import-cli-simple/vendor/techdivision/import/src/Actions/Processors/AbstractBaseProcessor.php:157
Stack trace:
#0 /Users/wagnert/Workspace/import-cli-simple/vendor/techdivision/import/src/Actions/Processors/AbstractBaseProcessor.php(157): PDOStatement->execute(Array)
#1 /Users/wagnert/Workspace/import-cli-simple/vendor/techdivision/import/src/Actions/AbstractAction.php(182): TechDivision\Import\Actions\Processors\AbstractBaseProcessor->execute(Array, NULL)
#2 /Users/wagnert/Workspace/import-cli-simple/vendor/techdivision/import/src/Actions/AbstractAction.php(169): TechDivision\Import\Actions\AbstractAction->create(Array)
#3 /Users/wagnert/Workspace/import-cli-simple/vendor/techdivision/import-attribute/src/Services/AttributeBunchProcessor.php(753): TechDivision\Import\Actions\AbstractAction->persist(Array, NULL)
#4 /Users/wagnert/Workspace/import-cli-simple/vendor/techdivision/import-attribute/src/Observers/AttributeOptionSwatchObserver.php(145): TechDivision\Import\Attribute\Services\AttributeBunchProcessor->persistAttributeOptionSwatch(Array)
#5 /Users/wagnert/Workspace/import-cli-simple/vendor/techdivision/import-attribute/src/Observers/AttributeOptionSwatchObserver.php(70): TechDivision\Import\Attribute\Observers\AttributeOptionSwatchObserver->persistAttributeOptionSwatch(Array)
#6 /Users/wagnert/Workspace/import-cli-simple/vendor/techdivision/import-attribute/src/Observers/AbstractAttributeImportObserver.php(55): TechDivision\Import\Attribute\Observers\AttributeOptionSwatchObserver->process()
#7 /Users/wagnert/Workspace/import-cli-simple/vendor/techdivision/import/src/Subjects/AbstractSubject.php(791): TechDivision\Import\Attribute\Observers\AbstractAttributeImportObserver->handle(Object(TechDivision\Import\Attribute\Subjects\OptionSubject))
#8 [internal function]: TechDivision\Import\Subjects\AbstractSubject->importRow(Array)
#9 /Users/wagnert/Workspace/import-cli-simple/vendor/techdivision/import/src/Adapter/Goodby/Interpreter.php(149): call_user_func(Array, Array)
#10 /Users/wagnert/Workspace/import-cli-simple/vendor/techdivision/import/src/Adapter/Goodby/Interpreter.php(135): TechDivision\Import\Adapter\Goodby\Interpreter->delegate(Array, Array)
#11 /Users/wagnert/Workspace/import-cli-simple/vendor/techdivision/import/src/Adapter/Goodby/Interpreter.php(74): TechDivision\Import\Adapter\Goodby\Interpreter->notify(Array)
#12 /Users/wagnert/Workspace/import-cli-simple/vendor/techdivision/import/src/Adapter/Goodby/Lexer.php(110): TechDivision\Import\Adapter\Goodby\Interpreter->interpret(Array)
#13 /Users/wagnert/Workspace/import-cli-simple/vendor/techdivision/import/src/Adapter/CsvImportAdapter.php(80): TechDivision\Import\Adapter\Goodby\Lexer->parse('projects/sample...', Object(TechDivision\Import\Adapter\Goodby\Interpreter))
#14 /Users/wagnert/Workspace/import-cli-simple/vendor/techdivision/import/src/Subjects/AbstractSubject.php(706): TechDivision\Import\Adapter\CsvImportAdapter->import(Array, 'projects/sample...')
#15 /Users/wagnert/Workspace/import-cli-simple/vendor/techdivision/import/src/Plugins/SubjectPlugin.php(249): TechDivision\Import\Subjects\AbstractSubject->import('9ab96cbe-35e0-4...', 'projects/sample...')
#16 /Users/wagnert/Workspace/import-cli-simple/vendor/techdivision/import/src/Plugins/SubjectPlugin.php(136): TechDivision\Import\Plugins\SubjectPlugin->processSubject(Object(TechDivision\Import\Configuration\Jms\Configuration\Subject))
#17 /Users/wagnert/Workspace/import-cli-simple/vendor/techdivision/import-app-simple/src/Simple.php(583): TechDivision\Import\Plugins\SubjectPlugin->process()
#18 /Users/wagnert/Workspace/import-cli-simple/src/Command/AbstractImportCommand.php(102): TechDivision\Import\App\Simple->process()
#19 /Users/wagnert/Workspace/import-cli-simple/vendor/symfony/console/Command/Command.php(266): TechDivision\Import\Cli\Command\AbstractImportCommand->execute(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#20 /Users/wagnert/Workspace/import-cli-simple/vendor/symfony/console/Application.php(861): Symfony\Component\Console\Command\Command->run(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#21 /Users/wagnert/Workspace/import-cli-simple/vendor/symfony/console/Application.php(208): Symfony\Component\Console\Application->doRunCommand(Object(TechDivision\Import\Cli\Command\ImportAttributesCommand), Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#22 /Users/wagnert/Workspace/import-cli-simple/vendor/symfony/console/Application.php(127): Symfony\Component\Console\Application->doRun(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 /Users/wagnert/Workspace/import-cli-simple/bootstrap.php(39): Symfony\Component\Console\Application->run(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 /Users/wagnert/Workspace/import-cli-simple/bin/import-simple.php(54): require('/Users/wagnert/...')
#25 /Users/wagnert/Workspace/import-cli-simple/bin/import-simple(2): require('/Users/wagnert/...')
#26 {main}

Import Url key on Magento 2.2.6

If I update products on import with an url_key in the import file the following error occure:

PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'key.html-' for key 'URL_REWRITE_REQUEST_PATH_STORE_ID' in /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import/src/Actions/Processors/AbstractBaseProcessor.php:146
Stack trace:
#0 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import/src/Actions/Processors/AbstractBaseProcessor.php(146): PDOStatement->execute(Array)
#1 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import/src/Actions/Processors/UrlRewriteCreateProcessor.php(58): TechDivision\Import\Actions\Processors\AbstractBaseProcessor->execute(Array, NULL)
#2 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import/src/Actions/UrlRewriteAction.php(65): TechDivision\Import\Actions\Processors\UrlRewriteCreateProcessor->execute(Array, NULL)
#3 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import/src/Actions/UrlRewriteAction.php(52): TechDivision\Import\Actions\UrlRewriteAction->create(Array)
#4 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import-product-url-rewrite/src/Services/ProductUrlRewriteProcessor.php(413): TechDivision\Import\Actions\UrlRewriteAction->persist(Array, NULL)
#5 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import-product-url-rewrite/src/Observers/UrlRewriteObserver.php(654): TechDivision\Import\Product\UrlRewrite\Services\ProductUrlRewriteProcessor->persistUrlRewrite(Array)
#6 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import-product-url-rewrite/src/Observers/UrlRewriteObserver.php(279): TechDivision\Import\Product\UrlRewrite\Observers\UrlRewriteObserver->persistUrlRewrite(Array)
#7 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import-product-url-rewrite/src/Observers/UrlRewriteUpdateObserver.php(58): TechDivision\Import\Product\UrlRewrite\Observers\UrlRewriteObserver->process()
#8 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import-product-url-rewrite/src/Observers/UrlRewriteObserver.php(253): TechDivision\Import\Product\UrlRewrite\Observers\UrlRewriteUpdateObserver->process()
#9 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import/src/Subjects/AbstractSubject.php(860): TechDivision\Import\Product\UrlRewrite\Observers\UrlRewriteObserver->handle(Object(TechDivision\Import\Product\UrlRewrite\Subjects\UrlRewriteSubject))
#10 [internal function]: TechDivision\Import\Subjects\AbstractSubject->importRow(Array)
#11 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import/src/Adapter/Goodby/Interpreter.php(149): call_user_func(Array, Array)
#12 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import/src/Adapter/Goodby/Interpreter.php(135): TechDivision\Import\Adapter\Goodby\Interpreter->delegate(Array, Array)
#13 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import/src/Adapter/Goodby/Interpreter.php(74): TechDivision\Import\Adapter\Goodby\Interpreter->notify(Array)
#14 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import/src/Adapter/Goodby/Lexer.php(110): TechDivision\Import\Adapter\Goodby\Interpreter->interpret(Array)
#15 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import/src/Adapter/CsvImportAdapter.php(80): TechDivision\Import\Adapter\Goodby\Lexer->parse('/home/kunde/imp...', Object(TechDivision\Import\Adapter\Goodby\Interpreter))
#16 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import/src/Subjects/AbstractSubject.php(750): TechDivision\Import\Adapter\CsvImportAdapter->import(Array, '/home/kunde/imp...')
#17 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import/src/Plugins/SubjectExecutor.php(107): TechDivision\Import\Subjects\AbstractSubject->import('57e8d05c-adb0-4...', '/home/kunde/imp...')
#18 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import/src/Plugins/SubjectPlugin.php(213):TechDivision\Import\Plugins\SubjectExecutor->execute(Object(TechDivision\Import\Configuration\Jms\Configuration\Subject), Array, '57e8d05c-adb0-4...', '/home/kunde/imp...')
#19 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import/src/Plugins/SubjectPlugin.php(112):TechDivision\Import\Plugins\SubjectPlugin->processSubject(Object(TechDivision\Import\Configuration\Jms\Configuration\Subject))
#20 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import-app-simple/src/Simple.php(623): TechDivision\Import\Plugins\SubjectPlugin->process()
#21 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import-cli-simple/src/Command/AbstractImportCommand.php(103): TechDivision\Import\App\Simple->process()
#22 /var/www/test.ci.tdintern.de/releases/20/vendor/symfony/console/Command/Command.php(245): TechDivision\Import\Cli\Command\AbstractImportCommand->execute(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 /var/www/test.ci.tdintern.de/releases/20/vendor/symfony/console/Application.php(835): Symfony\Component\Console\Command\Command->run(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 /var/www/test.ci.tdintern.de/releases/20/vendor/symfony/console/Application.php(185): Symfony\Component\Console\Application->doRunCommand(Object(TechDivision\Import\Cli\Command\ImportProductsCommand), Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#25 /var/www/test.ci.tdintern.de/releases/20/vendor/symfony/console/Application.php(117): Symfony\Component\Console\Application->doRun(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#26 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import-cli-pro/bootstrap.php(39): Symfony\Component\Console\Application->run(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#27 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import-cli-pro/bin/import-pro.php(54): require('/var/www/test.c...')
#28 /var/www/test.ci.tdintern.de/releases/20/vendor/techdivision/import-cli-pro/bin/import-pro(2): require('/var/www/test.c...')
#29 {main}

Import product bundles on Magento 2.2.x fails

When trying to import the product bundle from the sample data M2IF is throwing the following execption

[2018-10-19 16:42:06] logger/system.ERROR: PDOException: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`hoegl`.`catalog_product_bundle_option`, CONSTRAINT `CAT_PRD_BNDL_OPT_OPT_ID_SEQUENCE_PRD_BNDL_OPT_SEQUENCE_VAL` FOREIGN KEY (`option_id`) REFERENCES `sequence_product_bundle_option` (`sequenc) in /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Actions/Processors/AbstractBaseProcessor.php:146
Stack trace:
#0 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Actions/Processors/AbstractBaseProcessor.php(146): PDOStatement->execute(Array)
#1 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import-product-bundle/src/Actions/Processors/ProductBundleOptionCreateProcessor.php(63): TechDivision\Import\Actions\Processors\AbstractBaseProcessor->execute(Array, NULL)
#2 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import-product-bundle/src/Actions/ProductBundleOptionAction.php(66): TechDivision\Import\Product\Bundle\Actions\Processors\ProductBundleOptionCreateProcessor->execute(Array, NULL)
#3 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import-product-bundle/src/Actions/ProductBundleOptionAction.php(53): TechDivision\Import\Product\Bundle\Actions\ProductBundleOptionAction->create(Array)
#4 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import-product-bundle/src/Services/ProductBundleProcessor.php(457): TechDivision\Import\Product\Bundle\Actions\ProductBundleOptionAction->persist(Array)
#5 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import-product-bundle/src/Observers/BundleOptionObserver.php(200): TechDivision\Import\Product\Bundle\Services\ProductBundleProcessor->persistProductBundleOption(Array)
#6 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import-product-bundle/src/Observers/BundleOptionObserver.php(90): TechDivision\Import\Product\Bundle\Observers\BundleOptionObserver->persistProductBundleOption(Array)
#7 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import-product/src/Observers/AbstractProductImportObserver.php(55): TechDivision\Import\Product\Bundle\Observers\BundleOptionObserver->process()
#8 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Subjects/AbstractSubject.php(860): TechDivision\Import\Product\Observers\AbstractProductImportObserver->handle(Object(TechDivision\Import\Product\Bundle\Ee\Subjects\EeBundleSubject))
#9 [internal function]: TechDivision\Import\Subjects\AbstractSubject->importRow(Array)
#10 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Adapter/Goodby/Interpreter.php(149): call_user_func(Array, Array)
#11 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Adapter/Goodby/Interpreter.php(135): TechDivision\Import\Adapter\Goodby\Interpreter->delegate(Array, Array)
#12 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Adapter/Goodby/Interpreter.php(74): TechDivision\Import\Adapter\Goodby\Interpreter->notify(Array)
#13 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Adapter/Goodby/Lexer.php(110): TechDivision\Import\Adapter\Goodby\Interpreter->interpret(Array)
#14 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Adapter/CsvImportAdapter.php(80): TechDivision\Import\Adapter\Goodby\Lexer->parse('projects/hoegl/...', Object(TechDivision\Import\Adapter\Goodby\Interpreter))
#15 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Subjects/AbstractSubject.php(750): TechDivision\Import\Adapter\CsvImportAdapter->import(Array, 'projects/hoegl/...')
#16 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Plugins/SubjectExecutor.php(107): TechDivision\Import\Subjects\AbstractSubject->import('5655a181-f0fd-4...', 'projects/hoegl/...')
#17 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Plugins/SubjectPlugin.php(213): TechDivision\Import\Plugins\SubjectExecutor->execute(Object(TechDivision\Import\Configuration\Jms\Configuration\Subject), Array, '5655a181-f0fd-4...', 'projects/hoegl/...')
#18 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Plugins/SubjectPlugin.php(112): TechDivision\Import\Plugins\SubjectPlugin->processSubject(Object(TechDivision\Import\Configuration\Jms\Configuration\Subject))
#19 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import-app-simple/src/Simple.php(623): TechDivision\Import\Plugins\SubjectPlugin->process()
#20 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import-cli-simple/src/Command/AbstractImportCommand.php(103): TechDivision\Import\App\Simple->process()
#21 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/symfony/console/Command/Command.php(241): TechDivision\Import\Cli\Command\AbstractImportCommand->execute(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#22 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/symfony/console/Application.php(843): Symfony\Component\Console\Command\Command->run(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/symfony/console/Application.php(193): Symfony\Component\Console\Application->doRunCommand(Object(TechDivision\Import\Cli\Command\ImportProductsCommand), Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/symfony/console/Application.php(117): Symfony\Component\Console\Application->doRun(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#25 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/bootstrap.php(39): Symfony\Component\Console\Application->run(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#26 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/bin/import-pro.php(54): require('/Users/wagnert/...')
#27 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/bin/import-pro(2): require('/Users/wagnert/...')
#28 {main}

Next PDOException: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`hoegl`.`catalog_product_bundle_option`, CONSTRAINT `CAT_PRD_BNDL_OPT_OPT_ID_SEQUENCE_PRD_BNDL_OPT_SEQUENCE_VAL` FOREIGN KEY (`option_id`) REFERENCES `sequence_product_bundle_option` (`sequenc) when executing SQL "INSERT
               INTO catalog_product_bundle_option
                    (parent_id,
                     required,
                     position,
                     type)
             VALUES (4037,
                     1,
                     1,
                     radio)" in /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Actions/Processors/AbstractBaseProcessor.php:161
Stack trace:
#0 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import-product-bundle/src/Actions/Processors/ProductBundleOptionCreateProcessor.php(63): TechDivision\Import\Actions\Processors\AbstractBaseProcessor->execute(Array, NULL)
#1 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import-product-bundle/src/Actions/ProductBundleOptionAction.php(66): TechDivision\Import\Product\Bundle\Actions\Processors\ProductBundleOptionCreateProcessor->execute(Array, NULL)
#2 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import-product-bundle/src/Actions/ProductBundleOptionAction.php(53): TechDivision\Import\Product\Bundle\Actions\ProductBundleOptionAction->create(Array)
#3 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import-product-bundle/src/Services/ProductBundleProcessor.php(457): TechDivision\Import\Product\Bundle\Actions\ProductBundleOptionAction->persist(Array)
#4 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import-product-bundle/src/Observers/BundleOptionObserver.php(200): TechDivision\Import\Product\Bundle\Services\ProductBundleProcessor->persistProductBundleOption(Array)
#5 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import-product-bundle/src/Observers/BundleOptionObserver.php(90): TechDivision\Import\Product\Bundle\Observers\BundleOptionObserver->persistProductBundleOption(Array)
#6 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import-product/src/Observers/AbstractProductImportObserver.php(55): TechDivision\Import\Product\Bundle\Observers\BundleOptionObserver->process()
#7 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Subjects/AbstractSubject.php(860): TechDivision\Import\Product\Observers\AbstractProductImportObserver->handle(Object(TechDivision\Import\Product\Bundle\Ee\Subjects\EeBundleSubject))
#8 [internal function]: TechDivision\Import\Subjects\AbstractSubject->importRow(Array)
#9 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Adapter/Goodby/Interpreter.php(149): call_user_func(Array, Array)
#10 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Adapter/Goodby/Interpreter.php(135): TechDivision\Import\Adapter\Goodby\Interpreter->delegate(Array, Array)
#11 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Adapter/Goodby/Interpreter.php(74): TechDivision\Import\Adapter\Goodby\Interpreter->notify(Array)
#12 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Adapter/Goodby/Lexer.php(110): TechDivision\Import\Adapter\Goodby\Interpreter->interpret(Array)
#13 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Adapter/CsvImportAdapter.php(80): TechDivision\Import\Adapter\Goodby\Lexer->parse('projects/hoegl/...', Object(TechDivision\Import\Adapter\Goodby\Interpreter))
#14 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Subjects/AbstractSubject.php(750): TechDivision\Import\Adapter\CsvImportAdapter->import(Array, 'projects/hoegl/...')
#15 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Plugins/SubjectExecutor.php(107): TechDivision\Import\Subjects\AbstractSubject->import('5655a181-f0fd-4...', 'projects/hoegl/...')
#16 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Plugins/SubjectPlugin.php(213): TechDivision\Import\Plugins\SubjectExecutor->execute(Object(TechDivision\Import\Configuration\Jms\Configuration\Subject), Array, '5655a181-f0fd-4...', 'projects/hoegl/...')
#17 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import/src/Plugins/SubjectPlugin.php(112): TechDivision\Import\Plugins\SubjectPlugin->processSubject(Object(TechDivision\Import\Configuration\Jms\Configuration\Subject))
#18 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import-app-simple/src/Simple.php(623): TechDivision\Import\Plugins\SubjectPlugin->process()
#19 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/techdivision/import-cli-simple/src/Command/AbstractImportCommand.php(103): TechDivision\Import\App\Simple->process()
#20 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/symfony/console/Command/Command.php(241): TechDivision\Import\Cli\Command\AbstractImportCommand->execute(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#21 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/symfony/console/Application.php(843): Symfony\Component\Console\Command\Command->run(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#22 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/symfony/console/Application.php(193): Symfony\Component\Console\Application->doRunCommand(Object(TechDivision\Import\Cli\Command\ImportProductsCommand), Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/vendor/symfony/console/Application.php(117): Symfony\Component\Console\Application->doRun(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/bootstrap.php(39): Symfony\Component\Console\Application->run(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#25 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/bin/import-pro.php(54): require('/Users/wagnert/...')
#26 /Users/wagnert/Workspace_Idea/techdivision/import-cli-pro/bin/import-pro(2): require('/Users/wagnert/...')
#27 {main}

Composer updates to wrong version

Describe the bug
When composer update is run, the wrong version is assumed to be the latest version. 3.18.17 is selected when the version (as of today) should be 3.8.21.

I believe the tag on https://github.com/techdivision/import-cli-simple/releases for 3.8.17 needs to be corrected (changed from 3.18.17 to 3.8.17).

To Reproduce
Steps to reproduce the behavior:

  1. In a terminal run either of the following.
    a. composer require techdivision/import-cli-simple
    b. composer update --with-dependencies techdivision/import-cli-simple
  2. Notice the package is updated to the wrong version.

Expected behavior
Package should have been updated to 3.8.21.

logger/system.WARNING: Directory var/importexport/media/catalog/product doesn't exist

Describe the bug
An unexpected warning is thrown upon product:import for not found directory.
Even if it's configured otherwise.

To Reproduce

  1. Download/Install Pacemaker - Community Console Tool 3.8.42
  2. Create [magento]/var/importexport/product-import_20210222-082945_01.csv:
sku,attribute_set_code,product_type,base_image,base_image_position,small_image,small_image_position,thumbnail_image,thumbnail_image_position,additional_images,additional_image_positions
1337,default,configurable,/1337/general/base_image.jpg,1,/1337/general/base_image.jpg,1,/1337/general/base_image.jpg,1,"/1337/additional/additional_image_1.jpg,/1337/additional/additional_image_2.jpg,/1337/additional/additional_image_3.jpg,/1337/additional/additional_image_4.jpg","2,3,4,5"
  1. Create [magento]/app/etc/configuration/operations.json:
{
    "operations": {
        "ce": {
            "catalog_product": {
                "add-update": {
                    "plugins": {
                        "subject": {
                            "id": "import.plugin.subject",
                            "subjects": [{
                                "id": "import_product.subject.bunch",
                                "file-resolver": {
                                    "prefix": "product-import"
                                },
                                "params": {
                                    "copy-images": false,
                                    "media-directory": "pub/media/catalog/product",
                                    "images-file-directory": "var/importexport/images",
                                    "update-url-key-from-name": false,
                                    "clean-up-variants": false,
                                    "clean-up-links": false,
                                    "clean-up-media-gallery": true,
                                    "clean-up-empty-image-columns": true,
                                    "clean-up-website-product-relations": false,
                                    "clean-up-category-product-relations": false,
                                    "clean-up-empty-columns": []
                                },
                                "observers": [{
                                    "import": [
                                        "import_product.observer.composite.base.add_update"
                                    ]
                                }]
                            }]
                        }
                    }
                }
            }
        }
    }
}
  1. Run [magento]/vendor/bin/import-simple import:create:ok-file --installation-dir [magento]
  2. Run [magento]/vendor/bin/import-simple import:products --installation-dir [magento]
  3. See warning like: [2021-02-22 09:29:40] logger/system.WARNING: Directory var/importexport/media/catalog/product doesn't exist {"serial":"32aaf790-42ae-4e25-b620-b48ae1392da7","memory_peak_usage":"89.52 MB"}

Expected behavior
No warning, because images-file-directory is configured to another directory and copy-images is false, so it should not check at all. (Images are already in place for media-directory)

Server(please complete the following information):

  • OS: Ubuntu 18.04.5 LTS
  • Browser: bash cli
  • Version GNU bash, version 4.4.20(1)-release (x86_64-pc-linux-gnu) 😁

Missing Support for Grouped Products

Actually M2IF doesn't support Grouped Products. It should be possible to import Grouped Products based on the format of the Magento 2 standard CSV format whereas the column associated_skus contains the relations in the format 24-MB01=0.0000,24-MB04=0.0000,24-MB03=0.0000.

Magento 2.3.3 - Can't use product import with MSI modules disabled

Using last version of m2if and Magento 2.3.3 if you disable all modules MSI the product imports rase this exception:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'magento.inventory_source' doesn't exist

Ty for your support
To Reproduce
Steps to reproduce the behavior:

  1. disable all MSI modules
  2. setup:upgrade
  3. launch product imports
  4. See error

Expected behavior
It should not rase an exception if I choose to not use the new inventory modules (MSI).

Category anchor flag is considered when importing products

When products are imported, the category anchor flag will NOT be considered when the column is not part of the CSV file or the column is empty, which results in relations with the categories that are listed in the categories column only.

Get magento version from cli (as fallback)

Hello,

if the composer.json lacks the version which is obviously needed:

In SimpleConfigurationLoader.php line 443:
                                                                                                                           
  Can't detect a version in "/var/www/html/composer.json", please set Magento Version with the "--magento-version" option

You might want to grab the version from /bin/magento --version:

$ /bin/magento --version
Magento CLI 2.3.3

After installation, cannot execute bin/magento anymore

Describe the bug

cannot call bin/magento anymore after installation

To Reproduce

  1. composer require techdivision/import-cli-simple
  2. call bin/magento

Expected behavior
No error

Screenshots

PHP Fatal error:  Class 'Laminas\ServiceManager\AbstractPluginManager' not found in ....vendor/laminas/laminas-filter/src/FilterPluginManager.php on line 27

Versions

Magento: 2.3.4-p2

Extension Libraries configuration is not parsing

if the custom configuration has included extension-lib the etc folder with configuration files will not be merged with the rest of it.

The File TechDivision\Import\Configuration\Jms\Parsers\JsonParser will parse only the config files when using additional-vendor-dirs configutation

Call to a member function getSystemLogger() on null

Describe the bug
I’m getting this error when importing products and when the import file (the ones that I prepare for M2IF) don’t have the data and has only CSV headers (product attributes)

[2021-02-23 08:54:42] logger/system.INFO: Now start import with serial 033fe703-1078-4bab-a43c-c712a99a2089 [none => create-ok-files]  {"serial":"033fe703-1078-4bab-a43c-c712a99a2089","memory_peak_usage":"18 MB"}
[2021-02-23 08:54:42] logger/system.INFO: Execution time for operation with serial 033fe703-1078-4bab-a43c-c712a99a2089 in 0.020036 s  {"serial":"033fe703-1078-4bab-a43c-c712a99a2089","memory_peak_usage":"18 MB"}
[2021-02-23 08:54:42] logger/system.INFO: Found no files to archive  {"serial":"033fe703-1078-4bab-a43c-c712a99a2089","memory_peak_usage":"18 MB"}
[2021-02-23 08:54:42] logger/system.INFO: Successfully executed command import:create:ok-file with serial 033fe703-1078-4bab-a43c-c712a99a2089 in 00:00:00 s  {"serial":"033fe703-1078-4bab-a43c-c712a99a2089","memory_peak_usage":"18 MB"}
[2021-02-23 08:54:43] logger/system.INFO: Now start import with serial 7b904055-2b3b-463b-92e2-ed4b77181436 [catalog_product => add-update]  {"serial":"7b904055-2b3b-463b-92e2-ed4b77181436","memory_peak_usage":"18 MB"}
[2021-02-23 08:54:44] logger/system.INFO: Now start processing file "product-import_20210223_160.csv" {"operation-name":"general/catalog_product/collect-data"} {"serial":"7b904055-2b3b-463b-92e2-ed4b77181436","memory_peak_usage":"46 MB"}
[2021-02-23 08:54:44] logger/system.NOTICE: Successfully processed file "product-import_20210223_160.csv" with "0" lines (skipped "0") in "0.001968" s {"operation-name":"general/catalog_product/collect-data"} {"serial":"7b904055-2b3b-463b-92e2-ed4b77181436","memory_peak_usage":"46 MB"}
[2021-02-23 08:54:44] logger/system.ERROR: Uncaught Error: Call to a member function getSystemLogger() on null in /Users/denis/Sites/magento/vendor/techdivision/import/src/Observers/AbstractObserver.php:307
Stack trace:
#0 /Users/denis/Sites/magento/vendor/techdivision/import/src/Observers/GenericHookAwareColumnCollectorObserver.php(187): TechDivision\Import\Observers\AbstractObserver->getSystemLogger()
#1 /Users/denis/Sites/magento/vendor/techdivision/import/src/Subjects/AbstractSubject.php(702): TechDivision\Import\Observers\GenericHookAwareColumnCollectorObserver->tearDown('7b904055-2b3b-4...')
#2 /Users/denis/Sites/magento/vendor/techdivision/import/src/Subjects/SubjectExecutor.php(160): TechDivision\Import\Subjects\AbstractSubject->tearDown('7b904055-2b3b-4...')
#3 /Users/denis/Sites/magento/vendor/techdivision/import/src/Plugins/SubjectPlugin.php(168): TechDivision\Import\Subjects\SubjectExecutor->execute(Object(TechDivision\Import\Configuration\Jms\Configuration\Subject), Array, '7b904055-2b3b-4...', '/Users/denis/Si...')
#4 /Users/denis/S  {"serial":"7b904055-2b3b-463b-92e2-ed4b77181436","memory_peak_usage":"46 MB"}

To Reproduce
Steps to reproduce the behavior:

  1. Create an M2IF ready CSV file for import with only CSV headers (product attributes) data:
    sku,attribute_set_code,product_websites,store,categories,name,url_key,description,short_description,weight,status,tax_class_id,visibility,price
  2. Run: vendor/bin/import-simple import:create:ok-file
  3. Run: vendor/bin/import-simple import:products
  4. See an error

Expected behavior
With version 3.8.34 it works ok and the import of products goes through.

Desktop (please complete the following information):

  • OS: macOS Big Sur
  • Browser /
  • Version of M2IF: 3.8.41
  • Magento version: 2.3.5-p2

Product Custom Option Import is not working.

Preconditions

Project Environment

Magento Cloud Version: 2.4.2-p1
PHP: 7.4
Database: MariaDB 10.4.14
Techdivision Import Cli : 3.8.53

Steps to reproduce

  1. Prepare the import sheet product-import_20220403-044748_01.csv for multi-store view in the folder var/importexport directory.
  2. Execute vendor/bin/import-simple import:create:ok-file from Magento root directory to generate an ok file.
  3. Execute vendor/bin/import-simple import:products to import the products.

Sample Import File Data

sku store_view_code attribute_set_code product_type categories product_websites name description short_description weight product_online tax_class_name visibility price special_price special_price_from_date special_price_to_date url_key meta_title meta_keywords meta_description base_image base_image_label small_image small_image_label thumbnail_image thumbnail_image_label news_from_date news_to_date product_options_container msrp_display_actual_price_type custom_options additional_attributes qty inventory_source_items out_of_stock_qty use_config_min_qty is_qty_decimal allow_backorders use_config_backorders min_cart_qty use_config_min_sale_qty max_cart_qty use_config_max_sale_qty is_in_stock notify_on_stock_below use_config_notify_stock_qty manage_stock use_config_manage_stock use_config_qty_increments qty_increments use_config_enable_qty_inc enable_qty_increments is_decimal_divided website_id deferred_stock_update use_config_deferred_stock_update related_skus related_position additional_images additional_image_labels created_at updated_at
SKU1 testAttributeSet simple Default Category/XYZ,Default Category/ABC base Product Name   10 1 Taxable Goods Catalog, Search 18 Product Meta Title Product Meta Keywords Product Meta Description /test.jpg /test.jpg /test-1.jpg 04/03/22, 11:47 AM 05/03/22, 11:47 AM Use config name=Test,type=drop_down,required=1,price=,price_type=fixed,sku=,option_title=Option1|name=Test,type=drop_down,required=1,price=,price_type=fixed,sku=,option_title=Options2 country=Hong Kong 1 source_code=default,quantity=1,status=1,sku=SKU1 0 1 0 0 0 1 1 5 1 1 1 1 1 1 1 1 1 0 0 1 1 /test.jpg,/test-1.jpg,/test-2.jpg
SKU1 en testAttributeSet Default Category/XYZ,Default Category/ABC Product Name   10 1 Taxable Goods Catalog, Search 18 Product Meta Title Product Meta Keywords Product Meta Description /test.jpg /test.jpg /test-1.jpg 04/03/22, 11:47 AM 05/03/22, 11:47 AM Use config name=Test,type=drop_down,required=1,price=,price_type=fixed,sku=,option_title=Option1|name=Test,type=drop_down,required=1,price=,price_type=fixed,sku=,option_title=Options2 country=Hong Kong 1 source_code=default,quantity=1,status=1,sku=SKU1 0 1 0 0 0 1 1 5 1 1 1 1 1 1 1 1 1 0 0 1 1 /test.jpg,/test-1.jpg,/test-2.jpg
SKU1 uk testAttributeSet Default Category/XYZ,Default Category/ABC Product Name   10 1 Taxable Goods Catalog, Search 18 Product Meta Title Product Meta Keywords Product Meta Description /test.jpg /test.jpg /test-1.jpg 04/03/22, 11:47 AM 05/03/22, 11:47 AM Use config name=Test,type=drop_down,required=1,price=,price_type=fixed,sku=,option_title=Option1|name=Test,type=drop_down,required=1,price=,price_type=fixed,sku=,option_title=Options2 country=Hong Kong 1 source_code=default,quantity=1,status=1,sku=SKU1 0 1 0 0 0 1 1 5 1 1 1 1 1 1 1 1 1 0 0 1 1 /test.jpg,/test-1.jpg,/test-2.jpg

Actual Result

  1. Prduct is imported with all the attributes.

  2. Custom Options for products are not created.

  3. Products are assigned to their respective categories but some phantom categories are created after the import.
    Phantom_Categories

  4. Also getting the following exception if trying to update existing products using import. This issue is intermittent.
    {"message":" _______ _ _____ _ _ _\n|__ __| | | | __ \\(_) (_) (_)\n | | ___ ___| |__ | | | |___ ___ ___ _ ___ _ __\n | |/ _ \\/ __| \\_ \\| | | | \\ \\ / / / __| |/ _ \\| \\_ \\\n | | __/ (__| | | | |__| | |\\ V /| \\__ \\ | (_) | | | |\n |_|\\___|\\___|_| |_|_____/|_| \\_/ |_|___/_|\\___/|_| |_|\n Now start import with serial 4d71c4b3-8674-4e47-96f3-21b9599f6ea4 [catalog_product => add-update]\n+--------------------------------+-------+----------------------------------------------------------------------------------+\n| Variable | Value | Description |\n+--------------------------------+-------+----------------------------------------------------------------------------------+\n| innodb_flush_log_at_trx_commit | 1 | Your setting for may result in a significantly slower performance. Consider to s |\n| | | witch this value to 0 or 2 to improve performance. Read more about that topic on |\n| | | the MySQL website https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html |\n| | | #sysvar_innodb_flush_log_at_trx_commit. |\n+--------------------------------+-------+----------------------------------------------------------------------------------+\n[2022-04-04 15:00:13] logger/system.NOTICE: Successfully processed file \"product-import_20220404-080011_01.csv\" with \"1182\" lines (skipped \"0\") in \"0.129460\" s {\"operation-name\":\"general/catalog_product/collect-data\"} {\"serial\":\"4d71c4b3-8674-4e47-96f3-21b9599f6ea4\",\"memory_peak_usage\":\"32 MB\"}\n[2022-04-04 15:00:13] logger/system.NOTICE: Observer \"TechDivision\\Import\\Observers\\GenericHookAwareColumnCollectorObserver\" successfully updated status data for \"collected_columns\" {\"serial\":\"4d71c4b3-8674-4e47-96f3-21b9599f6ea4\",\"memory_peak_usage\":\"32 MB\"}\n[2022-04-04 15:00:17] logger/system.NOTICE: Successfully processed file \"product-import_20220404-080011_01.csv\" with \"1182\" lines (skipped \"0\") in \"4.729939\" s {\"operation-name\":\"general/eav_attribute/convert\"} {\"serial\":\"4d71c4b3-8674-4e47-96f3-21b9599f6ea4\",\"memory_peak_usage\":\"34 MB\"}\n[2022-04-04 15:00:18] logger/system.NOTICE: Successfully processed file \"product-import_20220404-080011_01.csv\" with \"1182\" lines (skipped \"0\") in \"0.169692\" s {\"operation-name\":\"general/catalog_category/convert\"} {\"serial\":\"4d71c4b3-8674-4e47-96f3-21b9599f6ea4\",\"memory_peak_usage\":\"34 MB\"}\n[2022-04-04 15:00:18] logger/system.NOTICE: Successfully processed file \"category-import_20220404-150018_01.csv\" with \"4\" lines (skipped \"0\") in \"0.000354\" s {\"operation-name\":\"ce/catalog_category/sort\"} {\"serial\":\"4d71c4b3-8674-4e47-96f3-21b9599f6ea4\",\"memory_peak_usage\":\"34 MB\"}\n[2022-04-04 15:00:18] logger/system.NOTICE: Successfully processed file \"category-create_20220404-150018_01.csv\" with \"4\" lines (skipped \"0\") in \"0.079053\" s {\"operation-name\":\"ee/catalog_category/add-update\"} {\"serial\":\"4d71c4b3-8674-4e47-96f3-21b9599f6ea4\",\"memory_peak_usage\":\"34 MB\"}\n[2022-04-04 15:00:18] logger/system.NOTICE: Successfully processed file \"category-path_20220404-150018_01.csv\" with \"12\" lines (skipped \"0\") in \"0.014969\" s {\"operation-name\":\"ee/catalog_category/add-update.path\"} {\"serial\":\"4d71c4b3-8674-4e47-96f3-21b9599f6ea4\",\"memory_peak_usage\":\"34 MB\"}\nPHP Notice: Trying to access array offset on value of type bool in /var/www/migration/vendor/techdivision/import/src/Subjects/AbstractSubject.php on line 1412\nPHP Notice: Trying to access array offset on value of type bool in /var/www/migration/vendor/techdivision/import/src/Subjects/AbstractSubject.php on line 1413\n[2022-04-04 15:00:18] logger/system.ERROR: PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'coloured-diamond-jewellery-3' for key 'URL_REWRITE_REQUEST_PATH_STORE_ID' in /var/www/migration/vendor/techdivision/import/src/Actions/Processors/AbstractBaseProcessor.php:222\nStack trace:\n#0 /var/www/migration/vendor/techdivision/import/src/Actions/Processors/AbstractBaseProcessor.php(222): PDOStatement->execute()\n#1 /var/www/migration/vendor/techdivision/import/src/Actions/Processors/UrlRewriteCreateProcessor.php(61): TechDivision\\Import\\Actions\\Processors\\AbstractBaseProcessor->execute()\n#2 /var/www/migration/vendor/techdivision/import/src/Actions/GenericIdentifierAction.php(73): TechDivision\\Import\\Actions\\Processors\\UrlRewriteCreateProcessor->execute()\n#3 /var/www/migration/vendor/techdivision/import/src/Actions/GenericIdentifierAction.php(60): TechDivision\\Import\\Actions\\GenericIdentifierAction->create()\n#4 /var/www/migration/vendor/techdivision/import-category/src/Services/CategoryBunchProcessor.php(1166): TechDivision\\Import\\Actions\\GenericIdentifierAction->persist()\n#5 /var/www/migration/vendor/techdivision/import-category/src/Observers/UrlRewriteObserver.php(238): TechDivision\\Import\\Category\\Services\\CategoryBunchProcessor->persistUrlRewrite()\n#6 /var/www/migration/vendor/techdivision/import-category/src/Observers/UrlRewriteObserver.php(108): TechDivision\\Import\\Category\\Observers\\UrlRewriteObserver->persistUrlRewrite()\n#7 /var/www/migration/vendor/techdivision/import-category/src/Observers/UrlRewriteUpdateObserver.php(89): TechDivision\\Import\\Category\\Observers\\UrlRewriteObserver->process()\n#8 /var/www/migration/vendor/techdivision/import-category/src/Observers/AbstractCategoryImportObserver.php(54): TechDivision\\Import\\Category\\Observers\\UrlRewriteUpdateObserver->process()\n#9 /var/www/migration/vendor/techdivision/import/src/Subjects/AbstractSubject.php(1042): TechDivision\\Import\\Category\\Observers\\AbstractCategoryImportObserver->handle()\n#10 [internal function]: TechDivision\\Import\\Subjects\\AbstractSubject->importRow()\n#11 /var/www/migration/vendor/techdivision/import/src/Adapter/Goodby/Interpreter.php(149): call_user_func()\n#12 /var/www/migration/vendor/techdivision/import/src/Adapter/Goodby/Interpreter.php(135): TechDivision\\Import\\Adapter\\Goodby\\Interpreter->delegate()\n#13 /var/www/migration/vendor/techdivision/import/src/Adapter/Goodby/Interpreter.php(74): TechDivision\\Import\\Adapter\\Goodby\\Interpreter->notify()\n#14 /var/www/migration/vendor/techdivision/import/src/Adapter/Goodby/Lexer.php(127): TechDivision\\Import\\Adapter\\Goodby\\Interpreter->interpret()\n#15 /var/www/migration/vendor/techdivision/import/src/Adapter/CsvImportAdapter.php(142): TechDivision\\Import\\Adapter\\Goodby\\Lexer->parse()\n#16 /var/www/migration/vendor/techdivision/import/src/Subjects/AbstractSubject.php(884): TechDivision\\Import\\Adapter\\CsvImportAdapter->import()\n#17 /var/www/migration/vendor/techdivision/import/src/Subjects/SubjectExecutor.php(131): TechDivision\\Import\\Subjects\\AbstractSubject->import()\n#18 /var/www/migration/vendor/techdivision/import/src/Plugins/SubjectPlugin.php(168): TechDivision\\Import\\Subjects\\SubjectExecutor->execute()\n#19 /var/www/migration/vendor/techdivision/import/src/Plugins/SubjectPlugin.php(120): TechDivision\\Import\\Plugins\\SubjectPlugin->processSubject()\n#20 /var/www/migration/vendor/techdivision/import/src/Plugins/PluginExecutor.php(117): TechDivision\\Import\\Plugins\\SubjectPlugin->process()\n#21 /var/www/migration/vendor/techdivision/import/src/Modules/PluginModule.php(144): TechDivision\\Import\\Plugins\\PluginExecutor->execute()\n#22 /var/www/migration/vendor/techdivision/import-app-simple/src/Simple.php(622): TechDivision\\Import\\Modules\\PluginModule->process()\n#23 /var/www/migration/vendor/techdivision/import-cli/src/Command/AbstractImportCommand.php(114): TechDivision\\Import\\App\\Simple->process()\n#24 /var/www/migration/vendor/symfony/console/Command/Command.php(255): TechDivision\\Import\\Cli\\Command\\AbstractImportCommand->execute()\n#25 /var/www/migration/vendor/symfony/console/Application.php(1009): Symfony\\Component\\Console\\Command\\Command->run()\n#26 /var/www/migration/vendor/symfony/console/Application.php(273): Symfony\\Component\\Console\\Application->doRunCommand()\n#27 /var/www/migration/vendor/symfony/console/Application.php(149): Symfony\\Component\\Console\\Application->doRun()\n#28 /var/www/migration/vendor/techdivision/import-cli-simple/bootstrap.php(53): Symfony\\Component\\Console\\Application->run()\n#29 /var/www/migration/vendor/techdivision/import-cli-simple/bin/import-simple.php(54): require('/var/www/migrat...')\n#30 /var/www/migration/vendor/techdivision/import-cli-simple/bin/import-simple(2): require('/var/www/migrat...')\n#31 {main}\n\nNext PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'coloured-diamond-jewellery-3' for key 'URL_REWRITE_REQUEST_PATH_STORE_ID' when executing SQL \"INSERT\n INTO url_rewrite\n (entity_type,\n entity_id,\n request_path,\n target_path,\n redirect_type,\n store_id,\n description,\n is_autogenerated,\n metadata)\n VALUES (category,\n 230,\n coloured-diamond-jewellery,\n catalog/category/view/id/230,\n 0,\n 3,\n ,\n 1,\n )\" in /var/www/migration/vendor/techdivision/import/src/Actions/Processors/AbstractBaseProcessor.php:236\nStack trace:\n#0 /var/www/migration/vendor/techdivision/import/src/Actions/Processors/UrlRewriteCreateProcessor.php(61): TechDivision\\Import\\Actions\\Processors\\AbstractBaseProcessor->execute()\n#1 /var/www/migration/vendor/techdivision/import/src/Actions/GenericIdentifierAction.php(73): TechDivision\\Import\\Actions\\Processors\\UrlRewriteCreateProcessor->execute()\n#2 /var/www/migration/vendor/techdivision/import/src/Actions/GenericIdentifierAction.php(60): TechDivision\\Import\\Actions\\GenericIdentifierAction->create()\n#3 /var/www/migration/vendor/techdivision/import-category/src/Services/CategoryBunchProcessor.php(1166): TechDivision\\Import\\Actions\\GenericIdentifierAction->persist()\n#4 /var/www/migration/vendor/techdivision/import-category/src/Observers/UrlRewriteObserver.php(238): TechDivision\\Import\\Category\\Services\\CategoryBunchProcessor->persistUrlRewrite()\n#5 /var/www/migration/vendor/techdivision/import-category/src/Observers/UrlRewriteObserver.php(108): TechDivision\\Import\\Category\\Observers\\UrlRewriteObserver->persistUrlRewrite()\n#6 /var/www/migration/vendor/techdivision/import-category/src/Observers/UrlRewriteUpdateObserver.php(89): TechDivision\\Import\\Category\\Observers\\UrlRewriteObserver->process()\n#7 /var/www/migration/vendor/techdivision/import-category/src/Observers/AbstractCategoryImportObserver.php(54): TechDivision\\Import\\Category\\Observers\\UrlRewriteUpdateObserver->process()\n#8 /var/www/migration/vendor/techdivision/import/src/Subjects/AbstractSubject.php(1042): TechDivision\\Import\\Category\\Observers\\AbstractCategoryImportObserver->handle()\n#9 [internal function]: TechDivision\\Import\\Subjects\\AbstractSubject->importRow()\n#10 /var/www/migration/vendor/techdivision/import/src/Adapter/Goodby/Interpreter.php(149): call_user_func()\n#11 /var/www/migration/vendor/techdivision/import/src/Adapter/Goodby/Interpreter.php(135): TechDivision\\Import\\Adapter\\Goodby\\Interpreter->delegate()\n#12 /var/www/migration/vendor/techdivision/import/src/Adapter/Goodby/Interpreter.php(74): TechDivision\\Import\\Adapter\\Goodby\\Interpreter->notify()\n#13 /var/www/migration/vendor/techdivision/import/src/Adapter/Goodby/Lexer.php(127): TechDivision\\Import\\Adapter\\Goodby\\Interpreter->interpret()\n#14 /var/www/migration/vendor/techdivision/import/src/Adapter/CsvImportAdapter.php(142): TechDivision\\Import\\Adapter\\Goodby\\Lexer->parse()\n#15 /var/www/migration/vendor/techdivision/import/src/Subjects/AbstractSubject.php(884): TechDivision\\Import\\Adapter\\CsvImportAdapter->import()\n#16 /var/www/migration/vendor/techdivision/import/src/Subjects/SubjectExecutor.php(131): TechDivision\\Import\\Subjects\\AbstractSubject->import()\n#17 /var/www/migration/vendor/techdivision/import/src/Plugins/SubjectPlugin.php(168): TechDivision\\Import\\Subjects\\SubjectExecutor->execute()\n#18 /var/www/migration/vendor/techdivision/import/src/Plugins/SubjectPlugin.php(120): TechDivision\\Import\\Plugins\\SubjectPlugin->processSubject()\n#19 /var/www/migration/vendor/techdivision/import/src/Plugins/PluginExecutor.php(117): TechDivision\\Import\\Plugins\\SubjectPlugin->process()\n#20 /var/www/migration/vendor/techdivision/import/src/Modules/PluginModule.php(144): TechDivision\\Import\\Plugins\\PluginExecutor->execute()\n#21 /var/www/migration/vendor/techdivision/import-app-simple/src/Simple.php(622): TechDivision\\Import\\Modules\\PluginModule->process()\n#22 /var/www/migration/vendor/techdivision/import-cli/src/Command/AbstractImportCommand.php(114): TechDivision\\Import\\App\\Simple->process()\n#23 /var/www/migration/vendor/symfony/console/Command/Command.php(255): TechDivision\\Import\\Cli\\Command\\AbstractImportCommand->execute()\n#24 /var/www/migration/vendor/symfony/console/Application.php(1009): Symfony\\Component\\Console\\Command\\Command->run()\n#25 /var/www/migration/vendor/symfony/console/Application.php(273): Symfony\\Component\\Console\\Application->doRunCommand()\n#26 /var/www/migration/vendor/symfony/console/Application.php(149): Symfony\\Component\\Console\\Application->doRun()\n#27 /var/www/migration/vendor/techdivision/import-cli-simple/bootstrap.php(53): Symfony\\Component\\Console\\Application->run()\n#28 /var/www/migration/vendor/techdivision/import-cli-simple/bin/import-simple.php(54): require('/var/www/migrat...')\n#29 /var/www/migration/vendor/techdivision/import-cli-simple/bin/import-simple(2): require('/var/www/migrat...')\n#30 {main}\n\nNext TechDivision\\Import\\Exceptions\\WrappedColumnException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'coloured-diamond-jewellery-3' for key 'URL_REWRITE_REQUEST_PATH_STORE_ID' when executing SQL \"INSERT\n INTO url_rewrite\n (entity_type,\n entity_id,\n request_path,\n target_path,\n redirect_type,\n store_id,\n description,\n is_autogenerated,\n metadata)\n VALUES (category,\n 230,\n coloured-diamond-jewellery,\n catalog/category/view/id/230,\n 0,\n 3,\n ,\n 1,\n )\" in file category-url-rewrite_20220404-150018_01.csv on line 2 in /var/www/migration/vendor/techdivision/import/src/Subjects/AbstractSubject.php:1437\nStack trace:\n#0 /var/www/migration/vendor/techdivision/import/src/Subjects/AbstractSubject.php(960): TechDivision\\Import\\Subjects\\AbstractSubject->wrapException()\n#1 /var/www/migration/vendor/techdivision/import/src/Subjects/SubjectExecutor.php(131): TechDivision\\Import\\Subjects\\AbstractSubject->import()\n#2 /var/www/migration/vendor/techdivision/import/src/Plugins/SubjectPlugin.php(168): TechDivision\\Import\\Subjects\\SubjectExecutor->execute()\n#3 /var/www/migration/vendor/techdivision/import/src/Plugins/SubjectPlugin.php(120): TechDivision\\Import\\Plugins\\SubjectPlugin->processSubject()\n#4 /var/www/migration/vendor/techdivision/import/src/Plugins/PluginExecutor.php(117): TechDivision\\Import\\Plugins\\SubjectPlugin->process()\n#5 /var/www/migration/vendor/techdivision/import/src/Modules/PluginModule.php(144): TechDivision\\Import\\Plugins\\PluginExecutor->execute()\n#6 /var/www/migration/vendor/techdivision/import-app-simple/src/Simple.php(622): TechDivision\\Import\\Modules\\PluginModule->process()\n#7 /var/www/migration/vendor/techdivision/import-cli/src/Command/AbstractImportCommand.php(114): TechDivision\\Import\\App\\Simple->process()\n#8 /var/www/migration/vendor/symfony/console/Command/Command.php(255): TechDivision\\Import\\Cli\\Command\\AbstractImportCommand->execute()\n#9 /var/www/migration/vendor/symfony/console/Application.php(1009): Symfony\\Component\\Console\\Command\\Command->run()\n#10 /var/www/migration/vendor/symfony/console/Application.php(273): Symfony\\Component\\Console\\Application->doRunCommand()\n#11 /var/www/migration/vendor/symfony/console/Application.php(149): Symfony\\Component\\Console\\Application->doRun()\n#12 /var/www/migration/vendor/techdivision/import-cli-simple/bootstrap.php(53): Symfony\\Component\\Console\\Application->run()\n#13 /var/www/migration/vendor/techdivision/import-cli-simple/bin/import-simple.php(54): require('/var/www/migrat...')\n#14 /var/www/migration/vendor/techdivision/import-cli-simple/bin/import-simple(2): require('/var/www/migrat...')\n#15 {main} {\"serial\":\"4d71c4b3-8674-4e47-96f3-21b9599f6ea4\",\"memory_peak_usage\":\"36 MB\"}\n[2022-04-04 15:00:18] logger/system.ERROR: Can't finish import with serial 4d71c4b3-8674-4e47-96f3-21b9599f6ea4 in 5.360415 s {\"serial\":\"4d71c4b3-8674-4e47-96f3-21b9599f6ea4\",\"memory_peak_usage\":\"36 MB\"}\n SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'coloured-diamond-jewellery-3' for key 'URL_REWRITE_REQUEST_PATH_STORE_ID' when executing SQL \"INSERT\n INTO url_rewrite\n (entity_type,\n entity_id,\n request_path,\n target_path,\n redirect_type,\n store_id,\n description,\n is_autogenerated,\n metadata)\n VALUES (category,\n 230,\n coloured-diamond-jewellery,\n catalog/category/view/id/230,\n 0,\n 3,\n ,\n 1,\n )\" in file category-url-rewrite_20220404-150018_01.csv on line 2\n[2022-04-04 15:00:18] logger/system.ERROR: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'coloured-diamond-jewellery-3' for key 'URL_REWRITE_REQUEST_PATH_STORE_ID' when executing SQL \"INSERT\n INTO url_rewrite\n (entity_type,\n entity_id,\n request_path,\n target_path,\n redirect_type,\n store_id,\n description,\n is_autogenerated,\n metadata)\n VALUES (category,\n 230,\n coloured-diamond-jewellery,\n catalog/category/view/id/230,\n 0,\n 3,\n ,\n 1,\n )\" in file category-url-rewrite_20220404-150018_01.csv on line 2 {\"serial\":\"4d71c4b3-8674-4e47-96f3-21b9599f6ea4\",\"memory_peak_usage\":\"36 MB\"}","context":[],"level":200,"level_name":"INFO","channel":"import_feed","datetime":{"date":"2022-04-04 15:00:18.212492","timezone_type":3,"timezone":"UTC"},"extra":{"file":"/var/www/migration/app/code/BestResponseMedia/ImportProducts/Model/FilePreparation/Entities/ProductImportFileGenerator.php","line":208,"class":"BestResponseMedia\\ImportProducts\\Model\\FilePreparation\\Entities\\ProductImportFileGenerator","function":"initiateProductImport"}}

Expected Result

  1. Product should be imported with all the attributes.
  2. Custom Options should be created for products.
  3. Categories should be assigned to their respective categories.

Fatal error: Uncaught Error: Call to undefined method Doctrine\Common\Annotations\AnnotationRegistry::registerLoader()

Describe the bug
Import command (with command) is not working because of the missing method.
After some investigation i found out that the doctrine method was deprecated as mentioned here doctrine/annotations@17e4de9

To Reproduce
Steps to reproduce the behavior:

  1. run ./vendor/bin/import-simple import:create:ok-file

Expected behavior
A clear and concise description of what you expected to happen.

System
PHP8.1 with M 2.4.5-p1.

Stacktrace
www-data@e2ef0ff6eb9c:~/htdocs$ ./vendor/bin/import-simple import:create:ok-file
PHP Fatal error: Uncaught Error: Call to undefined method Doctrine\Common\Annotations\AnnotationRegistry::registerLoader() in /var/www/htdocs/vendor/techdivision/import-configuration-jms/src/ConfigurationFactory.php:120
Stack trace:
#0 [internal function]: TechDivision\Import\Configuration\Jms\ConfigurationFactory->__construct(Object(Symfony\Component\DependencyInjection\ContainerBuilder), Object(TechDivision\Import\Configuration\Jms\ConfigurationParserFactory), Object(JMS\Serializer\SerializerBuilder))
#1 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(1109): ReflectionClass->newInstanceArgs(Array)
#2 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(608): Symfony\Component\DependencyInjection\ContainerBuilder->createService(Object(Symfony\Component\DependencyInjection\Definition), Array, true, 'import_cli.conf...')
#3 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(1232): Symfony\Component\DependencyInjection\ContainerBuilder->doGet('import_cli.conf...', 1, Array, true)
#4 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(1180): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices(Object(Symfony\Component\DependencyInjection\Reference), Array, true)
#5 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(1078): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices(Array, Array, true)
#6 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(608): Symfony\Component\DependencyInjection\ContainerBuilder->createService(Object(Symfony\Component\DependencyInjection\Definition), Array, true, 'import_cli.conf...')
#7 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(1232): Symfony\Component\DependencyInjection\ContainerBuilder->doGet('import_cli.conf...', 1, Array, true)
#8 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(1082): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices(Object(Symfony\Component\DependencyInjection\Reference), Array, true)
#9 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(608): Symfony\Component\DependencyInjection\ContainerBuilder->createService(Object(Symfony\Component\DependencyInjection\Definition), Array, true, 'configuration')
#10 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(553): Symfony\Component\DependencyInjection\ContainerBuilder->doGet('configuration', 1)
#11 /var/www/htdocs/vendor/techdivision/import-cli/src/Command/AbstractImportCommand.php(108): Symfony\Component\DependencyInjection\ContainerBuilder->get('configuration')
#12 /var/www/htdocs/vendor/symfony/console/Command/Command.php(255): TechDivision\Import\Cli\Command\AbstractImportCommand->execute(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 /var/www/htdocs/vendor/symfony/console/Application.php(1021): Symfony\Component\Console\Command\Command->run(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 /var/www/htdocs/vendor/symfony/console/Application.php(275): Symfony\Component\Console\Application->doRunCommand(Object(TechDivision\Import\Cli\Command\ImportCreateOkFileCommand), Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 /var/www/htdocs/vendor/symfony/console/Application.php(149): Symfony\Component\Console\Application->doRun(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 /var/www/htdocs/vendor/techdivision/import-cli-simple/bootstrap.php(40): Symfony\Component\Console\Application->run(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#17 /var/www/htdocs/vendor/techdivision/import-cli-simple/bin/import-simple.php(48): require('/var/www/htdocs...')
#18 /var/www/htdocs/vendor/techdivision/import-cli-simple/bin/import-simple(2): require('/var/www/htdocs...')
#19 /var/www/htdocs/vendor/bin/import-simple(117): include('/var/www/htdocs...')
#20 {main}
thrown in /var/www/htdocs/vendor/techdivision/import-configuration-jms/src/ConfigurationFactory.php on line 120

Fatal error: Uncaught Error: Call to undefined method Doctrine\Common\Annotations\AnnotationRegistry::registerLoader() in /var/www/htdocs/vendor/techdivision/import-configuration-jms/src/ConfigurationFactory.php:120
Stack trace:
#0 [internal function]: TechDivision\Import\Configuration\Jms\ConfigurationFactory->__construct(Object(Symfony\Component\DependencyInjection\ContainerBuilder), Object(TechDivision\Import\Configuration\Jms\ConfigurationParserFactory), Object(JMS\Serializer\SerializerBuilder))
#1 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(1109): ReflectionClass->newInstanceArgs(Array)
#2 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(608): Symfony\Component\DependencyInjection\ContainerBuilder->createService(Object(Symfony\Component\DependencyInjection\Definition), Array, true, 'import_cli.conf...')
#3 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(1232): Symfony\Component\DependencyInjection\ContainerBuilder->doGet('import_cli.conf...', 1, Array, true)
#4 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(1180): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices(Object(Symfony\Component\DependencyInjection\Reference), Array, true)
#5 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(1078): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices(Array, Array, true)
#6 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(608): Symfony\Component\DependencyInjection\ContainerBuilder->createService(Object(Symfony\Component\DependencyInjection\Definition), Array, true, 'import_cli.conf...')
#7 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(1232): Symfony\Component\DependencyInjection\ContainerBuilder->doGet('import_cli.conf...', 1, Array, true)
#8 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(1082): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices(Object(Symfony\Component\DependencyInjection\Reference), Array, true)
#9 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(608): Symfony\Component\DependencyInjection\ContainerBuilder->createService(Object(Symfony\Component\DependencyInjection\Definition), Array, true, 'configuration')
#10 /var/www/htdocs/vendor/symfony/dependency-injection/ContainerBuilder.php(553): Symfony\Component\DependencyInjection\ContainerBuilder->doGet('configuration', 1)
#11 /var/www/htdocs/vendor/techdivision/import-cli/src/Command/AbstractImportCommand.php(108): Symfony\Component\DependencyInjection\ContainerBuilder->get('configuration')
#12 /var/www/htdocs/vendor/symfony/console/Command/Command.php(255): TechDivision\Import\Cli\Command\AbstractImportCommand->execute(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 /var/www/htdocs/vendor/symfony/console/Application.php(1021): Symfony\Component\Console\Command\Command->run(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 /var/www/htdocs/vendor/symfony/console/Application.php(275): Symfony\Component\Console\Application->doRunCommand(Object(TechDivision\Import\Cli\Command\ImportCreateOkFileCommand), Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 /var/www/htdocs/vendor/symfony/console/Application.php(149): Symfony\Component\Console\Application->doRun(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 /var/www/htdocs/vendor/techdivision/import-cli-simple/bootstrap.php(40): Symfony\Component\Console\Application->run(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#17 /var/www/htdocs/vendor/techdivision/import-cli-simple/bin/import-simple.php(48): require('/var/www/htdocs...')
#18 /var/www/htdocs/vendor/techdivision/import-cli-simple/bin/import-simple(2): require('/var/www/htdocs...')
#19 /var/www/htdocs/vendor/bin/import-simple(117): include('/var/www/htdocs...')
#20 {main}
thrown in /var/www/htdocs/vendor/techdivision/import-configuration-jms/src/ConfigurationFactory.php on line 120

Make console output colorful

Is your feature request related to a problem? Please describe.

In the past we had an own function to display colorful log messages on the console.
No the logging output is sent to the console (4.0-alpha1) per default, which is great.

Shall we make that log output also use colors as per log level?

Describe the solution you'd like

wrap the messages with ... and so on

Describe alternatives you've considered
Leave it colorless

We might make a pull request, if you agree that the feature is desirable

Not importing sample data, ok file creation succeeded (Move file issue)

Describe the bug
When importing, the move-file part does not copy the ok file in the destination folder, breaking import.
Removing all move-file from the config fixes this.

To Reproduce
Steps to reproduce the behavior:
create a clean Mage env with composer
Create var/importexport

copy Pacemaker - Community Console Tool 3.8.53 to bin
Get https://raw.githubusercontent.com/techdivision/import-sample-data/master/generic/data/categories/add-update/category-import_20161024-194026_01.csv

Run ok:
~/dev$ php bin/import-cli-simple.phar import:create:ok-file


|__ | | | | __ () () ()
| | ___ | | | | | |
___ ___ _ ___ _ __
| |/ _ / | _ | | | | \ \ / / / | |/ _ | _
| | / (| | | | |
| | |\ V /| _
\ | () | | | |
|
|_
|_|| ||/|| _/ ||/|___/|| |_|
Now start import with serial 2e025e12-398d-4012-b6d6-2c6578b01ada [none => create-ok-files]
Successfully executed command import:create:ok-file with serial 2e025e12-398d-4012-b6d6-2c6578b01ada in 00:00:00 s

Run import cat:

php bin/import-cli-simple.phar import:categories


|__ | | | | __ () () ()
| | ___ | | | | | |
___ ___ _ ___ _ __
| |/ _ / | _ | | | | \ \ / / / | |/ _ | _
| | / (| | | | |
| | |\ V /| _
\ | () | | | |
|
|_
|_|| ||/|| _/ ||/|___/|| |_|
Now start import with serial 6c1e4939-f49e-4e46-b723-00270c9c6af3 [catalog_category => add-update]
[2021-12-05 16:10:08] logger/system.ERROR: TechDivision\Import\Exceptions\ApplicationStoppedException: Stop processing, because can't find the mandatory OK file to process at least one of 1 files in phar:///var/www/dev/bin/import-cli-simple.phar/vendor/techdivision/import-app-simple/src/Simple.php:751
Stack trace:
#0 phar:///var/www/dev/bin/import-cli-simple.phar/vendor/techdivision/import/src/Plugins/SubjectPlugin.php(132): TechDivision\Import\App\Simple->stop('Stop processing...')
#1 phar:///var/www/dev/bin/import-cli-simple.phar/vendor/techdivision/import/src/Plugins/PluginExecutor.php(117): TechDivision\Import\Plugins\SubjectPlugin->process()
#2 phar:///var/www/dev/bin/import-cli-simple.phar/vendor/techdivision/import/src/Modules/PluginModule.php(144): TechDivision\Import\Plugins\PluginExecutor->execute(Object(TechDivision\Import\Configuration\Jms\Configuration\Plugin))
#3 phar:///var/www/dev/bin/import-cli-simple.phar/vendor/techdivision/import-app-simple/src/Simple.php(622): TechDivision\Import\Modules\PluginModule->process()
#4 phar:///var/www/dev/bin/import-cli-simple.phar/vendor/techdivision/import-cli/src/Command/AbstractImportCommand.php(114): TechDivision\Import\App\Simple->process('6c1e4939-f49e-4...')
#5 phar:///var/www/dev/bin/import-cli-simple.phar/vendor/symfony/console/Command/Command.php(255): TechDivision\Import\Cli\Command\AbstractImportCommand->execute(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#6 phar:///var/www/dev/bin/import-cli-simple.phar/vendor/symfony/console/Application.php(1009): Symfony\Component\Console\Command\Command->run(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#7 phar:///var/www/dev/bin/import-cli-simple.phar/vendor/symfony/console/Application.php(273): Symfony\Component\Console\Application->doRunCommand(Object(TechDivision\Import\Cli\Command\ImportCategoriesCommand), Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#8 phar:///var/www/dev/bin/import-cli-simple.phar/vendor/symfony/console/Application.php(149): Symfony\Component\Console\Application->doRun(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#9 phar:///var/www/dev/bin/import-cli-simple.phar/bootstrap.php(53): Symfony\Component\Console\Application->run(Object(TechDivision\Import\Cli\Console\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#10 /var/www/dev/bin/import-cli-simple.phar(41): require('phar:///var/www...')
#11 {main} {"serial":"6c1e4939-f49e-4e46-b723-00270c9c6af3","memory_peak_usage":"20 MB"}
[2021-12-05 16:10:08] logger/system.WARNING: Can't finish import with serial 6c1e4939-f49e-4e46-b723-00270c9c6af3 in 0.011563 s {"serial":"6c1e4939-f49e-4e46-b723-00270c9c6af3","memory_peak_usage":"20 MB"}
Stop processing, because can't find the mandatory OK file to process at least one of 1 files
[2021-12-05 16:10:08] logger/system.WARNING: Stop processing, because can't find the mandatory OK file to process at least one of 1 files {"serial":"6c1e4939-f49e-4e46-b723-00270c9c6af3","memory_peak_usage":"20 MB"}

It seems the script copies the CSV file, but not the OK file to the execution path.
PHP 7.2.34-23+020210701.63+debian101.gbpd7cd48

Expected behavior
Import working

Screenshots

Additional context
Add any other context about the problem here.

Clean-up Not Happening On Product Import For Attribute Values

Describe the bug
According to https://docs.m2if.com/38/getting-started/configuration/clean-up:

Clean-Up functionality for the product import is activated by default and available for ... as well as for all product attributes (clean-up-empty-columns).

The way this reads, I should not have to do anything special to remove product attribute values. However, when I unset the CSV values, the product attribute value is not unset after the product import. It seems to be ignored. I have tested this with various attribute types including dropdowns, multiple selects, and text. The values are not unset regardless of the attribute type.

To Reproduce
Steps to reproduce the behavior:

  1. In Magento, create a few attributes of different types: dropdown, multiple select, text.
  2. Create a new product and set values for the product attributes.
  3. Create a CSV with a column for each of these attributes (not using the additional_attributes field).
  4. Do not set the values for these columns in the CSV.
  5. Run the product import through CLI.

Expected behavior
I expected the product attribute values to be removed (unset) for the given product.

Environment

  • Magento Open Source 2.3.3
  • PHP 7.3
  • techdivision/import-cli-simple 3.8.11

Support for database prefixes

My database is using a prefix for the tables. I found yet no way to add a database prefix to the configuration. Is there a solution to this problem?

Error on create:configuration-file

Describe the bug
bin/import-simple import:create:configuration-file
PHP Fatal error: Uncaught Error: Call to undefined method TechDivision\Import\Configuration\Jms\Configuration::getCustom() in import-cli-simple/vendor/techdivision/import-cli/src/Command/ImportCreateConfigurationFileCommand.php:84

To Reproduce
Steps to reproduce the behavior:

  1. composer create-project techdivision/import-cli-simple --no-dev
  2. bin/import-simple import:create:configuration-file
  3. error

**Context **

  • PHP 7.3
  • techdivision/import 15.2.1
  • techdivision/import-cli 9.0.4

Array support for attribute set import

It would be awesome to have array support for the attribute set import.
Currently:

for any additional Attribute Group a new row has to be added
https://docs.m2if.com/38/file-structure/attributes-set-and-group-import/attribute-groups

But instead of

attribute_set_name based_on entity_type_code sort_order attribute_group_name attribute_group_code attribute_group_tab_group_code attribute_group_sort_order default_id
Bag   catalog_product 2 Product Details product-details basic 10 1
        Content content

I'd love to see something like the multiple-field-delimiter and multiple-value-delimiter which exists for product import https://docs.m2if.com/38/file-structure/product-import/additional-attributes

For example:

attribute_set_name based_on entity_type_code sort_order attribute_group attribute_group_tab_group_code attribute_group_sort_order default_id
Bag   catalog_product 2 name="Product Details"|code="product-details",name="Content"|code="content"|tab_group_code="advanced" basic 10 1

Compatility with Magento 2.3.3

Trying to install M2IF 3.7.6 with Magento 2.3.3 via Composer fails with a library incompatibility of jms/serializer.

Magento, up from version 2.3.3, seems to use parts of the Allure Framework which is a multi-language test report tool. These framework has a composer dependency on jms/serializer version ^0.16.0 which is very outdated.

As long as these dependency uses these outdated versions of jms/serializer we need a solution to allow installation of M2IF as Magento 2.3.3 composer dependency.

Still trying to parse composer,json for Magento edition, even we have a configuration file

Describe the bug

We try to call import-simple with as small parameters as possible. But it seems to parse the composer.json even magento edition is specified

Is it a normal practice to have the Magento Edition in the composer JSON and not the own customer's project?

To Reproduce

composer.json starts like this:

{
    "name": "imi/custom_name_shop",
    "description": "Customer Shop",
    "type": "project",

app/etc/configuration/configuration.json

{
    "magento-edition": "CE",
    "magento-version": "2.3.4",
    "operation-name" : "replace",
    "table-prefix": ""
}

Run the script

amk@lafto:~/imi/projects/shop.example.com$ vendor/bin/import-simple import:create:ok-file

In SimpleConfigurationLoader.php line 435:
	                                                                                                                                                                           
  "shop_example_com" detected in "/home/amk/imi/projects/shop.example.com/composer.json" is not a valid Magento Edition, please set Magento Edition with the "--magento-edition" option  

Expected behavior
It uses the edition from the config file

CSV date format import improvements

Current date format is n/d/y, g:i A

  1. With Magento it's possible to use date attributes without time, so please make it possible to import data without time given. (eg. without , g:i A)
    image

  2. It shouldn't matter if you use like dor j, m or n (with and without leading zeros)
    Magento saves the date like YYYY-MM-DD HH:MM:SS (2019-09-12 09:55:42) or like date Y-m-d H:i:s so it would be awesome to have support for that as well.

Class "TechDivision\Import\Cli\Utils\DependencyInjectionKeys" not found

Hi,

I'm getting error
PHP Fatal error: Uncaught Error: Class "TechDivision\Import\Cli\Utils\DependencyInjectionKeys" not found

after running vendor/bin/import-simple

I installed packaced via composer require techdivision/simple-cli-import.

Should I install something else? Or where do I get this missing class?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.