Skip to content

Options are missing after import for mapped attributes #698

@andriydeveloper

Description

@andriydeveloper

Environment and configuration

  1. Magento 2.4.6-p6
  2. PHP 8.2
  3. MariaDB 10.6.18
  4. akeneo/module-magento2-connector-community 104.3.2 (also tested with 104.3.9)
  5. Akeneo 7

Steps to reproduce

  1. Create any Akeneo attribute for example "Connector" (different CamelCase) with option variants
  2. Create any Magento attribute for example "connector" (different CamelCase) with option variants
  3. Try to import

Expected result

  1. All options should be imported from Akeneo to Magento

Actual result

There is a bug with MySQL query in the file:
vendor/akeneo/module-magento2-connector-community/Job/Option.php
method mapOptions

There are 2 lines
1 . $connection->delete($tmpTable, ['attribute = ?' => $magentoAttribute]);
2. $options = $connection->select()->from($tmpTable)->where('attribute = ?', $akeneoAttribute);
image

When $magentoAttribute and $akeneoAttribute parameters have the same value with different CamelCase the first line just deletes everything and you have no data for $options

The possible solution is making the query sensitive for CamelCase
for example:
$connection->delete($tmpTable, ['BINARY attribute = ?' => $magentoAttribute]);
and after getting options delete it from the $tmpTable table in the database to prevent duplicates

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions