Об этом уже много раз спрашивали, но без рабочего ответа.
У меня есть несколько магазинов, и некоторые атрибуты были переопределены. Я хочу изменить эти атрибуты на «использовать значение по умолчанию» с помощью скрипта.
Вот изображение, показывающее представления магазина и флажки «использовать значение по умолчанию».http://dl.dropbox.com/u/3209649/storeviews-and-defaultvalues.png(пока не разрешено публиковать изображения)
В app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php setData ()используется с false для второго аргумента, когда для любых атрибутов выбрано «Использовать значение по умолчанию».
/**
* Check "Use Default Value" checkboxes values
*/
if ($useDefaults = $this->getRequest()->getPost('use_default')) {
foreach ($useDefaults as $attributeCode) {
$product->setData($attributeCode, false);
}
}
Следующий код пытается установить для атрибута «имя» значение «использовать значения по умолчанию» для продукта 1 в магазине 3, используя тот же метод.
require_once '../app/Mage.php';
Mage::app(3);
$product = Mage::getModel('catalog/product')->load(1);
$product->setData('name', false); # as used in ProductController.php
$product->save();
Использование
$product->setData('name', 'anything');
правильно устанавливает для атрибута «имя» значение «что угодно», но ложь не устанавливает для него значение «использовать значение по умолчанию»
«Использовать значение по умолчанию» нигде не сохраняется в база данных, поэтому в контроллере для интерфейса администратора должна быть другая процедура, которая удаляет строку атрибута?
Ссылки по теме здесь ->http://pastebin.com/raw.php?i=j7fwu9H6 (еще не разрешено публиковать ссылки)