Magento - сохранить продукт без настройки «Использовать значение по умолчанию» - PullRequest
4 голосов
/ 15 февраля 2012

У меня есть настройка нескольких магазинов - StoreA, StoreB и StoreC.И в контроллере (используя URL-адрес StoreA) я редактирую продукт следующим образом:

$_product = new Mage_Catalog_Model_Product();
$_product->load($productId);
$_product->setData('attribute1','somevalue');
$_product->save();

Если я затем захожу в Admin / Edit Product для этого конкретного продукта, я нахожу, что attribute1 был правильноустановить НО я также нахожу, что если я выберу StoreA в «Выбор магазина», я обнаружу, что все флажки «Использовать значение по умолчанию» (для StoreA) были установлены на false.

Вопросы:

  1. Как изменить приведенный выше код, чтобы флажки «Использовать значение по умолчанию» для StoreA остались в силе
  2. После выполнения вышеуказанного кода (и «Использовать значение по умолчанию»)для StoreA установлено значение false), как вернуть значения «Использовать значение по умолчанию» обратно в true для StoreA?

Редактировать:

Добавлен скриншот:enter image description here

1 Ответ

1 голос
/ 15 февраля 2012

Мне не совсем понятны флажки «Использовать значение по умолчанию», которые вы видите, но я заметил две вещи.

Использование фабричного шаблона

Ваш код:

$_product = new Mage_Catalog_Model_Product();

Используйте фабричный шаблон , стандартный для Magento:

$_product = Mage::getModel('catalog/product');

Само по себе это не проблема, но об этом нужно помнить.

Обновление только атрибута продукта

Далее, если вы сохраняете только определенный атрибут, будет быстрее (и, возможно, избежать вашей проблемы), если вы обновите только этот атрибут. Вот так:

$attribute = array('attribute_code' => 'attribute_value');

Mage::getSingleton('catalog/product_action')
            ->updateAttributes($_product->getId(), $attribute, 0);

Ссылка на метод updateAttributes (). Здесь я рассуждаю так: возможно добавление возможных значений по умолчанию при сохранении всего продукта, а не только определенного атрибута.

Если это не поможет, возможно, снимок экрана с тем, что вы видите, поможет мне лучше понять проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...