From 96156958a1c0d90d6e3446d6413b46dad2ddd1f8 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 3 Aug 2017 22:18:40 +0200 Subject: [PATCH] Use php's strtolower to fix preparing attributes with unicode values. See function getAttributeOptions inside Mage_ImportExport_Model_Import_Entity_Abstract. strtolower is used there, generating keys with wrong encoding for unicode values of attributes. They don't match the strtolower version used here, which caused the attribute to be empty on import. --- .../Model/Import/Entity/Product/Type/Bundle.php | 2 +- .../Model/Import/Entity/Product/Type/Configurable.php | 4 ++-- .../Model/Import/Entity/Product/Type/Grouped.php | 2 +- .../Model/Import/Entity/Product/Type/Simple.php | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/app/code/community/AvS/FastSimpleImport/Model/Import/Entity/Product/Type/Bundle.php b/src/app/code/community/AvS/FastSimpleImport/Model/Import/Entity/Product/Type/Bundle.php index a8ac142e..e592b5d0 100644 --- a/src/app/code/community/AvS/FastSimpleImport/Model/Import/Entity/Product/Type/Bundle.php +++ b/src/app/code/community/AvS/FastSimpleImport/Model/Import/Entity/Product/Type/Bundle.php @@ -268,7 +268,7 @@ public function prepareAttributesForSave(array $rowData, $withDefaultValue = tru if (isset($rowData[$attrCode]) && strlen($rowData[$attrCode])) { $resultAttrs[$attrCode] = ('select' == $attrParams['type'] || 'multiselect' == $attrParams['type']) - ? $attrParams['options'][Mage::helper('fastsimpleimport')->strtolower($rowData[$attrCode])] + ? $attrParams['options'][strtolower($rowData[$attrCode])] : $rowData[$attrCode]; } elseif (array_key_exists($attrCode, $rowData)) { $resultAttrs[$attrCode] = $rowData[$attrCode]; diff --git a/src/app/code/community/AvS/FastSimpleImport/Model/Import/Entity/Product/Type/Configurable.php b/src/app/code/community/AvS/FastSimpleImport/Model/Import/Entity/Product/Type/Configurable.php index b15d1301..4dfd2afd 100644 --- a/src/app/code/community/AvS/FastSimpleImport/Model/Import/Entity/Product/Type/Configurable.php +++ b/src/app/code/community/AvS/FastSimpleImport/Model/Import/Entity/Product/Type/Configurable.php @@ -50,7 +50,7 @@ public function prepareAttributesForSave(array $rowData, $withDefaultValue = tru if (isset($rowData[$attrCode]) && strlen($rowData[$attrCode])) { $resultAttrs[$attrCode] = ('select' == $attrParams['type'] || 'multiselect' == $attrParams['type']) - ? $attrParams['options'][Mage::helper('fastsimpleimport')->strtolower($rowData[$attrCode])] + ? $attrParams['options'][strtolower($rowData[$attrCode])] : $rowData[$attrCode]; } elseif (array_key_exists($attrCode, $rowData)) { $resultAttrs[$attrCode] = $rowData[$attrCode]; @@ -245,7 +245,7 @@ public function saveData() ); } if (isset($rowData['_super_attribute_option']) && strlen($rowData['_super_attribute_option'])) { - $optionId = $attrParams['options'][Mage::helper('fastsimpleimport')->strtolower($rowData['_super_attribute_option'])]; + $optionId = $attrParams['options'][strtolower($rowData['_super_attribute_option'])]; if (!isset($productSuperData['used_attributes'][$attrParams['id']][$optionId])) { $productSuperData['used_attributes'][$attrParams['id']][$optionId] = false; diff --git a/src/app/code/community/AvS/FastSimpleImport/Model/Import/Entity/Product/Type/Grouped.php b/src/app/code/community/AvS/FastSimpleImport/Model/Import/Entity/Product/Type/Grouped.php index c58cd579..f5ec4c60 100644 --- a/src/app/code/community/AvS/FastSimpleImport/Model/Import/Entity/Product/Type/Grouped.php +++ b/src/app/code/community/AvS/FastSimpleImport/Model/Import/Entity/Product/Type/Grouped.php @@ -30,7 +30,7 @@ public function prepareAttributesForSave(array $rowData, $withDefaultValue = tru if (isset($rowData[$attrCode]) && strlen($rowData[$attrCode])) { $resultAttrs[$attrCode] = ('select' == $attrParams['type'] || 'multiselect' == $attrParams['type']) - ? $attrParams['options'][Mage::helper('fastsimpleimport')->strtolower($rowData[$attrCode])] + ? $attrParams['options'][strtolower($rowData[$attrCode])] : $rowData[$attrCode]; } elseif (array_key_exists($attrCode, $rowData)) { $resultAttrs[$attrCode] = $rowData[$attrCode]; diff --git a/src/app/code/community/AvS/FastSimpleImport/Model/Import/Entity/Product/Type/Simple.php b/src/app/code/community/AvS/FastSimpleImport/Model/Import/Entity/Product/Type/Simple.php index 7fc18e27..bb64f769 100644 --- a/src/app/code/community/AvS/FastSimpleImport/Model/Import/Entity/Product/Type/Simple.php +++ b/src/app/code/community/AvS/FastSimpleImport/Model/Import/Entity/Product/Type/Simple.php @@ -30,7 +30,7 @@ public function prepareAttributesForSave(array $rowData, $withDefaultValue = tru if (isset($rowData[$attrCode]) && strlen($rowData[$attrCode])) { $resultAttrs[$attrCode] = ('select' == $attrParams['type'] || 'multiselect' == $attrParams['type']) - ? $attrParams['options'][Mage::helper('fastsimpleimport')->strtolower($rowData[$attrCode])] + ? $attrParams['options'][strtolower($rowData[$attrCode])] : $rowData[$attrCode]; } elseif (array_key_exists($attrCode, $rowData)) { $resultAttrs[$attrCode] = $rowData[$attrCode];