Очистка каталога товаров (3х)

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

amnesiac
amnesiac
Репутация: 0
Сообщения: 12
Зарегистрирован: 15.07.2019
С нами: 10 месяцев 16 дней

Сообщение #1 amnesiac » 13.05.2020, 09:56

В админке в настройках каталога есть кнопка "Очистить каталог товаров". Все бы хорошо, но помимо товаров и свойств она прибивает категории и бренды. Мне как раз надо чтобы и категории и бренды остались. Вручную дамп/рестор таблиц категорий и брендов не получилось сделать, надо ковыряться с настройками phpadmin у провайдера. Очистить вручную таблицу ok_products мало, надо подчищать еще кучу таблиц (иначе импорт товаров не работает).

Нашел функцию clearCatalogData в файлике /Okay/Core/DataCleaner.php. Это же она вызывается по кнопке "Очистить каталог товаров"?

Приведу ее полностью:

Код: Выделить всё

        $sql = $this->queryFactory->newSqlQuery()->setStatement("DELETE FROM ".CommentsEntity::getTable()." WHERE `type`='product'");
        $this->db->query($sql);

        $sql = $this->queryFactory->newSqlQuery()->setStatement("UPDATE ".PurchasesEntity::getTable()." SET `product_id`=0, `variant_id`=0");
        $this->db->query($sql);

        $this->truncateTable(BrandsEntity::getTable());
        $this->truncateTable(BrandsEntity::getLangTable());

        $this->truncateTable(CategoriesEntity::getTable());
        $this->truncateTable(CategoriesEntity::getLangTable());
        $this->truncateTable('__categories_features');

        $this->truncateTable(FeaturesEntity::getTable());
        $this->truncateTable(FeaturesAliasesValuesEntity::getTable());
        $this->truncateTable(FeaturesValuesEntity::getTable());
        $this->truncateTable(FeaturesValuesAliasesValuesEntity::getTable());
        $this->truncateTable(FeaturesEntity::getLangTable());
        $this->truncateTable(FeaturesAliasesValuesEntity::getLangTable());
        $this->truncateTable(FeaturesValuesEntity::getLangTable());

        $this->truncateTable(ProductsEntity::getTable());
        $this->truncateTable(ProductsEntity::getLangTable());
        $this->truncateTable(ImagesEntity::getTable());
        $this->truncateTable('__related_products');
        $this->truncateTable('__products_categories');
        $this->truncateTable('__products_features_values');

        $this->truncateTable(VariantsEntity::getTable());
        $this->truncateTable(VariantsEntity::getLangTable());

        $this->truncateTable('__related_blogs');
        $this->truncateTable('__import_log');

        return ExtenderFacade::execute(__METHOD__, null, func_get_args());


Я правильно понимаю, что если я закомментирую следующие строки, то все товары удалятся, а все категории и бренды останутся?

Код: Выделить всё

        $this->truncateTable(BrandsEntity::getTable());
        $this->truncateTable(BrandsEntity::getLangTable());

        $this->truncateTable(CategoriesEntity::getTable());
        $this->truncateTable(CategoriesEntity::getLangTable());
        $this->truncateTable('__categories_features');


Спасибо!

softmobidev
softmobidev
Репутация: 4
Сообщения: 103
Зарегистрирован: 16.02.2018
С нами: 2 года 3 месяца

Сообщение #2 softmobidev » 13.05.2020, 11:32

вообще конечно было бы удобнее чтобы под каждую сущность была своя кнопка очистки
очистить товары, очистить бренды, очистить категории и так далее

amnesiac
amnesiac
Репутация: 0
Сообщения: 12
Зарегистрирован: 15.07.2019
С нами: 10 месяцев 16 дней

Сообщение #3 amnesiac » 13.05.2020, 12:04

Лучше набор чекбоксов...

zyxer M
zyxer M
Возраст: 28
Репутация: 52
Сообщения: 257
Зарегистрирован: 03.02.2016
С нами: 4 года 3 месяца
Откуда: Днепр

Сообщение #4 zyxer » 13.05.2020, 14:41

Да, бренды и категории останутся, но таблицу __categories_features думаю стоит очищать, это связь категории с свойства (свойства же вы очищаете)
Всё сказанное мной, является лично моим мнением, и не является официальной позицией OkayCMS

amnesiac
amnesiac
Репутация: 0
Сообщения: 12
Зарегистрирован: 15.07.2019
С нами: 10 месяцев 16 дней

Сообщение #5 amnesiac » 15.05.2020, 11:17

Да, бренды и категории остались. Там же можно закомментировать удаление изображений.


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость