Magento 1.8 Требуется запрос базы данных для изменения шаблона пользовательского дизайна всех продуктов


Хорошо, я нахожусь в процессе обновления темы в Magento 1.8, и у меня все настроено, за исключением продуктов, которые все еще показывают старую тему. В магазине около 1800 товаров, и мне потребовалась бы вечность, чтобы вручную изменить тему для каждого из них. Есть ли запрос на изменение их на всех продуктах сразу?

Настройки можно найти в панели администратора: Каталог -> Управление продуктами -> выберите продукт -> дизайн -> раскрывающийся список "Пользовательский дизайн " (см. Изображение ниже)

default from old template is chosen

На что я хотел бы его изменить, вы можете видеть на изображении ниже

new template that I would like to change default to

Любая помощь в этом будет очень признательна. Заранее благодарю, jmituzas

Author: jmituzas, 2014-10-07

3 answers

Во-первых, Magento управляет custom layout с помощью custom_design attribute, который является атрибутом varchar, и сохраняет значение attibute в таблице catalog_product_entity_varchar

Сначала я должен проверить идентификатор custom_design и этот идентификатор 103, используя

Шаг 1: получить атрибут eav продукта загрузки

$custom_design = Mage::getResourceModel('catalog/product')->getAttribute('custom_design');

Шаг 2: получите идентификатор Attibute, используя приведенный ниже код $custom_design->getAttributeId().

Шаг 3: получить таблицу этого атрибута с помощью кода $custom_design->getBackend()->getTable();

Альтернативный процесс получения custom_design идентификатор атрибута

Получите идентификатор custom_design с помощью кода ниже:

SELECT `attribute_id` FROM `eav_attribute` WHERE `attribute_code`='custom_design' and `entity_type_id`=4

Просто перейдите admin>Catalog>Attribute>Maange Attribute> Выберите атрибут custom_design из сетки и нажмите на него, а в этом атрибуте просмотрите URL страницы you can see attribute id

admin/catalog_product_attribute/edit/attribute_id/103/key/e88df75c6ef10d0be06f2aa52b99afef/

Теперь это означает , что вы обновляете это значение eav, используя следующий запрос

update catalog_product_entity_varchar set value ='youdesign template code' 
where  attribute_id =$custom_design->getAttributeId()

enter image description hereИ у вас будет несколько полей

1)entity_id является product id.Вы можете поставить product id в свое условие обновления запрос

2) store_id импортируется всякий раз, когда у вас есть multiple store view or website.Поскольку custom_design - это атрибут области видимости store_view

Как получить список шаблонов

Просто открыть any product at admin и перейти к нему Design tab inspect custom design drop down

Получить list of option values of this attribute

enter image description here

Отсюда вы выберете свой template как base/default или default/modern или rwd/default

Примечание: You will update value with NULL это означает, что always design from your Store current design template and package .

В большинстве случаев product design он берется из Current store design template, поэтому он показывает НОЛЬ

Окончательный запрос Выглядит так:

update catalog_product_entity_varchar set value ='your design design template code' 
where  attribute_id =$custom_design_code
 10
Author: Amit Bera, 2014-10-13 21:20:49

На самом деле, вы хотите, чтобы только некоторые конкретные продукты использовали старую тему, это очень просто, и вам не нужно касаться какого-либо sql или запроса. Три шага:

  1. Перейти управление продуктами

  2. Найдите продукты, которые вы хотите изменить. Если вы хотите изменить их все, пропустите этот шаг.

  3. Нажмите "Выбрать все", при этом будут выбраны все товары, соответствующие вашему запросу (не только товары на странице, на которой вы находитесь видеть)

    Select all

  4. Выберите измените атрибуты в действии, затем отправьте.

  5. Найдите атрибут Пользовательский дизайн отметьте галочкой изменить и выберите свою старую тему, затем сохраните.

Готово! :) счастлив и наслаждаюсь использованием Magento

 5
Author: Tai, 2020-06-15 08:30:17

Сделайте резервную копию, прежде чем вы это сделаете, но если я правильно понимаю ваш вариант использования (и вы не хотите, чтобы что-то еще было установлено в mtbrave/default - потому что это изменит все - тогда вы сможете безопасно запустить следующий SQL:

UPDATE catalog_product_entity_varchar
SET `value`='default/MAG090172'
WHERE `value`='mtbrave/default'

Вы также, вероятно, могли бы установить значение NULL, чтобы оно было по умолчанию, но вам нужно было бы убедиться, что вы знаете, какой атрибут был правильным. Чтобы понять это, я сделал следующее:

Найдите в таблице eav_attribute attribute_code из custom_design. Мой экземпляр вернул два идентификатора: 58 и 103. Тип атрибута здесь был varchar

Затем я поискал в своей таблице catalog_product_entity_varchar эти идентификаторы (ГДЕ attribute_id В (58 103), и все они вернулись с attribute_id=103 (и я установил для одного элемента значение custom, это значение по умолчанию/iphone, которое появилось в этом списке - остальные отображаются как NULL).

Но теоретически приведенный выше SQL-запрос должен работать.

 1
Author: Navarr, 2014-10-09 18:46:29