akeneo / magento2-connector-community

Akeneo Connector for Magento 2
Open Software License 3.0
87 stars 89 forks source link

Products Duplicated in Initial Mapping with UUID, Error on Subsequent Imports #668

Open mrk-dzie opened 11 months ago

mrk-dzie commented 11 months ago

Environment and configuration

  1. "akeneo/module-magento2-connector-community": "^104.0"
  2. Akeneo version (Serenity | Growth | 7.0) using uuid for entity mapping

Steps to reproduce

  1. Create a product with the same SKU in Magento and Akeneo
  2. Run the product import job. The import will end with no error, but the product will be duplicated in the database, and mapping is created with the sku attribute for the entity that already existed in Magento before import.
  3. Run the product import job again. The job will end with the error Cardinality violation on the Match code with Magento/Adobe Commerce ID step.

Expected result

Existing products are not duplicated and are correctly mapped with Akeneo UUID code. image

Actual result

Products are duplicated during the initial mapping and subsequent imports encounter errors due to multiple mappings for the same UUID in akeneo_connector_entities

SQLSTATE[21000]: Cardinality violation: 1242 Subquery returns more than 1 row, query was: 
    UPDATE `tmp_akeneo_connector_entities_product` t
    SET `_entity_id` = (
        SELECT `entity_id` FROM `akeneo_connector_entities` c
        WHERE t.`uuid` = c.`code`
            AND c.`import` = "product"
    )

image image

krasii commented 11 months ago

The same issue

mrk-dzie commented 11 months ago

@krasii Check out the solution here https://github.com/akeneo/magento2-connector-community/pull/669

rbouma commented 7 months ago

Same problem here! @mrk-dzie Thanks for the solution. We have applied this in composer patch.

https://patch-diff.githubusercontent.com/raw/akeneo/magento2-connector-community/pull/669.patch

rbouma commented 7 months ago

@magentix Also this is breaking for a lot of people so can you have a look at this also?

pixiemediaweb commented 7 months ago

same issue for our clients. it is not practical to tell users to re-sku all of their products. hopefully sense will prevail soon ;)

megham2908 commented 1 month ago

Hi @mrk-dzie we are also facing the same issue. As per description I understand this patch will help us to skip to create duplicate items in Magento, could you please confirm the following questions regarding patch:

Thanks in advance.

indykoning commented 11 hours ago

Potentially as an addition to prevent this in the future creating another unique index for import + code db_schema.xml

...
    <table name="akeneo_connector_entities" resource="default" engine="innodb" comment="Akeneo Connector Entities Relation">
       ...
        <constraint xsi:type="unique" referenceId="AKENEO_CONNECTOR_ENTITIES_IMPORT_CODE">
            <column name="import"/>
           <column name="code"/>
        </constraint>
        ....
    </table>
...

If it will attempt to create more duplicate values the import will break immediately instead of next time you try to run it.