Атрибуты не выбрали в Backend после измененного от раскрывающегося списка до нескольких выбора

magento.stackexchange https://magento.stackexchange.com/questions/101129

Вопрос

Мы преобразовали атрибут DEPSDOWN ATTRUCE на MUTI-SELECT Атрибут, используя следующие запросы:

<Сильный> Шаг1)

UPDATE eav_attribute SET
entity_type_id = '10',
attribute_model = NULL,
backend_model = 'eav/entity_attribute_backend_array',
backend_type = 'varchar',
backend_table = NULL,
frontend_model = NULL,
frontend_input = 'multiselect',
frontend_class = NULL
WHERE attribute_id = '1244';
.

<Сильный> Шаг 2)

INSERT INTO catalog_product_entity_varchar ( entity_type_id, attribute_id, store_id, entity_id, value)
SELECT 10, 1244, 1, entity_id, value 
FROM catalog_product_entity_int
WHERE attribute_id = 1244;
.

<Сильный> Шаг 3)

DELETE FROM catalog_product_entity_int
WHERE entity_type_id = 10 and attribute_id = 1244;
.

Теперь, какие значения мы давали раньше для раскрывающегося атрибута, отображаются в передней панели.Но он не выбрал эти значения в Backend после того, как мы изменились на мультиселектный атрибут мы сделали reindex много раз.

Кредиты: http://swarmingLabs.com/how-to-change-a-product-dropdown-attribute-to-a-multi-select/

Это было полезно?

Решение

Работается атрибут

после перехода от Select на Multiselect.Это сохранено на бэкэнде.

Как предложено «Дэвидом Верхоленом», нежно использовать прямые SQL-запросы.Всегда необходимо использовать сценарий установки / обновления.

Дополнительно, я бы порекомендовал проверить ниже:

В представлении вашего магазина значения для этого атрибута «Multiselect» должны быть выбраны, и флажок «использует по умолчанию« CAN / не может (необязательно).

Проверьте это и дайте мне знать, если вы сможете отобразить это в вашей интернате.

Дополнительно, чтобы иметь возможность отображать атрибут Multi Select, вам может потребоваться использовать $_product->getAttributeText('custom_attribute').Это отобразит массив идентификаторов, скажем, 721, 722, 723, а затем вам может потребоваться запустить foreach , чтобы отобразить правильные значения, такие как ниже (грязное взлом, но работает):

Я сделал это в /catalog/product/view/attributes.phtml Файл

<?php
$_ageValues = $_product->getAttributeText($_data['code']);
$count = 1;
if(is_array($_ageValues)):
    foreach($_ageValues as $_ageValue):
        if($count > 1) { echo ","; }
        echo $_ageValue;
        $count++;
    endforeach; 
else: echo $_product->getAttributeText($_data['code']);
endif;
?>
.

Счастливое кодирование ...

Другие советы

Учебное пособие на самом деле не так.

Для поля выбора, в таблице Catalog_Product_entity_int, каждая параметр атрибута сохраняется в одной строке.Фактические значения хранятся в другой таблице.

для поля мультиселектного поля (это управляется моделью Backend), значения хранятся запятая, разделенная в одной строке в каталоге_Product_entity_varchar.

Так что вы не можете просто скопировать значения из одной таблицы на другую.Вы должны преобразовать их

=== Обновление===

Я ошибался об этом.Учебное пособие на самом деле должно работать, но учитывая некоторые специальные конфигурации магазина, здесь было упомянутое здесь:

Значения атрибутов отображаются только в интерфейсеИз магазина просмотра

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top