如果为零,Magento会跳过更新产品价格

时间:2015-12-26 14:16:01

标签: php magento

我使用的功能可以自动更新Magento的产品价格,但有时供应商不会为产品添加价格。
如果价值为零,我想跳过某个产品的产品价格更新(所以我可以手动加价)。
请参阅下面的代码。我试图使用$product->setPrice($price != 0);,但这不起作用。我的代码是:

public function updateProductPriceAndStock($sku)
{
    $_product = Mage::getModel('catalog/product')->loadByAttribute('sku',$sku);
    if($_product)
    {
        $product =  Mage::getModel("catalog/product")->load($_product->getId());
        $product->setStockData($this->getProductStockFromErp($sku));
        $product->setCost($this->getProductCostFromErp($sku));
        $price = $this->getProductPriceFromErp($sku);
        $product->setPrice($price);
        $product->setMsrp($price);
        $product->save();
        $this->_counts++;
        unset($product);
    }
    unset($_product);
}

1 个答案:

答案 0 :(得分:0)

$product->setPrice($price != 0);$product->setPrice(true/false);

相同

也许是这样的?

public function updateProductPriceAndStock($sku) {
    $_product = Mage::getModel('catalog/product')->loadByAttribute('sku',$sku);
       if($_product){
        $product =  Mage::getModel("catalog/product")->load($_product->getId());
        $product->setStockData($this->getProductStockFromErp($sku));
        $product->setCost($this->getProductCostFromErp($sku));
        $price = $this->getProductPriceFromErp($sku);
        if($price != 0){
            $product->setPrice($price);
            $product->setMsrp($price);
        }
        $product->save(); // put this inside above "if" if you want to skip update (database save)
        $this->_counts++;
        unset($product);
    }
    unset($_product);
}