Невозможно программно установить атрибут продукта в magento через наблюдателя

Я хочу обновить атрибут описания продукта после сохранения продукта. Поэтому для этого я использую наблюдатель с именем catalog_product_save_after и в зависимости от некоторых условий я создаю описание продукта, и я сохраню описание продуктов, используя следующий код

product->setDescription();
product->save();

проблема в том, что когда я вызываю product->save(); сайт загружается и загружается позже, я обнаружил, что product->save(); эта функция снова вызывает catalog_product_save_after. вот почему он входит в бесконечный цикл.

Помогите, пожалуйста, составить описание товара.


person waqar mirza    schedule 20.01.2014    source источник


Ответы (1)


Вариант 1.
Вы можете использовать catalog_product_save_before и просто $product->setDescription('something') (без сохранения).
Вариант 2
Запустите наблюдатель только один раз.

function doSomething($observer) {
    //some code here
    $id = $product->getId();
    if (!Mage::registry('observer_already_executed_'.$id)) {
        //do your magic here
        Mage::register('observer_already_executed_'.$id, 1);
    }
}
person Marius    schedule 20.01.2014