VladBlad Опубликовано: 24 июля 2013 Поделиться Опубликовано: 24 июля 2013 Пытаюсь удалить атрибут, пишет сообщение: Этот атрибут не может быть удален, так как назначен 2 товарам! Как найти эти товары, которым присвоен данный атрибут? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
dst Опубликовано: 4 апреля 2014 Поделиться Опубликовано: 4 апреля 2014 Если товаров не много, я делал так: 1. Качаем SQL БД, 2. Ищем в "oc_product_attribute" нужный атрибут и смотрим id товара, Пример: INSERT INTO `oc_product_attribute` (`product_id`, `attribute_id`, `language_id`, `text`) VALUES ('68', '12', '1', 'металл'); 3. Дальше ищем в БД "product_id=11111", где "11111" - это id нужного товара 4. Там же рядом "product_id=..." есть значение, напримет "korobka-2" - это урл товара, Выглядит строчка так INSERT INTO `oc_url_alias` (`url_alias_id`, `query`, `keyword`) VALUES ('849', 'product_id=68', 'korobka-2'); 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
chukcha Опубликовано: 4 апреля 2014 Поделиться Опубликовано: 4 апреля 2014 определяем id атрибута SELECT * FROM `oc_product_attribute` where `attribute_id`= Если совсем не нужен, то DELETE FROM `oc_product_attribute` where `attribute_id`= И удаляем атрибут из админки 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dst Опубликовано: 4 апреля 2014 Поделиться Опубликовано: 4 апреля 2014 определяем id атрибута SELECT * FROM `oc_product_attribute` where `attribute_id`= Если совсем не нужен, то DELETE FROM `oc_product_attribute` where `attribute_id`= И удаляем атрибут из админки Можно подробнее про удаление из админки? Есть 300 товаров с атрибутом "а", как бы его везде удалить? p.s. и 300 это не предел)) реструктуризация карточек товара однако :ugeek: Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 4 апреля 2014 Поделиться Опубликовано: 4 апреля 2014 вы можете определить id атрибута? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 4 апреля 2014 Поделиться Опубликовано: 4 апреля 2014 Можно подробнее про удаление из админки? Есть 300 товаров с атрибутом "а", как бы его везде удалить? p.s. и 300 это не предел)) реструктуризация карточек товара однако :ugeek: Из админки удаляется сам атрибут Сначала нужно удалить атрибут из товара в phpmyadmin Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dst Опубликовано: 4 апреля 2014 Поделиться Опубликовано: 4 апреля 2014 вы можете определить id атрибута? Да. Я имел ввиду, если без команд через панель myadmin, просто выгрузить через сам ocStoree и перезалить. там точно ничего не накроется? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dst Опубликовано: 4 апреля 2014 Поделиться Опубликовано: 4 апреля 2014 Всё разобрался. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 2 года спустя... davaiigrat Опубликовано: 29 октября 2016 Поделиться Опубликовано: 29 октября 2016 Добрый вечер! Очень надеюсь на помощь! Можете более подробно написать, как определить ID атрибута и как его удалить? Заранее спасибо! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 октября 2016 Поделиться Опубликовано: 30 октября 2016 ЗАйти в катлог, атрибуты, найти свой атрибут, в ссылке указан его id attribute_id Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 года спустя... olegchernov Опубликовано: 14 сентября 2020 Поделиться Опубликовано: 14 сентября 2020 В 04.04.2014 в 15:50, chukcha сказал: определяем id атрибута SELECT * FROM `oc_product_attribute` where `attribute_id`= Если совсем не нужен, то DELETE FROM `oc_product_attribute` where `attribute_id`= И удаляем атрибут из админки Прошу прощения, можете уточнить где это вводить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 11 месяцев спустя... Danishevskiy Опубликовано: 30 августа 2021 Поделиться Опубликовано: 30 августа 2021 В 04.04.2014 в 16:39, dst сказал: Всё разобрался. Если и правда разобрались поделитесь опытом, тоже очень нужно определить товары с ненужным атрибутом и во всех его удалить Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... WarStyle Опубликовано: 30 августа 2021 Поделиться Опубликовано: 30 августа 2021 3 часа назад, Danishevskiy сказал: Если и правда разобрались поделитесь опытом, тоже очень нужно определить товары с ненужным атрибутом и во всех его удалить Заходим в админку сайта, далее Каталог - Характеристики - Характеристики, выбираем нужный атрибут и редактируем. В адресной строке есть айди атрибута: http://joxi.ru/vAWnevYH3kPq12 Когда имеем айди, делаем запрос в базу данных как описано выше. В 04.04.2014 в 14:50, chukcha сказал: определяем id атрибута SELECT * FROM `oc_product_attribute` where `attribute_id`= Если совсем не нужен, то DELETE FROM `oc_product_attribute` where `attribute_id`= И удаляем атрибут из админки Перед всеми действиями в базе данных рекомендую сделать бекап базы данных! 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Danishevskiy Опубликовано: 31 августа 2021 Поделиться Опубликовано: 31 августа 2021 Огромное спасибо. Разобрался. Кому будет непонятно пишите в ЛС, расскажу что называется "на пальцах" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... vier Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 (изменено) Почему нельзя сразу удалить Атрибут/ы в даминке? - а всё потому, что перед удалением идет проверка на наличие Атрибутов у Товаров в файле - admin/controller/catalog/attribute.php Метод - protected function validateDelete() { if (!$this->user->hasPermission('modify', 'catalog/attribute')) { $this->error['warning'] = $this->language->get('error_permission'); } $this->load->model('catalog/product'); //здесь проверка foreach ($this->request->post['selected'] as $attribute_id) { $product_total = $this->model_catalog_product->getTotalProductsByAttributeId($attribute_id); if ($product_total) { $this->error['warning'] = sprintf($this->language->get('error_product'), $product_total); } } return !$this->error; } обойти это просто (чтоб не использовать выше предложенные решения, которые для Новачка возможно будут сложными, да и по времени затратные). Решение - закончить проверку в данном Методе раньше до проверки на наличие Атрибутов в Товарах - protected function validateDelete() { if (!$this->user->hasPermission('modify', 'catalog/attribute')) { $this->error['warning'] = $this->language->get('error_permission'); } //fix решение return !$this->error; $this->load->model('catalog/product'); foreach ($this->request->post['selected'] as $attribute_id) { $product_total = $this->model_catalog_product->getTotalProductsByAttributeId($attribute_id); if ($product_total) { $this->error['warning'] = sprintf($this->language->get('error_product'), $product_total); } } return !$this->error; } и удалить в таблице `product_attribute` (если будут данные атрибуты) в файле admin/model/catalog/attribute.php Метод - public function deleteAttribute($attribute_id) { //fix del_control $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute WHERE attribute_id = '" . (int)$attribute_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute_description WHERE attribute_id = '" . (int)$attribute_id . "'"); } можно и модификатором (для Opencart 2.x.x и 3.0.x) сам код модификатора - <?xml version="1.0" encoding="utf-8"?> <modification> <name><![CDATA[FIX delAttribute for Opencart 2.x.x - 3.0.x]]></name> <code>delattribute</code> <version>1.0</version> <author>Vier</author> <link>#</link> <file path="admin/controller/catalog/attribute.php"> <operation> <search><![CDATA[function validateDelete()]]></search> <add position="after" offset="4"><![CDATA[ /*fix_delattribute*/ return !$this->error; /*end fix_delattribute*/ ]]></add> </operation> </file> <file path="admin/model/catalog/attribute.php"> <operation> <search><![CDATA[function deleteAttribute($attribute_id]]></search> <add position="after" offset="2"><![CDATA[ /*fix_delattribute*/ $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); /*end fix_delattribute*/ ]]></add> </operation> </file> </modification> сам модификатор для Opencart 2.x.x - fix_del_attribute.ocmod.xml для Opencart 3.0.x (если устанавливать через админку.) - fix_del_attribute_3.ocmod.zip ( А если записать в папку /system/, то можно использовать для Opencart 2.x.x ) потом же не забыть обновить модификаторы в админке! (если не нарушены методы validateDelete() и deleteAttribute($attribute_id), то модификатор станет без проблем, а иначе возможно надо будет подогнать код) так же в целях случайного НЕ удаления, используйте модификатор временно. Изменено 1 сентября 2021 пользователем vier не дописал пост (отвлекли) 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Shureg Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 2 часа назад, vier сказал: Решение - закончить проверку в данном Методе раньше до проверки на наличие Атрибутов в Товарах - Вы это серьезно? Ваше "решение" - даже не эталон говнокода, это его апофеоз... А чего просто не предложили в БД удалить без всяких проверок? Подумаешь, потом будут ошибки во всех товарах, где этот атрибут был, зачем нам лишние проверки. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... vier Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 4 часа назад, vier сказал: в файле admin/model/catalog/attribute.php Метод - public function deleteAttribute($attribute_id) { //fix del_control $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute WHERE attribute_id = '" . (int)$attribute_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute_description WHERE attribute_id = '" . (int)$attribute_id . "'"); } странно, почему изначально в Opencart для контроля нет данного удаления атрибутов в таблице `product_attribute` Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 1 Перейти к списку тем Похожие публикации Attribute Category - Атрибуты категории Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 3) Теги: атрибут атрибуты attribute фильтр категория 0 комментариев 17 174 просмотра sv2109 21 января 2016 [Поддержка] Attribute Category - Атрибуты категории Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 3) Теги: атрибут атрибуты attribute фильтр категория 7 ответов 9 066 просмотров malinator 5 февраля 2021 Attribute Select - Атрибуты списком Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 2) Теги: атрибут атрибуты attribute фильтр 0 комментариев 14 594 просмотра sv2109 21 января 2016 [Поддержка] Attribute Select - Атрибуты списком 1 2 Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 2) Теги: атрибут атрибуты attribute фильтр 38 ответов 11 685 просмотров nogocuHoBuk 25 сентября 2023 [Поддержка] Поиск атрибутов в админ панеле Автор: eleo, 27 октября 2017 атрибут поиск атрибутов (и ещё 2) Теги: атрибут поиск атрибутов искать атрибут атрибут админка 3 ответа 2 443 просмотра eleo 14 декабря 2018 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Общие вопросы [Решено] Как удалить атрибут, если он присвоен товару? Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
dst Опубликовано: 4 апреля 2014 Поделиться Опубликовано: 4 апреля 2014 определяем id атрибута SELECT * FROM `oc_product_attribute` where `attribute_id`= Если совсем не нужен, то DELETE FROM `oc_product_attribute` where `attribute_id`= И удаляем атрибут из админки Можно подробнее про удаление из админки? Есть 300 товаров с атрибутом "а", как бы его везде удалить? p.s. и 300 это не предел)) реструктуризация карточек товара однако :ugeek: Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
chukcha Опубликовано: 4 апреля 2014 Поделиться Опубликовано: 4 апреля 2014 вы можете определить id атрибута? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 4 апреля 2014 Поделиться Опубликовано: 4 апреля 2014 Можно подробнее про удаление из админки? Есть 300 товаров с атрибутом "а", как бы его везде удалить? p.s. и 300 это не предел)) реструктуризация карточек товара однако :ugeek: Из админки удаляется сам атрибут Сначала нужно удалить атрибут из товара в phpmyadmin Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dst Опубликовано: 4 апреля 2014 Поделиться Опубликовано: 4 апреля 2014 вы можете определить id атрибута? Да. Я имел ввиду, если без команд через панель myadmin, просто выгрузить через сам ocStoree и перезалить. там точно ничего не накроется? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dst Опубликовано: 4 апреля 2014 Поделиться Опубликовано: 4 апреля 2014 Всё разобрался. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 2 года спустя... davaiigrat Опубликовано: 29 октября 2016 Поделиться Опубликовано: 29 октября 2016 Добрый вечер! Очень надеюсь на помощь! Можете более подробно написать, как определить ID атрибута и как его удалить? Заранее спасибо! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 октября 2016 Поделиться Опубликовано: 30 октября 2016 ЗАйти в катлог, атрибуты, найти свой атрибут, в ссылке указан его id attribute_id Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 года спустя... olegchernov Опубликовано: 14 сентября 2020 Поделиться Опубликовано: 14 сентября 2020 В 04.04.2014 в 15:50, chukcha сказал: определяем id атрибута SELECT * FROM `oc_product_attribute` where `attribute_id`= Если совсем не нужен, то DELETE FROM `oc_product_attribute` where `attribute_id`= И удаляем атрибут из админки Прошу прощения, можете уточнить где это вводить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 11 месяцев спустя... Danishevskiy Опубликовано: 30 августа 2021 Поделиться Опубликовано: 30 августа 2021 В 04.04.2014 в 16:39, dst сказал: Всё разобрался. Если и правда разобрались поделитесь опытом, тоже очень нужно определить товары с ненужным атрибутом и во всех его удалить Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... WarStyle Опубликовано: 30 августа 2021 Поделиться Опубликовано: 30 августа 2021 3 часа назад, Danishevskiy сказал: Если и правда разобрались поделитесь опытом, тоже очень нужно определить товары с ненужным атрибутом и во всех его удалить Заходим в админку сайта, далее Каталог - Характеристики - Характеристики, выбираем нужный атрибут и редактируем. В адресной строке есть айди атрибута: http://joxi.ru/vAWnevYH3kPq12 Когда имеем айди, делаем запрос в базу данных как описано выше. В 04.04.2014 в 14:50, chukcha сказал: определяем id атрибута SELECT * FROM `oc_product_attribute` where `attribute_id`= Если совсем не нужен, то DELETE FROM `oc_product_attribute` where `attribute_id`= И удаляем атрибут из админки Перед всеми действиями в базе данных рекомендую сделать бекап базы данных! 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Danishevskiy Опубликовано: 31 августа 2021 Поделиться Опубликовано: 31 августа 2021 Огромное спасибо. Разобрался. Кому будет непонятно пишите в ЛС, расскажу что называется "на пальцах" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... vier Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 (изменено) Почему нельзя сразу удалить Атрибут/ы в даминке? - а всё потому, что перед удалением идет проверка на наличие Атрибутов у Товаров в файле - admin/controller/catalog/attribute.php Метод - protected function validateDelete() { if (!$this->user->hasPermission('modify', 'catalog/attribute')) { $this->error['warning'] = $this->language->get('error_permission'); } $this->load->model('catalog/product'); //здесь проверка foreach ($this->request->post['selected'] as $attribute_id) { $product_total = $this->model_catalog_product->getTotalProductsByAttributeId($attribute_id); if ($product_total) { $this->error['warning'] = sprintf($this->language->get('error_product'), $product_total); } } return !$this->error; } обойти это просто (чтоб не использовать выше предложенные решения, которые для Новачка возможно будут сложными, да и по времени затратные). Решение - закончить проверку в данном Методе раньше до проверки на наличие Атрибутов в Товарах - protected function validateDelete() { if (!$this->user->hasPermission('modify', 'catalog/attribute')) { $this->error['warning'] = $this->language->get('error_permission'); } //fix решение return !$this->error; $this->load->model('catalog/product'); foreach ($this->request->post['selected'] as $attribute_id) { $product_total = $this->model_catalog_product->getTotalProductsByAttributeId($attribute_id); if ($product_total) { $this->error['warning'] = sprintf($this->language->get('error_product'), $product_total); } } return !$this->error; } и удалить в таблице `product_attribute` (если будут данные атрибуты) в файле admin/model/catalog/attribute.php Метод - public function deleteAttribute($attribute_id) { //fix del_control $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute WHERE attribute_id = '" . (int)$attribute_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute_description WHERE attribute_id = '" . (int)$attribute_id . "'"); } можно и модификатором (для Opencart 2.x.x и 3.0.x) сам код модификатора - <?xml version="1.0" encoding="utf-8"?> <modification> <name><![CDATA[FIX delAttribute for Opencart 2.x.x - 3.0.x]]></name> <code>delattribute</code> <version>1.0</version> <author>Vier</author> <link>#</link> <file path="admin/controller/catalog/attribute.php"> <operation> <search><![CDATA[function validateDelete()]]></search> <add position="after" offset="4"><![CDATA[ /*fix_delattribute*/ return !$this->error; /*end fix_delattribute*/ ]]></add> </operation> </file> <file path="admin/model/catalog/attribute.php"> <operation> <search><![CDATA[function deleteAttribute($attribute_id]]></search> <add position="after" offset="2"><![CDATA[ /*fix_delattribute*/ $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); /*end fix_delattribute*/ ]]></add> </operation> </file> </modification> сам модификатор для Opencart 2.x.x - fix_del_attribute.ocmod.xml для Opencart 3.0.x (если устанавливать через админку.) - fix_del_attribute_3.ocmod.zip ( А если записать в папку /system/, то можно использовать для Opencart 2.x.x ) потом же не забыть обновить модификаторы в админке! (если не нарушены методы validateDelete() и deleteAttribute($attribute_id), то модификатор станет без проблем, а иначе возможно надо будет подогнать код) так же в целях случайного НЕ удаления, используйте модификатор временно. Изменено 1 сентября 2021 пользователем vier не дописал пост (отвлекли) 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Shureg Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 2 часа назад, vier сказал: Решение - закончить проверку в данном Методе раньше до проверки на наличие Атрибутов в Товарах - Вы это серьезно? Ваше "решение" - даже не эталон говнокода, это его апофеоз... А чего просто не предложили в БД удалить без всяких проверок? Подумаешь, потом будут ошибки во всех товарах, где этот атрибут был, зачем нам лишние проверки. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... vier Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 4 часа назад, vier сказал: в файле admin/model/catalog/attribute.php Метод - public function deleteAttribute($attribute_id) { //fix del_control $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute WHERE attribute_id = '" . (int)$attribute_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute_description WHERE attribute_id = '" . (int)$attribute_id . "'"); } странно, почему изначально в Opencart для контроля нет данного удаления атрибутов в таблице `product_attribute` Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 1 Перейти к списку тем Похожие публикации Attribute Category - Атрибуты категории Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 3) Теги: атрибут атрибуты attribute фильтр категория 0 комментариев 17 174 просмотра sv2109 21 января 2016 [Поддержка] Attribute Category - Атрибуты категории Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 3) Теги: атрибут атрибуты attribute фильтр категория 7 ответов 9 066 просмотров malinator 5 февраля 2021 Attribute Select - Атрибуты списком Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 2) Теги: атрибут атрибуты attribute фильтр 0 комментариев 14 594 просмотра sv2109 21 января 2016 [Поддержка] Attribute Select - Атрибуты списком 1 2 Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 2) Теги: атрибут атрибуты attribute фильтр 38 ответов 11 685 просмотров nogocuHoBuk 25 сентября 2023 [Поддержка] Поиск атрибутов в админ панеле Автор: eleo, 27 октября 2017 атрибут поиск атрибутов (и ещё 2) Теги: атрибут поиск атрибутов искать атрибут атрибут админка 3 ответа 2 443 просмотра eleo 14 декабря 2018 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Общие вопросы [Решено] Как удалить атрибут, если он присвоен товару? Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
chukcha Опубликовано: 4 апреля 2014 Поделиться Опубликовано: 4 апреля 2014 Можно подробнее про удаление из админки? Есть 300 товаров с атрибутом "а", как бы его везде удалить? p.s. и 300 это не предел)) реструктуризация карточек товара однако :ugeek: Из админки удаляется сам атрибут Сначала нужно удалить атрибут из товара в phpmyadmin Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dst Опубликовано: 4 апреля 2014 Поделиться Опубликовано: 4 апреля 2014 вы можете определить id атрибута? Да. Я имел ввиду, если без команд через панель myadmin, просто выгрузить через сам ocStoree и перезалить. там точно ничего не накроется? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... dst Опубликовано: 4 апреля 2014 Поделиться Опубликовано: 4 апреля 2014 Всё разобрался. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 2 года спустя... davaiigrat Опубликовано: 29 октября 2016 Поделиться Опубликовано: 29 октября 2016 Добрый вечер! Очень надеюсь на помощь! Можете более подробно написать, как определить ID атрибута и как его удалить? Заранее спасибо! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 30 октября 2016 Поделиться Опубликовано: 30 октября 2016 ЗАйти в катлог, атрибуты, найти свой атрибут, в ссылке указан его id attribute_id Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 года спустя... olegchernov Опубликовано: 14 сентября 2020 Поделиться Опубликовано: 14 сентября 2020 В 04.04.2014 в 15:50, chukcha сказал: определяем id атрибута SELECT * FROM `oc_product_attribute` where `attribute_id`= Если совсем не нужен, то DELETE FROM `oc_product_attribute` where `attribute_id`= И удаляем атрибут из админки Прошу прощения, можете уточнить где это вводить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 11 месяцев спустя... Danishevskiy Опубликовано: 30 августа 2021 Поделиться Опубликовано: 30 августа 2021 В 04.04.2014 в 16:39, dst сказал: Всё разобрался. Если и правда разобрались поделитесь опытом, тоже очень нужно определить товары с ненужным атрибутом и во всех его удалить Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... WarStyle Опубликовано: 30 августа 2021 Поделиться Опубликовано: 30 августа 2021 3 часа назад, Danishevskiy сказал: Если и правда разобрались поделитесь опытом, тоже очень нужно определить товары с ненужным атрибутом и во всех его удалить Заходим в админку сайта, далее Каталог - Характеристики - Характеристики, выбираем нужный атрибут и редактируем. В адресной строке есть айди атрибута: http://joxi.ru/vAWnevYH3kPq12 Когда имеем айди, делаем запрос в базу данных как описано выше. В 04.04.2014 в 14:50, chukcha сказал: определяем id атрибута SELECT * FROM `oc_product_attribute` where `attribute_id`= Если совсем не нужен, то DELETE FROM `oc_product_attribute` where `attribute_id`= И удаляем атрибут из админки Перед всеми действиями в базе данных рекомендую сделать бекап базы данных! 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Danishevskiy Опубликовано: 31 августа 2021 Поделиться Опубликовано: 31 августа 2021 Огромное спасибо. Разобрался. Кому будет непонятно пишите в ЛС, расскажу что называется "на пальцах" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... vier Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 (изменено) Почему нельзя сразу удалить Атрибут/ы в даминке? - а всё потому, что перед удалением идет проверка на наличие Атрибутов у Товаров в файле - admin/controller/catalog/attribute.php Метод - protected function validateDelete() { if (!$this->user->hasPermission('modify', 'catalog/attribute')) { $this->error['warning'] = $this->language->get('error_permission'); } $this->load->model('catalog/product'); //здесь проверка foreach ($this->request->post['selected'] as $attribute_id) { $product_total = $this->model_catalog_product->getTotalProductsByAttributeId($attribute_id); if ($product_total) { $this->error['warning'] = sprintf($this->language->get('error_product'), $product_total); } } return !$this->error; } обойти это просто (чтоб не использовать выше предложенные решения, которые для Новачка возможно будут сложными, да и по времени затратные). Решение - закончить проверку в данном Методе раньше до проверки на наличие Атрибутов в Товарах - protected function validateDelete() { if (!$this->user->hasPermission('modify', 'catalog/attribute')) { $this->error['warning'] = $this->language->get('error_permission'); } //fix решение return !$this->error; $this->load->model('catalog/product'); foreach ($this->request->post['selected'] as $attribute_id) { $product_total = $this->model_catalog_product->getTotalProductsByAttributeId($attribute_id); if ($product_total) { $this->error['warning'] = sprintf($this->language->get('error_product'), $product_total); } } return !$this->error; } и удалить в таблице `product_attribute` (если будут данные атрибуты) в файле admin/model/catalog/attribute.php Метод - public function deleteAttribute($attribute_id) { //fix del_control $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute WHERE attribute_id = '" . (int)$attribute_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute_description WHERE attribute_id = '" . (int)$attribute_id . "'"); } можно и модификатором (для Opencart 2.x.x и 3.0.x) сам код модификатора - <?xml version="1.0" encoding="utf-8"?> <modification> <name><![CDATA[FIX delAttribute for Opencart 2.x.x - 3.0.x]]></name> <code>delattribute</code> <version>1.0</version> <author>Vier</author> <link>#</link> <file path="admin/controller/catalog/attribute.php"> <operation> <search><![CDATA[function validateDelete()]]></search> <add position="after" offset="4"><![CDATA[ /*fix_delattribute*/ return !$this->error; /*end fix_delattribute*/ ]]></add> </operation> </file> <file path="admin/model/catalog/attribute.php"> <operation> <search><![CDATA[function deleteAttribute($attribute_id]]></search> <add position="after" offset="2"><![CDATA[ /*fix_delattribute*/ $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); /*end fix_delattribute*/ ]]></add> </operation> </file> </modification> сам модификатор для Opencart 2.x.x - fix_del_attribute.ocmod.xml для Opencart 3.0.x (если устанавливать через админку.) - fix_del_attribute_3.ocmod.zip ( А если записать в папку /system/, то можно использовать для Opencart 2.x.x ) потом же не забыть обновить модификаторы в админке! (если не нарушены методы validateDelete() и deleteAttribute($attribute_id), то модификатор станет без проблем, а иначе возможно надо будет подогнать код) так же в целях случайного НЕ удаления, используйте модификатор временно. Изменено 1 сентября 2021 пользователем vier не дописал пост (отвлекли) 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Shureg Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 2 часа назад, vier сказал: Решение - закончить проверку в данном Методе раньше до проверки на наличие Атрибутов в Товарах - Вы это серьезно? Ваше "решение" - даже не эталон говнокода, это его апофеоз... А чего просто не предложили в БД удалить без всяких проверок? Подумаешь, потом будут ошибки во всех товарах, где этот атрибут был, зачем нам лишние проверки. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... vier Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 4 часа назад, vier сказал: в файле admin/model/catalog/attribute.php Метод - public function deleteAttribute($attribute_id) { //fix del_control $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute WHERE attribute_id = '" . (int)$attribute_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute_description WHERE attribute_id = '" . (int)$attribute_id . "'"); } странно, почему изначально в Opencart для контроля нет данного удаления атрибутов в таблице `product_attribute` Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 1 Перейти к списку тем Похожие публикации Attribute Category - Атрибуты категории Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 3) Теги: атрибут атрибуты attribute фильтр категория 0 комментариев 17 174 просмотра sv2109 21 января 2016 [Поддержка] Attribute Category - Атрибуты категории Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 3) Теги: атрибут атрибуты attribute фильтр категория 7 ответов 9 066 просмотров malinator 5 февраля 2021 Attribute Select - Атрибуты списком Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 2) Теги: атрибут атрибуты attribute фильтр 0 комментариев 14 594 просмотра sv2109 21 января 2016 [Поддержка] Attribute Select - Атрибуты списком 1 2 Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 2) Теги: атрибут атрибуты attribute фильтр 38 ответов 11 685 просмотров nogocuHoBuk 25 сентября 2023 [Поддержка] Поиск атрибутов в админ панеле Автор: eleo, 27 октября 2017 атрибут поиск атрибутов (и ещё 2) Теги: атрибут поиск атрибутов искать атрибут атрибут админка 3 ответа 2 443 просмотра eleo 14 декабря 2018 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Общие вопросы [Решено] Как удалить атрибут, если он присвоен товару? Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
dst Опубликовано: 4 апреля 2014 Поделиться Опубликовано: 4 апреля 2014 вы можете определить id атрибута? Да. Я имел ввиду, если без команд через панель myadmin, просто выгрузить через сам ocStoree и перезалить. там точно ничего не накроется? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
dst Опубликовано: 4 апреля 2014 Поделиться Опубликовано: 4 апреля 2014 Всё разобрался. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
davaiigrat Опубликовано: 29 октября 2016 Поделиться Опубликовано: 29 октября 2016 Добрый вечер! Очень надеюсь на помощь! Можете более подробно написать, как определить ID атрибута и как его удалить? Заранее спасибо! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
chukcha Опубликовано: 30 октября 2016 Поделиться Опубликовано: 30 октября 2016 ЗАйти в катлог, атрибуты, найти свой атрибут, в ссылке указан его id attribute_id Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 3 года спустя... olegchernov Опубликовано: 14 сентября 2020 Поделиться Опубликовано: 14 сентября 2020 В 04.04.2014 в 15:50, chukcha сказал: определяем id атрибута SELECT * FROM `oc_product_attribute` where `attribute_id`= Если совсем не нужен, то DELETE FROM `oc_product_attribute` where `attribute_id`= И удаляем атрибут из админки Прошу прощения, можете уточнить где это вводить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 11 месяцев спустя... Danishevskiy Опубликовано: 30 августа 2021 Поделиться Опубликовано: 30 августа 2021 В 04.04.2014 в 16:39, dst сказал: Всё разобрался. Если и правда разобрались поделитесь опытом, тоже очень нужно определить товары с ненужным атрибутом и во всех его удалить Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... WarStyle Опубликовано: 30 августа 2021 Поделиться Опубликовано: 30 августа 2021 3 часа назад, Danishevskiy сказал: Если и правда разобрались поделитесь опытом, тоже очень нужно определить товары с ненужным атрибутом и во всех его удалить Заходим в админку сайта, далее Каталог - Характеристики - Характеристики, выбираем нужный атрибут и редактируем. В адресной строке есть айди атрибута: http://joxi.ru/vAWnevYH3kPq12 Когда имеем айди, делаем запрос в базу данных как описано выше. В 04.04.2014 в 14:50, chukcha сказал: определяем id атрибута SELECT * FROM `oc_product_attribute` where `attribute_id`= Если совсем не нужен, то DELETE FROM `oc_product_attribute` where `attribute_id`= И удаляем атрибут из админки Перед всеми действиями в базе данных рекомендую сделать бекап базы данных! 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Danishevskiy Опубликовано: 31 августа 2021 Поделиться Опубликовано: 31 августа 2021 Огромное спасибо. Разобрался. Кому будет непонятно пишите в ЛС, расскажу что называется "на пальцах" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... vier Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 (изменено) Почему нельзя сразу удалить Атрибут/ы в даминке? - а всё потому, что перед удалением идет проверка на наличие Атрибутов у Товаров в файле - admin/controller/catalog/attribute.php Метод - protected function validateDelete() { if (!$this->user->hasPermission('modify', 'catalog/attribute')) { $this->error['warning'] = $this->language->get('error_permission'); } $this->load->model('catalog/product'); //здесь проверка foreach ($this->request->post['selected'] as $attribute_id) { $product_total = $this->model_catalog_product->getTotalProductsByAttributeId($attribute_id); if ($product_total) { $this->error['warning'] = sprintf($this->language->get('error_product'), $product_total); } } return !$this->error; } обойти это просто (чтоб не использовать выше предложенные решения, которые для Новачка возможно будут сложными, да и по времени затратные). Решение - закончить проверку в данном Методе раньше до проверки на наличие Атрибутов в Товарах - protected function validateDelete() { if (!$this->user->hasPermission('modify', 'catalog/attribute')) { $this->error['warning'] = $this->language->get('error_permission'); } //fix решение return !$this->error; $this->load->model('catalog/product'); foreach ($this->request->post['selected'] as $attribute_id) { $product_total = $this->model_catalog_product->getTotalProductsByAttributeId($attribute_id); if ($product_total) { $this->error['warning'] = sprintf($this->language->get('error_product'), $product_total); } } return !$this->error; } и удалить в таблице `product_attribute` (если будут данные атрибуты) в файле admin/model/catalog/attribute.php Метод - public function deleteAttribute($attribute_id) { //fix del_control $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute WHERE attribute_id = '" . (int)$attribute_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute_description WHERE attribute_id = '" . (int)$attribute_id . "'"); } можно и модификатором (для Opencart 2.x.x и 3.0.x) сам код модификатора - <?xml version="1.0" encoding="utf-8"?> <modification> <name><![CDATA[FIX delAttribute for Opencart 2.x.x - 3.0.x]]></name> <code>delattribute</code> <version>1.0</version> <author>Vier</author> <link>#</link> <file path="admin/controller/catalog/attribute.php"> <operation> <search><![CDATA[function validateDelete()]]></search> <add position="after" offset="4"><![CDATA[ /*fix_delattribute*/ return !$this->error; /*end fix_delattribute*/ ]]></add> </operation> </file> <file path="admin/model/catalog/attribute.php"> <operation> <search><![CDATA[function deleteAttribute($attribute_id]]></search> <add position="after" offset="2"><![CDATA[ /*fix_delattribute*/ $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); /*end fix_delattribute*/ ]]></add> </operation> </file> </modification> сам модификатор для Opencart 2.x.x - fix_del_attribute.ocmod.xml для Opencart 3.0.x (если устанавливать через админку.) - fix_del_attribute_3.ocmod.zip ( А если записать в папку /system/, то можно использовать для Opencart 2.x.x ) потом же не забыть обновить модификаторы в админке! (если не нарушены методы validateDelete() и deleteAttribute($attribute_id), то модификатор станет без проблем, а иначе возможно надо будет подогнать код) так же в целях случайного НЕ удаления, используйте модификатор временно. Изменено 1 сентября 2021 пользователем vier не дописал пост (отвлекли) 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Shureg Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 2 часа назад, vier сказал: Решение - закончить проверку в данном Методе раньше до проверки на наличие Атрибутов в Товарах - Вы это серьезно? Ваше "решение" - даже не эталон говнокода, это его апофеоз... А чего просто не предложили в БД удалить без всяких проверок? Подумаешь, потом будут ошибки во всех товарах, где этот атрибут был, зачем нам лишние проверки. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... vier Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 4 часа назад, vier сказал: в файле admin/model/catalog/attribute.php Метод - public function deleteAttribute($attribute_id) { //fix del_control $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute WHERE attribute_id = '" . (int)$attribute_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute_description WHERE attribute_id = '" . (int)$attribute_id . "'"); } странно, почему изначально в Opencart для контроля нет данного удаления атрибутов в таблице `product_attribute` Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 1 Перейти к списку тем Похожие публикации Attribute Category - Атрибуты категории Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 3) Теги: атрибут атрибуты attribute фильтр категория 0 комментариев 17 174 просмотра sv2109 21 января 2016 [Поддержка] Attribute Category - Атрибуты категории Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 3) Теги: атрибут атрибуты attribute фильтр категория 7 ответов 9 066 просмотров malinator 5 февраля 2021 Attribute Select - Атрибуты списком Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 2) Теги: атрибут атрибуты attribute фильтр 0 комментариев 14 594 просмотра sv2109 21 января 2016 [Поддержка] Attribute Select - Атрибуты списком 1 2 Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 2) Теги: атрибут атрибуты attribute фильтр 38 ответов 11 685 просмотров nogocuHoBuk 25 сентября 2023 [Поддержка] Поиск атрибутов в админ панеле Автор: eleo, 27 октября 2017 атрибут поиск атрибутов (и ещё 2) Теги: атрибут поиск атрибутов искать атрибут атрибут админка 3 ответа 2 443 просмотра eleo 14 декабря 2018 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Общие вопросы [Решено] Как удалить атрибут, если он присвоен товару? Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha
olegchernov Опубликовано: 14 сентября 2020 Поделиться Опубликовано: 14 сентября 2020 В 04.04.2014 в 15:50, chukcha сказал: определяем id атрибута SELECT * FROM `oc_product_attribute` where `attribute_id`= Если совсем не нужен, то DELETE FROM `oc_product_attribute` where `attribute_id`= И удаляем атрибут из админки Прошу прощения, можете уточнить где это вводить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Danishevskiy Опубликовано: 30 августа 2021 Поделиться Опубликовано: 30 августа 2021 В 04.04.2014 в 16:39, dst сказал: Всё разобрался. Если и правда разобрались поделитесь опытом, тоже очень нужно определить товары с ненужным атрибутом и во всех его удалить Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
WarStyle Опубликовано: 30 августа 2021 Поделиться Опубликовано: 30 августа 2021 3 часа назад, Danishevskiy сказал: Если и правда разобрались поделитесь опытом, тоже очень нужно определить товары с ненужным атрибутом и во всех его удалить Заходим в админку сайта, далее Каталог - Характеристики - Характеристики, выбираем нужный атрибут и редактируем. В адресной строке есть айди атрибута: http://joxi.ru/vAWnevYH3kPq12 Когда имеем айди, делаем запрос в базу данных как описано выше. В 04.04.2014 в 14:50, chukcha сказал: определяем id атрибута SELECT * FROM `oc_product_attribute` where `attribute_id`= Если совсем не нужен, то DELETE FROM `oc_product_attribute` where `attribute_id`= И удаляем атрибут из админки Перед всеми действиями в базе данных рекомендую сделать бекап базы данных! 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Danishevskiy Опубликовано: 31 августа 2021 Поделиться Опубликовано: 31 августа 2021 Огромное спасибо. Разобрался. Кому будет непонятно пишите в ЛС, расскажу что называется "на пальцах" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... vier Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 (изменено) Почему нельзя сразу удалить Атрибут/ы в даминке? - а всё потому, что перед удалением идет проверка на наличие Атрибутов у Товаров в файле - admin/controller/catalog/attribute.php Метод - protected function validateDelete() { if (!$this->user->hasPermission('modify', 'catalog/attribute')) { $this->error['warning'] = $this->language->get('error_permission'); } $this->load->model('catalog/product'); //здесь проверка foreach ($this->request->post['selected'] as $attribute_id) { $product_total = $this->model_catalog_product->getTotalProductsByAttributeId($attribute_id); if ($product_total) { $this->error['warning'] = sprintf($this->language->get('error_product'), $product_total); } } return !$this->error; } обойти это просто (чтоб не использовать выше предложенные решения, которые для Новачка возможно будут сложными, да и по времени затратные). Решение - закончить проверку в данном Методе раньше до проверки на наличие Атрибутов в Товарах - protected function validateDelete() { if (!$this->user->hasPermission('modify', 'catalog/attribute')) { $this->error['warning'] = $this->language->get('error_permission'); } //fix решение return !$this->error; $this->load->model('catalog/product'); foreach ($this->request->post['selected'] as $attribute_id) { $product_total = $this->model_catalog_product->getTotalProductsByAttributeId($attribute_id); if ($product_total) { $this->error['warning'] = sprintf($this->language->get('error_product'), $product_total); } } return !$this->error; } и удалить в таблице `product_attribute` (если будут данные атрибуты) в файле admin/model/catalog/attribute.php Метод - public function deleteAttribute($attribute_id) { //fix del_control $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute WHERE attribute_id = '" . (int)$attribute_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute_description WHERE attribute_id = '" . (int)$attribute_id . "'"); } можно и модификатором (для Opencart 2.x.x и 3.0.x) сам код модификатора - <?xml version="1.0" encoding="utf-8"?> <modification> <name><![CDATA[FIX delAttribute for Opencart 2.x.x - 3.0.x]]></name> <code>delattribute</code> <version>1.0</version> <author>Vier</author> <link>#</link> <file path="admin/controller/catalog/attribute.php"> <operation> <search><![CDATA[function validateDelete()]]></search> <add position="after" offset="4"><![CDATA[ /*fix_delattribute*/ return !$this->error; /*end fix_delattribute*/ ]]></add> </operation> </file> <file path="admin/model/catalog/attribute.php"> <operation> <search><![CDATA[function deleteAttribute($attribute_id]]></search> <add position="after" offset="2"><![CDATA[ /*fix_delattribute*/ $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); /*end fix_delattribute*/ ]]></add> </operation> </file> </modification> сам модификатор для Opencart 2.x.x - fix_del_attribute.ocmod.xml для Opencart 3.0.x (если устанавливать через админку.) - fix_del_attribute_3.ocmod.zip ( А если записать в папку /system/, то можно использовать для Opencart 2.x.x ) потом же не забыть обновить модификаторы в админке! (если не нарушены методы validateDelete() и deleteAttribute($attribute_id), то модификатор станет без проблем, а иначе возможно надо будет подогнать код) так же в целях случайного НЕ удаления, используйте модификатор временно. Изменено 1 сентября 2021 пользователем vier не дописал пост (отвлекли) 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Shureg Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 2 часа назад, vier сказал: Решение - закончить проверку в данном Методе раньше до проверки на наличие Атрибутов в Товарах - Вы это серьезно? Ваше "решение" - даже не эталон говнокода, это его апофеоз... А чего просто не предложили в БД удалить без всяких проверок? Подумаешь, потом будут ошибки во всех товарах, где этот атрибут был, зачем нам лишние проверки. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... vier Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 4 часа назад, vier сказал: в файле admin/model/catalog/attribute.php Метод - public function deleteAttribute($attribute_id) { //fix del_control $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute WHERE attribute_id = '" . (int)$attribute_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute_description WHERE attribute_id = '" . (int)$attribute_id . "'"); } странно, почему изначально в Opencart для контроля нет данного удаления атрибутов в таблице `product_attribute` Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 1 Перейти к списку тем Похожие публикации Attribute Category - Атрибуты категории Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 3) Теги: атрибут атрибуты attribute фильтр категория 0 комментариев 17 174 просмотра sv2109 21 января 2016 [Поддержка] Attribute Category - Атрибуты категории Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 3) Теги: атрибут атрибуты attribute фильтр категория 7 ответов 9 066 просмотров malinator 5 февраля 2021 Attribute Select - Атрибуты списком Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 2) Теги: атрибут атрибуты attribute фильтр 0 комментариев 14 594 просмотра sv2109 21 января 2016 [Поддержка] Attribute Select - Атрибуты списком 1 2 Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 2) Теги: атрибут атрибуты attribute фильтр 38 ответов 11 685 просмотров nogocuHoBuk 25 сентября 2023 [Поддержка] Поиск атрибутов в админ панеле Автор: eleo, 27 октября 2017 атрибут поиск атрибутов (и ещё 2) Теги: атрибут поиск атрибутов искать атрибут атрибут админка 3 ответа 2 443 просмотра eleo 14 декабря 2018 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Общие вопросы [Решено] Как удалить атрибут, если он присвоен товару?
Danishevskiy Опубликовано: 31 августа 2021 Поделиться Опубликовано: 31 августа 2021 Огромное спасибо. Разобрался. Кому будет непонятно пишите в ЛС, расскажу что называется "на пальцах" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
vier Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 (изменено) Почему нельзя сразу удалить Атрибут/ы в даминке? - а всё потому, что перед удалением идет проверка на наличие Атрибутов у Товаров в файле - admin/controller/catalog/attribute.php Метод - protected function validateDelete() { if (!$this->user->hasPermission('modify', 'catalog/attribute')) { $this->error['warning'] = $this->language->get('error_permission'); } $this->load->model('catalog/product'); //здесь проверка foreach ($this->request->post['selected'] as $attribute_id) { $product_total = $this->model_catalog_product->getTotalProductsByAttributeId($attribute_id); if ($product_total) { $this->error['warning'] = sprintf($this->language->get('error_product'), $product_total); } } return !$this->error; } обойти это просто (чтоб не использовать выше предложенные решения, которые для Новачка возможно будут сложными, да и по времени затратные). Решение - закончить проверку в данном Методе раньше до проверки на наличие Атрибутов в Товарах - protected function validateDelete() { if (!$this->user->hasPermission('modify', 'catalog/attribute')) { $this->error['warning'] = $this->language->get('error_permission'); } //fix решение return !$this->error; $this->load->model('catalog/product'); foreach ($this->request->post['selected'] as $attribute_id) { $product_total = $this->model_catalog_product->getTotalProductsByAttributeId($attribute_id); if ($product_total) { $this->error['warning'] = sprintf($this->language->get('error_product'), $product_total); } } return !$this->error; } и удалить в таблице `product_attribute` (если будут данные атрибуты) в файле admin/model/catalog/attribute.php Метод - public function deleteAttribute($attribute_id) { //fix del_control $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute WHERE attribute_id = '" . (int)$attribute_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute_description WHERE attribute_id = '" . (int)$attribute_id . "'"); } можно и модификатором (для Opencart 2.x.x и 3.0.x) сам код модификатора - <?xml version="1.0" encoding="utf-8"?> <modification> <name><![CDATA[FIX delAttribute for Opencart 2.x.x - 3.0.x]]></name> <code>delattribute</code> <version>1.0</version> <author>Vier</author> <link>#</link> <file path="admin/controller/catalog/attribute.php"> <operation> <search><![CDATA[function validateDelete()]]></search> <add position="after" offset="4"><![CDATA[ /*fix_delattribute*/ return !$this->error; /*end fix_delattribute*/ ]]></add> </operation> </file> <file path="admin/model/catalog/attribute.php"> <operation> <search><![CDATA[function deleteAttribute($attribute_id]]></search> <add position="after" offset="2"><![CDATA[ /*fix_delattribute*/ $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); /*end fix_delattribute*/ ]]></add> </operation> </file> </modification> сам модификатор для Opencart 2.x.x - fix_del_attribute.ocmod.xml для Opencart 3.0.x (если устанавливать через админку.) - fix_del_attribute_3.ocmod.zip ( А если записать в папку /system/, то можно использовать для Opencart 2.x.x ) потом же не забыть обновить модификаторы в админке! (если не нарушены методы validateDelete() и deleteAttribute($attribute_id), то модификатор станет без проблем, а иначе возможно надо будет подогнать код) так же в целях случайного НЕ удаления, используйте модификатор временно. Изменено 1 сентября 2021 пользователем vier не дописал пост (отвлекли) 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Shureg Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 2 часа назад, vier сказал: Решение - закончить проверку в данном Методе раньше до проверки на наличие Атрибутов в Товарах - Вы это серьезно? Ваше "решение" - даже не эталон говнокода, это его апофеоз... А чего просто не предложили в БД удалить без всяких проверок? Подумаешь, потом будут ошибки во всех товарах, где этот атрибут был, зачем нам лишние проверки. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... vier Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 4 часа назад, vier сказал: в файле admin/model/catalog/attribute.php Метод - public function deleteAttribute($attribute_id) { //fix del_control $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute WHERE attribute_id = '" . (int)$attribute_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute_description WHERE attribute_id = '" . (int)$attribute_id . "'"); } странно, почему изначально в Opencart для контроля нет данного удаления атрибутов в таблице `product_attribute` Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 1 Перейти к списку тем Похожие публикации Attribute Category - Атрибуты категории Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 3) Теги: атрибут атрибуты attribute фильтр категория 0 комментариев 17 174 просмотра sv2109 21 января 2016 [Поддержка] Attribute Category - Атрибуты категории Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 3) Теги: атрибут атрибуты attribute фильтр категория 7 ответов 9 066 просмотров malinator 5 февраля 2021 Attribute Select - Атрибуты списком Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 2) Теги: атрибут атрибуты attribute фильтр 0 комментариев 14 594 просмотра sv2109 21 января 2016 [Поддержка] Attribute Select - Атрибуты списком 1 2 Автор: sv2109, 21 января 2016 атрибут атрибуты (и ещё 2) Теги: атрибут атрибуты attribute фильтр 38 ответов 11 685 просмотров nogocuHoBuk 25 сентября 2023 [Поддержка] Поиск атрибутов в админ панеле Автор: eleo, 27 октября 2017 атрибут поиск атрибутов (и ещё 2) Теги: атрибут поиск атрибутов искать атрибут атрибут админка 3 ответа 2 443 просмотра eleo 14 декабря 2018 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу.
Shureg Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 2 часа назад, vier сказал: Решение - закончить проверку в данном Методе раньше до проверки на наличие Атрибутов в Товарах - Вы это серьезно? Ваше "решение" - даже не эталон говнокода, это его апофеоз... А чего просто не предложили в БД удалить без всяких проверок? Подумаешь, потом будут ошибки во всех товарах, где этот атрибут был, зачем нам лишние проверки. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
vier Опубликовано: 1 сентября 2021 Поделиться Опубликовано: 1 сентября 2021 4 часа назад, vier сказал: в файле admin/model/catalog/attribute.php Метод - public function deleteAttribute($attribute_id) { //fix del_control $this->db->query("DELETE FROM `".DB_PREFIX."product_attribute` WHERE `attribute_id` = ".(int)$attribute_id); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute WHERE attribute_id = '" . (int)$attribute_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "attribute_description WHERE attribute_id = '" . (int)$attribute_id . "'"); } странно, почему изначально в Opencart для контроля нет данного удаления атрибутов в таблице `product_attribute` Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 1
Рекомендованные сообщения