Проверить настройки Skip to content

БЫСТРО Добавить/обновить данные для Атрибута Товара в Magento

Обновление данных товара (атрибутов) и Magento, работает медленно, если использовать загрузку товара.

Mage::getModel('catalog/product')->load('123')

Работает долго, так как при сохранении товара — вызываются Event и обрабатывается дополнительная логика. Также используется много памяти PHP, загружается много классов, данных…

При импорте данных, если надо обновить один атрибут у товара, у многих товаров — надо быстрее…

Можно использовать обновление через класс Mage_Catalog_Model_Resource_Product_Action. Так обновляются данные товара при массовом обновлении атрибутов, функционал в админ-панели Product Grid.

$productId = 123;
$storeId = 1;
Mage::getSingleton('catalog/resource_product_action')->updateAttributes(array($productId), array('my_attribute' => 'value'), $storeId);

Но следует обратить внимание, после обновления данных — надо сделать реиндекс.

Magento 1.*