Update products programmatically in Magento

后端 未结 5 821
礼貌的吻别
礼貌的吻别 2020-12-13 15:53

I\'m working on a script that will create or update products in my catalog.
The script works fine when the product needs to be created, but it fails when the product alr

5条回答
  •  星月不相逢
    2020-12-13 16:11

    Chances are, in your "setter calls" you are trying to set something that cannot be directly set on $product. It could even be the "setTeinte" as I am not sure what that is trying to set. But as we cannot see all your code, it is a little difficult to say, so as I guide, take a look at the code below, which sets some information directly on the product and then stock levels. It does therefore, illustrate how certain data has to be set. I hope it helps.

    $SKU = (string)$XMLproduct->Sku;
    $product = Mage::getModel('catalog/product')->loadByAttribute('sku',$SKU);
    
    if ($product) {
        //Product found, so we need to update it in Magento.
    
        $product->setName((string)$XMLproduct->Name);
        $product->setPrice((real)$XMLproduct->SalePrice);
        //$product->setDescription((string)$XMLproduct->LongDescription);
        //$product->setShortDescription((string)$XMLproduct->Description);
    
        $product->save();
    
        $productId = $product->getId();
        $stockItem =Mage::getModel('cataloginventory/stock_item')->loadByProduct($productId);
        $stockItemId = $stockItem->getId();
    
        $stockItem->setData('manage_stock', 1);
        $stockItem->setData('qty', (integer)$XMLproduct->QtyInStock);
    
        $stockItem->save();
    
        echo $SKU," Updated: Name: '",(string)$XMLproduct->Name,"', Price: ",(real)$XMLproduct->SalePrice,", Stock level: ",$XMLproduct->QtyInStock,PHP_EOL;
    
        $updated++;
    } 
    

提交回复
热议问题