Giter VIP home page Giter VIP logo

magento2-connector-community's People

Contributors

bakkerpj avatar berwa avatar daimpiek avatar dnd-bazak avatar dnd-clowny avatar dnd-gautierbardon avatar dnd-gimix avatar dnd-juanito avatar dnd-kallard avatar dnd-mafer avatar dnd-rodstar avatar dnd-waxime avatar ismailcaakir avatar magentix avatar nidup avatar palviggi-flagbit avatar rakibabu avatar robin-homberg avatar sad270 avatar simonrl avatar tig-robertgrundeken 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  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

magento2-connector-community's Issues

Improve full page cache cleaning

Hi,

Thanks for writing this module, it's a real improvement over the old Pimgento module!

I have one suggestion, I see that the Magento FPC and block_html caches are cleared after processing the new entities from Akeneo. Here for example: \Akeneo\Connector\Job\Product::cleanCache. In the product example, this means that all of the pages are purged from the FPC after a Akeneo import. It would be more elegant I think to use the build in clean_cache_by_tags event, so we will partically clean the FPC and only the updated records will be purged.

Magento also does this a lot in the core modules, for example in the module-catalog-inventory. Check \Magento\CatalogInventory\Model\Indexer\Stock\CacheCleaner::clean

$productIds = $this->getProductIdsForCacheClean($productStatusesBefore, $productStatusesAfter);
if ($productIds) {
  $this->cacheContext->registerEntities(Product::CACHE_TAG, array_unique($productIds));
  $this->eventManager->dispatch('clean_cache_by_tags', ['object' => $this->cacheContext]);
}

Would this be something you'd consider for this module?

Problem with module update via composer

Environment and configuration

  1. current akeneo connector version - 100.3.0
  2. magento community version 2.3.3

Steps to reproduce

in magento's root directory run the following commands:

  1. composer require akeneo/module-magento2-connector-community:100.3.2 --no-update
  2. composer update

Expected result

Module should be update successfully and magento should work properly.

Actual result

image
2. Logs during composer update:

  • Updating guzzlehttp/guzzle (6.4.1 => 6.5.2): Downloading (100%)
  • Updating php-http/discovery (1.7.0 => 1.7.4): Downloading (100%)
  • Updating zendframework/zend-validator (2.12.2 => 2.13.0): Downloading (100%)
  • Updating zendframework/zend-http (2.10.0 => 2.11.2): Downloading (100%)
  • Updating symfony/polyfill-mbstring (v1.12.0 => v1.13.1): Downloading (100%)
  • Updating monolog/monolog (1.25.2 => 1.25.3): Downloading (100%)
  • Updating magento/zendframework1 (1.14.2 => 1.14.3): Downloading (100%)
  • Updating symfony/finder (v4.3.8 => v4.4.2): Downloading (100%)
  • Updating symfony/polyfill-ctype (v1.12.0 => v1.13.1): Downloading (100%)
  • Updating symfony/filesystem (v4.3.8 => v4.4.2): Downloading (100%)
  • Updating symfony/service-contracts (v1.1.8 => v2.0.1): Downloading (100%)
  • Updating composer/ca-bundle (1.2.4 => 1.2.5): Downloading (100%)
  • Updating zendframework/zend-db (2.10.0 => 2.11.0): Downloading (100%)
  • Updating akeneo/module-magento2-connector-community (100.3.0 => 100.3.2): Downloading (100%)
  • Updating magento/composer (1.5.0 => 1.5.1): Downloading (100%)
  • Updating zendframework/zend-i18n (2.10.0 => 2.10.1): Downloading (100%)
  • Updating zendframework/zend-log (2.11.0 => 2.12.0): Downloading (100%)
  • Updating zendframework/zend-view (2.11.3 => 2.11.4): Downloading (100%)
  • Updating zendframework/zend-barcode (2.7.1 => 2.8.0): Downloading (100%)
  • Updating myclabs/deep-copy (1.9.3 => 1.9.4): Downloading (100%)
  • Updating webmozart/assert (1.5.0 => 1.6.0): Downloading (100%)
  • Updating phpdocumentor/reflection-docblock (4.3.2 => 4.3.4): Downloading (100%)
  • Updating phpspec/prophecy (1.9.0 => 1.10.1): Downloading (100%)
  • Updating amzn/amazon-pay-sdk-php (3.5.0 => 3.6.0): Downloading (100%)
  • Updating symfony/event-dispatcher (v4.3.8 => v4.3.9): Downloading (100%)
  • Updating symfony/options-resolver (v4.3.8 => v4.4.2): Downloading (100%)
  • Updating symfony/polyfill-php70 (v1.12.0 => v1.13.1): Downloading (100%)
  • Updating symfony/polyfill-php72 (v1.12.0 => v1.13.1): Downloading (100%)
  • Updating symfony/stopwatch (v4.3.8 => v4.4.2): Downloading (100%)
  • Updating flow/jsonpath (0.4.0 => 0.5.0): Downloading (100%)
  • Updating fzaninotto/faker (v1.9.0 => v1.9.1): Downloading (100%)
  • Updating mustache/mustache (v2.12.0 => v2.13.0): Downloading (100%)
  • Updating paragonie/sodium_compat (v1.12.1 => v1.12.2): Downloading (100%)
  • Updating symfony/polyfill-util (v1.12.0 => v1.13.1): Downloading (100%)
  • Updating symfony/polyfill-php56 (v1.12.0 => v1.13.1): Downloading (100%)
  • Updating symfony/config (v4.3.8 => v4.4.2): Downloading (100%)
  • Updating symfony/dependency-injection (v4.3.8 => v4.4.2): Downloading (100%)
  • Updating codeception/phpunit-wrapper (6.7.0 => 6.8.0): Downloading (100%)
  • Updating symfony/dom-crawler (v4.3.8 => v4.4.2): Downloading (100%)
  • Updating symfony/browser-kit (v4.3.8 => v4.4.2): Downloading (100%)
  • Updating symfony/css-selector (v4.3.8 => v4.4.2): Downloading (100%)
  • Updating symfony/yaml (v4.3.8 => v4.4.2): Downloading (100%)
  • Updating symfony/polyfill-php54 (v1.12.0 => v1.13.1): Downloading (100%)
  • Updating symfony/polyfill-php55 (v1.12.0 => v1.13.1): Downloading (100%)
  • Updating phpoption/phpoption (1.5.2 => 1.7.2): Downloading (100%)
  • Updating symfony/inflector (v4.3.8 => v5.0.2): Downloading (100%)
  • Updating symfony/property-access (v4.3.8 => v5.0.2): Downloading (100%)
    Package container-interop/container-interop is abandoned, you should avoid using it. Use psr/container instead.
    Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.
    Package zendframework/zend-captcha is abandoned, you should avoid using it. Use laminas/laminas-captcha instead.
    Package zendframework/zend-code is abandoned, you should avoid using it. Use laminas/laminas-code instead.
    Package zendframework/zend-config is abandoned, you should avoid using it. Use laminas/laminas-config instead.
    Package zendframework/zend-console is abandoned, you should avoid using it. Use laminas/laminas-console instead.
    Package zendframework/zend-crypt is abandoned, you should avoid using it. Use laminas/laminas-crypt instead.
    Package zendframework/zend-di is abandoned, you should avoid using it. Use laminas/laminas-di instead.
    Package zendframework/zend-diactoros is abandoned, you should avoid using it. Use laminas/laminas-diactoros instead.
    Package zendframework/zend-escaper is abandoned, you should avoid using it. Use laminas/laminas-escaper instead.
    Package zendframework/zend-eventmanager is abandoned, you should avoid using it. Use laminas/laminas-eventmanager instead.
    Package zendframework/zend-feed is abandoned, you should avoid using it. Use laminas/laminas-feed instead.
    Package zendframework/zend-filter is abandoned, you should avoid using it. Use laminas/laminas-filter instead.
    Package zendframework/zend-form is abandoned, you should avoid using it. Use laminas/laminas-form instead.
    Package zendframework/zend-hydrator is abandoned, you should avoid using it. Use laminas/laminas-hydrator instead.
    Package zendframework/zend-inputfilter is abandoned, you should avoid using it. Use laminas/laminas-inputfilter instead.
    Package zendframework/zend-json is abandoned, you should avoid using it. Use laminas/laminas-json instead.
    Package zendframework/zend-loader is abandoned, you should avoid using it. Use laminas/laminas-loader instead.
    Package zendframework/zend-mail is abandoned, you should avoid using it. Use laminas/laminas-mail instead.
    Package zendframework/zend-math is abandoned, you should avoid using it. Use laminas/laminas-math instead.
    Package zendframework/zend-mime is abandoned, you should avoid using it. Use laminas/laminas-mime instead.
    Package zendframework/zend-modulemanager is abandoned, you should avoid using it. Use laminas/laminas-modulemanager instead.
    Package zendframework/zend-mvc is abandoned, you should avoid using it. Use laminas/laminas-mvc instead.
    Package zendframework/zend-psr7bridge is abandoned, you should avoid using it. Use laminas/laminas-psr7bridge instead.
    Package zendframework/zend-serializer is abandoned, you should avoid using it. Use laminas/laminas-serializer instead.
    Package zendframework/zend-server is abandoned, you should avoid using it. Use laminas/laminas-server instead.
    Package zendframework/zend-servicemanager is abandoned, you should avoid using it. Use laminas/laminas-servicemanager instead.
    Package zendframework/zend-session is abandoned, you should avoid using it. Use laminas/laminas-session instead.
    Package zendframework/zend-soap is abandoned, you should avoid using it. Use laminas/laminas-soap instead.
    Package zendframework/zend-stdlib is abandoned, you should avoid using it. Use laminas/laminas-stdlib instead.
    Package zendframework/zend-text is abandoned, you should avoid using it. Use laminas/laminas-text instead.
    Package zendframework/zend-uri is abandoned, you should avoid using it. Use laminas/laminas-uri instead.
    Package zendframework/zend-validator is abandoned, you should avoid using it. Use laminas/laminas-validator instead.
    Package zendframework/zend-http is abandoned, you should avoid using it. Use laminas/laminas-http instead.
    Package zendframework/zend-db is abandoned, you should avoid using it. Use laminas/laminas-db instead.
    Package zendframework/zend-i18n is abandoned, you should avoid using it. Use laminas/laminas-i18n instead.
    Package zendframework/zend-log is abandoned, you should avoid using it. Use laminas/laminas-log instead.
    Package zendframework/zend-view is abandoned, you should avoid using it. Use laminas/laminas-view instead.
    Package zendframework/zend-barcode is abandoned, you should avoid using it. Use laminas/laminas-barcode instead.
    Writing lock file
    Generating autoload files
  1. After this update none of the magento's commands are working in terminal.

  2. Magento's frontend and backend are stuck on loading.

Product import issue -Integrity constraint violation: 1062 Duplicate entry

Environment and configuration

  1. current akeneo connector version - 100.3.0
  2. magento community version 2.3.3

Steps to reproduce

Not sure why this issue arise. But I have been importing products with respect to attribute set, because we have 400K products in akeneo, so I am importing in chunks. in configuration of connector on magento's admin page I am selecting about 10 to 15 attribute sets to be imported, import the products and then I select other 10 to 15 attribute sets in config.

After several successful imports of products I have came accross this issue once for some attribute sets.

Expected result

  1. Products should be imported successfully.
  2. If there are any duplicate entries it should overwrite them in db.

Actual result

image

[13:55:38] SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '-3.html-3' for key 'URL_REWRITE_REQUEST_PATH_STORE_ID', query was: UPDATE url_rewrite SET request_path = ?, metadata = ? WHERE (url_rewrite_id = '513121')

Forbidden error on product entity only

Environment and configuration

Magento 2.3.2 Enterprise
Akeneo 2.3.53

Steps to reproduce

In the Magento control panel I am attempting to import products from Akeneo into Magento 2. I am successfully able to import all entity types (categories, families, attributes, etc.) except for product entities.

Additionally, I checked the API configuration and I seem to have all permissions applied for the configured user. I checked the PIM server apache access logs and I see the Guzzle request for an API token, but no subsequent call is ever made. All of the other entity types hit the api no problem after that.

For further testing, I went ahead and manually tested the API using the same credentials I have saved in Magento. I am able to make rest calls via curl without a problem.

Expected result

I would expect the products to import like the rest of the entities.

Actual result

I receive the following error:

[17:47:14] Start import
[17:47:14] Import ID : 5d5d83a204368
[17:47:14] Create temporary table
[17:47:14] Forbidden```

Any help would be appreciated.

Gateway Timeout - Impossible to Access Akeneo Connector Menu

Hello,
I Installed the connector this afternoon.
At the beginning it was working well and I could access the Akeneo Connector Menu in the Catalog of the Configuration.
Then, each time I accessed it, the query was getting longer and longer (was longer to reach it).
Until when finally, I couldn't reach it anymore (Gateway Timeout).
Now it's no longer possible to access the Akeneo Connector from M2.
The rest of M2 menus are working well and are instantly accessible.
Also, I haven't performed any change neither on M2, nor on my Server.

I suspect a problem with the Cron, but maybe I am wrong.
What do you think can be done to recover the access ?

Thanks for your advice.

Product import creates attribute values for products where the attribute isn't assigned

Environment and configuration

Magento 2.3.4 EE
Akeneo 3.2
Latest Connector
PHP 7.2

Steps to reproduce

After importing all products from Akeneo to Magento, I noticed that there were attribute values assigned to products for attributes that are not in the products family.

Expected result

There should only be attribute values assigned to products for attributes that are within the product family.

Actual result

For example, I have an entity_id (row_id in EE) of 3117. There are ~100 attributes assigned to this attribute set/family in Akeneo.

However, there are over 230 entries for just this entity in the magento catalog_product_entity_varchar table. A majority of them are null, because these attributes are not assigned to the products.

Screen Shot 2020-02-13 at 9 41 55 AM

I have been able to clean it up with a series of SQL queries, but the problem will happen the next time that product is imported. This is causing issues with other extensions.

CREATE TABLE catalog_product_entity_int_old LIKE catalog_product_entity_int;
INSERT INTO catalog_product_entity_int_old SELECT * FROM catalog_product_entity_int;

DELETE FROM catalog_product_entity_int 
    WHERE value_id IN 
        (SELECT cpei.value_id 
            FROM catalog_product_entity_int_old cpei 
            WHERE cpei.attribute_id NOT IN 
                (SELECT eea.attribute_id 
                    FROM eav_entity_attribute eea 
                        JOIN catalog_product_entity cpe ON eea.attribute_set_id = cpe.attribute_set_id 
                    WHERE cpe.row_id = cpei.row_id) 
        ORDER BY cpei.row_id);

DROP TABLE catalog_product_entity_int_old;

CREATE TABLE catalog_product_entity_varchar_old LIKE catalog_product_entity_varchar;
INSERT INTO catalog_product_entity_varchar_old SELECT * FROM catalog_product_entity_varchar;

DELETE FROM catalog_product_entity_varchar 
    WHERE value_id IN 
        (SELECT cpei.value_id 
            FROM catalog_product_entity_varchar_old cpei 
            WHERE cpei.attribute_id NOT IN 
                (SELECT eea.attribute_id 
                    FROM eav_entity_attribute eea 
                        JOIN catalog_product_entity cpe ON eea.attribute_set_id = cpe.attribute_set_id 
                    WHERE cpe.row_id = cpei.row_id) 
        ORDER BY cpei.row_id);

DROP TABLE catalog_product_entity_varchar_old;

CREATE TABLE catalog_product_entity_text_old LIKE catalog_product_entity_text;
INSERT INTO catalog_product_entity_text_old SELECT * FROM catalog_product_entity_text;

DELETE FROM catalog_product_entity_text 
    WHERE value_id IN 
        (SELECT cpei.value_id 
            FROM catalog_product_entity_text_old cpei 
            WHERE cpei.attribute_id NOT IN 
                (SELECT eea.attribute_id 
                    FROM eav_entity_attribute eea 
                        JOIN catalog_product_entity cpe ON eea.attribute_set_id = cpe.attribute_set_id 
                    WHERE cpe.row_id = cpei.row_id) 
        ORDER BY cpei.row_id);

DROP TABLE catalog_product_entity_text_old;

CREATE TABLE catalog_product_entity_decimal_old LIKE catalog_product_entity_decimal;
INSERT INTO catalog_product_entity_decimal_old SELECT * FROM catalog_product_entity_decimal;

DELETE FROM catalog_product_entity_decimal 
    WHERE value_id IN 
        (SELECT cpei.value_id 
            FROM catalog_product_entity_decimal_old cpei 
            WHERE cpei.attribute_id NOT IN 
                (SELECT eea.attribute_id 
                    FROM eav_entity_attribute eea 
                        JOIN catalog_product_entity cpe ON eea.attribute_set_id = cpe.attribute_set_id 
                    WHERE cpe.row_id = cpei.row_id) 
        ORDER BY cpei.row_id);

DROP TABLE catalog_product_entity_decimal_old;

Poor extensibility of jobs classes

Environment and configuration

  1. "akeneo/module-magento2-connector-community": "100.2.2" - only information needed, because it is architectural problem

Steps to reproduce

Nothing to reproduce.

Expected result

  1. Create new module dependant on connector.
  2. In di.xml, we inject into original connector's job class our class doing something during import. It should implement some interface to make it work, no matter of implemenetation.
  3. Import grabs our additional step and processes it, the same way, how it treats default steps.

Actual result

  1. The only (it seems so) is extending whole job class and inject it instead of connector. It can cause conflicts when upgrading.
  2. In class extending default job class we add methods needed, as they have to be called in scope of $this. It is because this line
    $this->{$method}();
  3. It violates open-closed SOLID principle -> https://en.wikipedia.org/wiki/Open%E2%80%93closed_principle

Attribute Group not created in Magento

I have some Attributes Groups and Families in Akeneo. After sync attribute and family from Magento all attributes were created under "Akeneo" group only to all family. Is any solution or suggestion for this ?

Wrong product urlrewrite create/update

Environment and configuration

  1. Akeneo connector 100.3.2
  2. Magento entreprise 2.3.3

No mapping defined for url_key field
An url_key attribute is created in akeneo with Value per locale, BUT NOT Value per channel

Steps to reproduce

Import products

Expected result

The url_rewrite in magento should be created/updated with the value of the url_key attribute in Akeneo

Actual result

The url_rewrite in magento should be created/updated with the value of the identifier

Connector doesnt respect any attribute label other than default

Environment and configuration

  1. Akeno connector 100.2.3
  2. Magento Open Source 2.3.2

Steps to reproduce

  1. Add new attribute in akeneo
  2. Add different attribute labels on different channels
  3. Import attributes in akeneo connector

Expected result

  1. Attribute is imported with all labels, they should be different for different store views

Actual result

  1. Only default label is imported.

akeneo attr labels
attr labels magento

No rollback mechanism during import

Environment and configuration

  1. akeneo/module-magento2-connector-community - 100.2.3
  2. Rest doesn't matter, as it's architectural issue.

Steps to reproduce

  1. It is generic issue, it's connected with each import.

Expected result

  1. When any sql exception or error is thrown during any import, there is rollback mechanism - on query/mysql level and/or import level, so operations performed before error are rolled back.

Actual result

  1. No rollback mechanism on any level. In case of any sql error, import just stops and data inserted/updated before is stuck in database, causing consequences that can't be forseen.

Family Variant import issue

Environment and configuration

  1. Magento 2.3.1, PHP 7.2.1, MySQL 5.7.25
  2. Akeneo Connector 100.2.4

Steps to reproduce

  1. Open System -> Akeneo Connector -> Import
  2. Import Family Variant
  3. Throwing "Found" error

Expected result

  1. Expected the Family Variants to be imported. The total number of Family variants in our system is 31 but since the default page limit set by Akeneo is only 10 and since the $paginationSize is not being passed to the all() method in createTable method, the next page is getting called for accessing the next 10 and so on. This next page call is causing the "Found" error.

Actual result

image

The Found error is an exception thrown in api-php client which is used by Connector. This happens when the next page content is getting imported. The http url of the next page is redirected to https which is causing the RedirectionException and printing the HTTP response for code 302 which is "Found"

This issue is related to my other issue in the Akeneo PHP API client : akeneo/api-php-client#171

Product name import issue for configurable product

Environment and configuration

  1. Magento 2.3.2, PHP 7.2.1, MySQL 5.7.25
  2. Akeneo Connector 100.1.0

Steps to reproduce

  1. Import products from PIM in Magento admin. System -> Akeneo Connector -> Import
  2. Import products
  3. Go to Catalog -> Product

Expected result

  1. Product name for simple and configurable product should be imported.
    image

Actual result

  1. Product name doesn't get imported for configurable product.
    image

Attribute mapping in Stores -> Configuration -> Catalog -> Akeneo Connector -> Products -> Attribute Mapping
image

Mapping of image for configurable

I am trying to get the first image from a variant product and set it as the image of product model on magento.

Steps to reproduce

  1. On akeneo, set a product model with a few variants, the variant holds the image attribute;
  2. Configure akeneo mapping under configurable sectio:

Configurable

Attribute		Type			Value
+-------------------------------------
model_name		Mapping			name
image_default	        First Variant
  1. run the import

Result:
Both simples and configurables have images but for configurables it is not associated with all four types of images. Swacher is

Configurable, when looking at images on edit product page I can see all the four tags are associated to the imported image (base, swatcher, thumb, small).

Here is the image for simple product which is the variant.
Screenshot 2020-01-24 at 01 01 07

Here is the result for image import for configurable product:
Screenshot 2020-01-24 at 01 00 51

Environment and configuration

  1. Akeneo 3.2.21 CE
  2. Connector 100.3.1

Url key doesn't work properly if attribute mapping is not set

Environment and configuration

  1. Akeno connector 100.2.3
  2. Magento Open Source 2.3.2

Steps to reproduce

  1. Url key with default configuration doesn't work (is imported with spaces)
  2. Identifier has to be mapped as url_key in attribute configuration

Expected result

  1. Such a mapping should be defined in config.xml or in setup script, so without any configuration url key, as crucial magento attribute, should work out of a box

Actual result

  1. You have to define mapping, and it is not easy to figure out, may need debbuging.

Product price import issue

Environment and configuration

  1. Magento 2.3.2, PHP 7.2.1, MySQL 5.7.25
  2. Akeneo Connector 100.1.0

Steps to reproduce

  1. Import products from PIM in Magento admin. System -> Akeneo Connector -> Import
  2. Import products
  3. Go to Catalog -> Product
  4. Click on edit product

Expected result

  1. Product price should be imported for Simple products.
    image

Actual result

  1. Product price is empty for configurable products. We assume this will be empty as in Magento.
    image

Product edit page does not open. It throws an exception.
image

Command line error trying to run import

Environment and configuration

Magento 2.3.2
Akeneo Magento 2 Connector 100.1.1
PHP 7.2
MySQL 5.6

Steps to reproduce

When I run Akeneo connector import from the command line, I receive the following error:

$ bin/magento akeneo_connector:import --code=family

In Developer.php line 55:

  Circular dependency: Magento\Logging\Model\Handler\Controllers depends on Magento\Logging\Model\Handler\Controllers and vice versa.

akeneo_connector:import [--code CODE]

Please note that I can run all of these jobs from the web interface without any problems. I have tried all of the different code types as well (product, family, category, etc.)

Expected result

It should run an import as it does from the web interface.

Actual result

$ bin/magento akeneo_connector:import --code=family

In Developer.php line 55:

  Circular dependency: Magento\Logging\Model\Handler\Controllers depends on Magento\Logging\Model\Handler\Controllers and vice versa.

akeneo_connector:import [--code CODE]

Any help would be appreciated! Thank you!

Internal Server Error - Product Model Import

Hi
Any idea how to triage this:

php bin/magento akeneo_connector:import --code=product_model

[12:31:19] Start import
[12:31:19] Import ID : 5db19997c535f
[12:31:19] Create temporary table
[12:31:20] completed
[12:31:20] Fill temporary table
[12:31:24] Internal Server Error

I have looked for some log information but didn't find anything.

Thanks
Martin

Associated products issue

Environment and configuration

  1. Magento 2.3.1, PHP 7.2.1, MySQL 5.7.25
  2. Akeneo Connector 100.2.4

Steps to reproduce

  1. Associate Related, Up-sell and Cross-sell products for a product in Magento.
  2. Run the imports in order.
  3. When the product edit page is opened, the Related and Up-sell products remain associated to the main product but the Cross-sell association is deleted.

Expected result

  1. All 3 associations intact.
    image

Actual result

  1. Cross-sell product association has been deleted after running the imports.
    image

While debugging, I found that in the following code, the associationName for up-sell and related were not present and it only had cross-sell.

image

So, the existing associations were deleted and while creating the new ones, the related and up-sell associations were intact but the cross-sell association was deleted. It created cross-sell associations ONLY for products that were imported from PIM.

The API Configuration "TEST" Button is inactive

Hello,
I am unable to save or Test my API Configuration of the Connector.
It was impossible to identify the root cause of the issue, and a way to replicate it.
I fill in all the required credentials properly (PIM URL, Akeneo user & its Password, Client ID, Client Secret), but the Test Button remains Grey and the Save Config gives an error "Gateway error".

Despite the TEST button remains Grey (=inactive), We pointed that the gateway error is caused when we try to save the Client Secret. After this error is reached, it's no longer possible to access the config page of the connector. We have to purge manually the Client secret, through phpMyAdmin, in the field "akeneo_connector/akeneo_api/client_secret". Then purge the cache at Magento level, in order to regain access to the Config Page.

Hence, in conclusion, for me it's even impossible to try the connector.
All the credentials are true and accurate.
Hence, would you have an idea to unbug this problem ? (at least to ungrey the TEST button, if possible).

Thanks in advance,
Best regards,

Select Type Attributes created as Text Field in Magento.

Akeneo Select Type Attribute saved as Text Field Type in Magento, Also attribute options do not import.

Environment and configuration

  1. Akeneo Version:CE 3.1.17
  2. Magento 2.3.2

Steps to reproduce

  1. Select Attribute Import Tab, and then start importing.
  2. After successful go to Admin->Store->Product
  3. Find Camera Type attribute, which is select type on akeneo. https://prnt.sc/oq06ji
  4. When you will view this attribute configuration its saved as Text Field. https://prnt.sc/oq0726
  5. If you will add this attribute on admin product page, after that you will not be able to open product page again. due to this error,
    {"0":"The \"formElement\" configuration parameter is required for the \"camera_type\" field.",

Expected result

  1. [Screenshots, logs or description]

Actual result

  1. [Screenshots, logs or description]

Feature request: allow to edit the response from Observer

Hi,

we're formatting / customizing some attributes after the import and are using the event akeneo_connector_import_step_finish for this.

However, when I call $observer->getImport()->setAdditionalMessage("my message") in my observer, the message never shows up.

I assume this is due to the response getting generated before the event:
https://github.com/akeneo/magento2-connector-community/blob/master/Job/Import.php#L447

Can we

  • either create the response after the event (preferred solution)
  • or add the $response object to the dispatch() method's arguments?

This way, I can tell the user what has been done, and also show exception messages if an error occured.

I'd be happy to submit a PR if you accept this feature.

Thanks
Simon

Configurable and variant url key generation errors

The issue is with creating a url_key in magento for configurable products. The urk_key is the url value that Magento automatically creates for every product, based on the product name.

In the connector configuration you are required for both simple and configurable products to map an Akeneo attribute to the Magento url_key attribute.

The simple configuration works fine. I have mapped the Akeneo name attribute to Magento url_key. A product with the name "Some Product Name" gets a Magento url_key populated correctly "some-product-name".

The configurable product import does not work correctly. Instead of creating the configurable product url_key as "some-product-name" it creates it as "Some Product Name"

A second related connector configurable error

I have had to change how I setup configurable variants in Akeneo by making a products name configurable at a variant level. For example Tshirt available in different colours. In theory this should be set up as Name being a common attribute and colour used to differentiate each variation. Instead I have had to create a unique name for each variation, e.g. Red Tshirt, Blue tshirt etc...

I have had to do this because when trying to import these products into Magento I was getting SQL duplicate entry error messages because the connector was trying to create url_keys for the different variations, but I think it was not including the colour variation when trying to create a url_key for each variation.

Environment and configuration

Steps to reproduce

Expected result

  1. [Screenshots, logs or description]

Actual result

  1. [Screenshots, logs or description]

Option attribute useless if no labels provided in Akeneo

Environment and configuration

  1. Akeno connector 100.2.3
  2. Magento Open Source 2.3.2

Steps to reproduce

  1. Add attribute with options in akeneo
  2. Define options but without any labels
  3. Import this attribute and its options

Expected result

  1. If we don't have any labels, attribute code is used to be inserted as default option label (or sth similar)
  2. Magento loads option label from default store view, using native option labels fallback

Actual result

  1. For all store views, null values are inserted in db.
  2. In admin there are empty rows, what is cirtical in case of setting multiple options without labels, as we have multiple empty rows.
  3. I bet we have consequences on frontend like #64

Error: Category Import

Hello there,

I'm using the Akeneo Magento 2 Community Connector on Magento 2.3.3 and running into an issue when I try to import the categories from Akeneo

When I start the import in Magento following error comes up:

[15:30:24] Start import
[15:30:24] Import ID : 5dfa46103b7e0
[15:30:24] Create temporary table
[15:30:25] completed
[15:30:26] Fill temporary table
[15:30:26] 2 line(s) found.
[15:30:27] Match code with Magento ID
[15:30:27] completed
[15:30:27] Create structure
[15:30:27] completed
[15:30:28] Create URL key
[15:30:28] Notice: Undefined index: parent_id in
httpdocs/vendor/akeneo/module-magento2-connector-community/Job/Category.php on line 296

Any one knows the reason?

Cheers
Ramin

Attribute with no labels are imported and displayed as unknown

Environment and configuration

  1. Akeno connector 100.2.3
  2. Magento Open Source 2.3.2

Steps to reproduce

  1. Add new attribute in akeneo
  2. Add no attribute labels
  3. Import attributes in akeneo connector

Expected result

  1. Attibute is not imported and error info is shown in import log OR attribute is imported and some label is generated basing on attribute code

Actual result

  1. Attribute is imported without any notice and its displayed (in admin page, don't know how its rendered in frontend) as "Unknown"

Website mapping is messed up sometimes due to connection problem

Environment and configuration

  1. Akeno connector 100.2.3
  2. Magento Open Source 2.3.2

Steps to reproduce

  1. Enter connector configuration
  2. I am not sure here - I think buggy situation happens when connection to akeneo is lost - there are not channels mapped to existing websites or they are somehow messed up.
  3. Save configuration

Expected result

  1. Configuration can't be saved, because we erase or mess website mapping beacuse of connection problem. Once channels are imported they should not rely on connection.

Actual result

  1. Website mapping is messed up

Attributes not mapping

Environment and configuration

  1. Magento 2.3.2 EE
  2. Akeneo 2.3.53 CE

Steps to reproduce

I have mapped two attributes from Akeneo to Magento. Upon importing, these values are both set as blank within Magento. It appears that all other data for custom attributes is mapped.

Attributes Mapped in Magento Admin:

Screen Shot 2019-08-22 at 11 28 56 AM

Snippets from the Akeneo rest API:
For the title attribute

    "title": [
      {
        "locale": "en_US",
        "scope": null,
        "data": "Test Product Name"
      }
    ],

For the shipping_weight attribute:

    "shipping_weight": [
      {
        "locale": null,
        "scope": null,
        "data": {
          "amount": "31.0000",
          "unit": "POUND"
        }
      }
    ],

Expected result

The data should be mapped

Actual result

Both fields come up empty in Catalog -> Products. All other fields including description, short_description and custom attributes appear to be fine.

Empty $products causing product_model import to fail

Hi
I've connected M2 to my Akeneo v3.1 install and the product model import fails due to an empty $product on line 179 of Helper/Import/Product.php. I've added a line to prevent this from failing - no idea why my $product array should be empty here :o(

`
foreach ($types as $key => $products) {

          if (empty($products)) continue;  /* ADDED LINE */
            /** @var string $name */
            $name = $group . '-' . $key;
            $associations[$name] = implode(',', $products);
        }

`

array_key_exists() expects parameter 2 to be array

Bonjour,

J'ai une erreur php dans la fonction formatValues() de Helper/Import/Product.php car dans la boucle ligne 141 je n'ai pas toujours un array.

Serait-il possible d'ajouter un test sur price pour vérifier si c'est un array ?

Capture d’écran 2019-11-19 à 18 26 17
Capture d’écran 2019-11-19 à 18 22 43

Cordialement

Alexis

File import

Hi,
I notice that the mapping of file type attributes does not work well.
A file attribute in Akeneo is transform as input in Magento and when import Akeneo attributes values in Magento, the file is not downloaded in Magento media folder.

Is there a solution for that ?

Edit: as explain on https://help.akeneo.com/magento2-connector/v100/articles/what-data.html
"As Magento 2 doesn't support the import of binary files other than images, the connector only import the relative PIM path for this attribute."

So there is no solution to import files fields between Akeneo - Magento ?

Probleme quand les attributs Akénéo sont en majuscules

Bonjour,

Lorsque nous avons des codes d'attributs avec une majuscule coté Akénéo, ceux-ci ne sont pas importés dans la fonction setValues() dans Job/Product.php car dans Magento les codes d'attributs sont en minuscule.

Cordialement

Alexis

MySQL error on attribute import

Receiving the following error while importing data in my Magento2.3 instance using the latest version of the Akeneo Connector:

[21:46:43] SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (magento2.eav_attribute_group, CONSTRAINT EAV_ATTR_GROUP_ATTR_SET_ID_EAV_ATTR_SET_ATTR_SET_ID FOREIGN KEY (attribute_set_id) REFERENCES eav_attribute_set (attribute_set_id) ON DELE), query was: INSERT INTO eav_attribute_set (attribute_set_id, entity_type_id, attribute_set_name, sort_order) SELECT tmp_akeneo_connector_entities_family._entity_id AS attribute_set_id, 4 AS entity_type_id, CONCAT("Pim", " ", labels-en_US) AS attribute_set_name, 1 AS sort_order FROM tmp_akeneo_connector_entities_family ON DUPLICATE KEY UPDATE attribute_set_id = VALUES(attribute_set_id), entity_type_id = VALUES(entity_type_id), attribute_set_name = VALUES(attribute_set_name), sort_order = VALUES(sort_order)

What values need to be cleared out of the database before performing another import?

Completeness filter operator does not get replaced by real operator in some case

Environment and configuration

  1. Akeneo connecto 100.2.2

Steps to reproduce

  1. Set in configuration completness filter as greater or equals on all locales

Expected result

  1. Operator gets replaced by some real operator
  2. With this data replaced it is sent to Akeneo

Actual result

  1. It is not replaced by real operator

By the way if someone can tell what is best configuration of this filter to get only products 100% complete on each channel and locales, please let me know or writ it here.

How to map images on configurable products?

Environment and configuration

  1. PHP 7.2.24
  2. Magento 2.3.3 EE
  3. Akeneo 3.2 CE
  4. Connector (latest)

Steps to reproduce

I am not sure if this is a bug, a feature request, or just something I am missing. Is there a way to map images on variant products using the connector?

  • I have an attribute (image1) that is set on all of my standard products and common product models. This maps to Magento just fine.
  • I have an attribute (image1_variant) that I change on my product variants. So for example, this shows a different color of a product that has a common design. I am able to map this to Magento so that it shows up on a product page in the image gallery.

When I change to the variant option in Magento (in this case, changing the color), it does not change the image in Magento. I can still see the red version of the product in the gallery, but it doesn't automatically change.

Is there a way to configure the connector to do this? I have tried numerous Akeneo connector configuration options, but I am unable to get it to work as expected.

Any help is greatly appreciated.

Weak data validation while importing attributes

It turned out that my installation of akeneo was broken, sth with database. However before discovering the issue with pim, I have already imported attributes, options and families. Connector didn't detected that my attribute data in pim is broken, so all custom imported attributes had backend type static (what means they require custom column in catalog_product_entity), and frontend_input was null (what broke product edit form). I doesn't really matter what was broken in pim instance, but the thing is that connector doesn't validate incoming data, what in production env can cause serious disaster.

Environment and configuration

  1. ""akeneo/module-magento2-connector-community": "100.2."

Steps to reproduce

  1. It maybe be hard to reporoduce, because it kind of general issue. Maybe some fixed payloads not having crucial information line attribute types of input type can cause this issue.

Expected result

  1. Imported data is validated accurately
  2. No broken attributes info is imported
  3. There is info which one is broken, and what exactly is to be fixed.

Actual result

  1. Broken data is imported without any notice.

Product Import taking too much time and not finished

Environment and configuration

  1. Magento 2.3.3 Open Source
  2. Akeneo Connector 100.3.2

Steps to reproduce

  1. Try to import product

Description

The total number of sku's in Akeneo is around 150000. But am trying to to import 25000 products only from the whole based on category selection. But each and every product import step takes too much of time to finish. So the importing will not be completed.

What is the server capacity needed to done this ?
What other settings needed to done this ?
Is any other way to get this done ?

Set a product name as the URL

Has followed the documentation for setting the product name as the URL, but still, it uses the SKU as the URL.

Environment and configuration

  1. Version:CE 3.1.9 Slick Hare

Steps to reproduce

Add Akeneo attribute mapping that points to the field «url_key»:
• Go to Store > Configuration > Catalog > Akeneo Connector
• Add attribute mapping
• Set Akeneo to «akeneo_product_name_field»
• Set Magento to «url_key»
• Save

Expected result

Product name as the URL

Actual result

SKU as URL

Akeneo Import Option paginationSize issue

Environment and configuration

  1. Magento 2.3.2, PHP 7.2.1, MySQL 5.7.25
  2. Akeneo Connector 100.1.0

Steps to reproduce

  1. Open System -> Akeneo Connector -> Import
  2. Import Options
  3. 10 Options imported

Expected result

  1. There are more than 10 Options available on PIM but only 10 are getting imported into our Magento System.

Actual result

  1. Only 10 options are getting imported into Magento.

We have fixed the issue by changing the code in \app\code\Akeneo\Connector\Job\Option.php; Methods: createTable() and insertData(). Following are the changes that we did.

image

image

We have passed the paginationSize value to the $this->akeneoClient->getAttributeApi()->all() method. Please do fix this for us on Akeneo module.

Admin locale is taken from general magento store configuration what is highly unintuitive

Environment and configuration

  1. Akeno connector 100.2.4
  2. Magento Open Source 2.3.3

Steps to reproduce

  1. Configure Magento store language in any language you need, for example pl_PL. Admin language is by default english.
  2. Enter connector configuration
  3. Choose channel mapped as admin, and to produce problem it shouldn't have locale pl_PL. You can set it to have en_US locale, because it seem fair for admin values.
  4. Run for example product import

Expected result

  1. It should be added new configuration field for akeneo connector, when you explicitly choose locale for admin channel, from which default/admin values are imported. Then, we you get error that chosen locale is not available for this channel, you can easily figure out situation. You have just chosen locale, being aware that there is a configuration is responsible for this.

Actual result

  1. You get error that there is no locale pl_PL mapped in admin channel.
  2. You are confused. You have chosen admin channel in module configuration, but why pl_PL is seeked? No idea. There is no field reposonsible for this.
  3. You ended up debbuging to figure out how to configure module to properly import values.

Category URL rewrite generation does not work correctly for multiple root categories

Hi,

we're having an issue with URL rewrite generation.

Environment and configuration

  1. Magento 2.3.1
  2. Akeneo Connector 100.2.3 (current version)
  3. Akeneo CE 3.1.9

Setup

  • 3 websites in Magento, each has 1 store view
  • each of these websites has a different root category
  • each website has a different locale
  • the same channel from Akeneo for all of these websites

Steps to reproduce

  1. Run a full import where a product that exists in more than 1 website gets imported, and categories get created

Expected result

  1. Categories get created under each root category
  2. The categories have the correct URLs, as defined in the URL key

Actual result

  1. Categories get created, that's fine
  2. Some categories have "-1" or "-2" appended to the URL key

Analysis

I assume the root cause is:

  1. because we have 3 root categories, one category from the PIM gets created 3x
  2. they all have identical names & url keys
  3. if we would create these categories from the Magento-backend, Magento would only create a rewrite for each of the categories in the store where the root category is assigned; this means that each category could have the same url key and identical url rewrites
  4. BUT the connector creates a rewrite for each category in each store, regardless of the root-category-setting.

On a first glance, this seems to happen in Job/Category.php, lines 610ff.

Before generating a URL rewrite, the import should check if $category(line 613) exists unter the root-category that $store (defined in line 588) uses; this could be done by loading the store, and checking the first element of explode('/', $category->getPath()), for example.

Is this correct, or do we have a misconfiguration somewhere?

Probleme import labels d'attributs dans certaines langues

Bonjour,

La traduction des labels d'attributs ne s'importent pas correctement pour certaines langues avec des codes langue avec 2 "_" (zh_Hans_CN, zh_Hant_HK, zh_Hant_TW, etc).

Dans la fonction insertData() les colonnes sont créés avec le code Akénéo : labels-zh_CN
ce qui ne match pas avec Magento. Quand on change la colonne par labels-zh_Hans_CN ca fonctionne bien.

Pareil pour les tables des options d'attributs, product model et product.

Cordialement

Alexis

Attribute option deleted in Akeneo doesn't get deleted in Magento

Environment and configuration

  1. Akeno connector 100.2.4
  2. Magento Open Source 2.3.3

Steps to reproduce

  1. Add new attribute option within akeneo
  2. Import attribute options
  3. Delete this option within akeneo
  4. Import options once again

Expected result

  1. Option deleted within akeneo is deleted within magento as well

Actual result

  1. Option deleted within akeneo is not deleted within magento.

Actually this problem doesn't cause (it seems so) any problem with product import, because when we delete option in akeneo is deleted througouht product base, so we import products without this option. But we have other options in magento, and different set in akeneo.
While importing options some sort of compare should be performed, and options not existing in akeneo, should be deleted (but not with raw sql, because then we end up with products having not exisitng options)

Completeness filter can cause setting empty values on other store views

Environment and configuration

  1. Akeneo connector 100.2.3
  2. Magento 2.3.2 (but I don't think it matters)

Steps to reproduce

  1. Add multiple channels in akeneo
  2. Add multiple products in akeneo with different completeness on different channels (with one locale to simplify case), let's say product A with completeness 100% on channel X and 100% on channel Y, and second one - B with completeness 50% on channel X and 100% on channel Y.
  3. Configure akeneo connector to filter products by completeness equals or greater than 100 (of course it can be any other value, not necessarily 100, but than completness of products have to be different to fullfil this situation).
  4. Import products

Expected result

  1. Product A is imported.
  2. Product B is not imported or gets disabled/hidden on website in which is not complete. (I know there is setting greater or equals on all locales but this doesn't work either)

Actual result

  1. Maybe because product A is complete on all channels, column in tmp table are for all channels (and locales)
  2. Product A is imported and product B is imported but only with values form channel Y, because values from channel X dont get fetched from akeneo. For product B, all columns for channel X are null.
  3. This causes empty values for product B, on website mapped to channel X, which breaks its product pages or require manual changes in product form in magento (to disable it for this webiste or sth).

It seems akeneo api has some limitations - it allows you to filter by completeness only in a scope of channel, so you fetch products complete on one channel and incomplete on another. So there a few things that can be done:

  • I have injected in akeneo different implementation of product normalizer which inclueds average completeness, and the I can make some plugin on data insertion or sth and remove products that are not complete enough - but this is way to go to fix the issue in project, not in this lib
  • if we use this filter, maybe products should be somehow disabled or removed from websites mapped to channels on which they are incomplete
  • maybe instead of one table, multiple tables per channel should be prepared, so product is processed separately for each website/store view later. All products not fetched from api, as not complete enough gets disabled with information to merchant, that they require some more work.

Option attribute import inserts null if no option label in akeneo

Environment and configuration

  1. Akeno connector 100.2.3
  2. Magento Open Source 2.3.2

Steps to reproduce

  1. Add attribute with options in akeneo
  2. Define options but randomly not fill options names in akeneo for some channels/locales
  3. Import this attribute and its options

Expected result

  1. For store views, for which attribute options dont have corresponding labels nothing is inserted in db.
  2. Magento loads option label from default store view, using native option labels fallback

Actual result

  1. For store views, for which attribute options dont have corresponding labels null values are inserted in db.
  2. Magento load null values, instead of loading default option label
  3. On frontend there are empty spaces in places where option should be rendered.

It is hard to notice it in admin panel as both null values and not exisitng values for specific store views causes just empty input for option label.

Family import - attributes are not assigned to any group

Steps to reproduce

  • Import family in Magento admin panel
  • Import attributes
  • Add some attributes/attribute_groups in Akeneo PIM to this family
  • Import family again

Expected result

After second family import attributes are assigned to proper attribute groups in given attribute set.

Actual result

On attribute set edit page, attributes are present, but not assigned to related attribute group.

Summary

It turns out that it is necessary, to import attributes again (even if they do not change, or there is no new one) to assign them to related groups in attribute sets.

I think it is not a bug, but very unintuitive behaviour. Family import should update all related data or at least give a hint to take some more steps (like import attributes again).

Family import not using default attribute set

When I import a family from Akeneo it creates an Attribute Set with only a few attributes (sku, ean, title, and primary image). And is missing some pretty crucial attributes from the default attributeset (including price, description, etc).

How can I make it so, that when the connector imports and creates the attribute sets from Akeneo into Magento, it will base the new attribute set on the default Magento attribute set?

Thanks!

Attributes with source model still get new options from Akeneo

It is quite edge case, but it sometimes occurs. While having attribute in magento with source model bound, and corresponding one with options in akeneo, we stilll got these options imported as eav options. It occurs for example if we create tax_class_id. Its options from akeneo are inserted into eav_attribute_option_* tables. There is no validation that attribute has source model. On the other hand it doesn't seem to break anything, but it is confusing.

Environment and configuration

  1. "akeneo/module-magento2-connector-community": "100.2.2"

Steps to reproduce

  1. Add attribute in akeneo which have source model in magento or modify magento attribute, so it works basing on source model
  2. Add some options in akeneo
  3. Import options in magento

Expected result

  1. No new rows in eav options tables = no rubbish in db.
  2. Info about difference in options source, so merchant or developer can fix that .

Actual result

  1. New rows in eav options tables for this attribute, despite the fact it doesnt use options
  2. No info what happened.

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.