В Magento существует ли способ удалить атрибут из настраиваемого продукта после его создания?
В Magento у меня есть куча настраиваемых продуктов, которые уже созданы, и теперь есть клиент, который изменил свое мнение и хочет удалить один из атрибутов. Мне сложно понять, как это сделать b/c. Я продолжаю получать сообщение об ошибке:
Этот атрибут используется в настраиваемых продукты. Вы не можете удалить его из набор атрибутов.
Я попытался войти в атрибут и сменил Использовать для создания настраиваемого продукта с "да" на "нет", но это ничего не делало при попытке удалить атрибут из существующих продуктов
Ответы
Ответ 1
Чтобы удалить один супер атрибут продукта (как они называются) из всех настраиваемых продуктов, вы можете выполнить этот SQL-запрос в базе данных:
DELETE FROM catalog_product_super_attribute
WHERE attribute_id = <id>
Таблица catalog_product_super_attribute
связывает продукты с атрибутами суперпродуктов. Вы можете добавлять и удалять атрибуты для создаваемых там настраиваемых продуктов.
Ответ 2
Похоже, вы пытаетесь сначала удалить атрибут из набора атрибутов, но вам нужно удалить его из настраиваемых продуктов, а затем установить атрибут. Откройте каждый настраиваемый продукт, перейдите на вкладку Связанные продукты и удалите атрибут (и связанные продукты), который не требуется. Сохраните каждый продукт, а затем попробуйте удалить атрибут из набора.
Ответ 3
Просто используйте phpmyadmin и подключитесь к своей базе данных.
Найдите таблицу eav_attribute.
Удалите необходимый атрибут.
Ответ 4
Возможно, это может помочь:
http://www.magentocommerce.com/boards/viewthread/6059/#t327478
Ответ 5
К сожалению, это невозможно из стандартного бэкэнда Magento.
Таким образом, вы должны смотреть на SQL-решения (я не являюсь их семейным другом).
Ответ 6
Основываясь на ответе Christian Davén, вы можете использовать следующее для удаления на основе имени attribute_code
вместо самого attribute_id
, просто чтобы убедиться, что вы ссылаетесь на правильный ID:
DELETE FROM `catalog_product_super_attribute`
WHERE `attribute_id` IN (
SELECT `attribute_id` FROM `eav_attribute`
WHERE `attribute_code` = "attribute"
)