2012-02-06 4 views
1

программно Я пытаюсь обновить несколько продуктов, которые подаются из файла XML с помощью:Обновление цены

$productid = Mage::getModel('catalog/product')->getIdBySku($url->product); 
echo 'Loaded Product: ' . $url->product; 

// Initiate product model 
$product = Mage::getModel('catalog/product'); 
$product->setPrice($url->price); 

try 
{ 
    $product->save(); 
     echo "Save/Updated"."\r\n"; 
    } 
    catch (Exception $ex) { 
     echo "<pre>".$ex."</pre>"; 
    } 

Проблема Я получаю ошибку SQL:

exception 'Mage_Eav_Model_Entity_Attribute_Exception' with message 'SQLSTATE[23000]: 
Integrity constraint violation: 1062 Duplicate entry '531-0-82-1.0000-0' 

продукта с Идентификатор 531 существует в моем db, все, что я хочу сделать, это обновить его цену.

Кто-нибудь знает, что может быть причиной этого?

Большое спасибо

+0

Mage пытается вставить, вам нужно сделать это, чтобы обновить, если продукт уже существует. – deed02392

+0

Я собрал это. Есть ли простой способ «обновить»? Я только видел $ product-> setXX $ product-> save() –

+0

Никогда не использовал Mage, но он с открытым исходным кодом. Прочтите класс для метода обновления или измените метод set для выполнения запроса на вставку или обновление SQL. – deed02392

ответ

0

Ну это, казалось, не нравится тот факт, я многоуровневые цены на этом продукте.

Очищенных их, повторно проиндексировано, воссозданные многоуровневые цены, все кажется хорошим

1

Попробуйте обновить

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

изменения

$product = Mage::getModel('catalog/product')->load($productid); 

Вы должны загрузить продукт для обновления его атрибутов.

Смежные вопросы