Magento 1.9 以编程方式更改产品状态

Magento 1.9 Change Product Status Programmatically

我目前正在寻找一种方法,以便在达到一定数量的库存时以编程方式更改我所有产品的产品状态。

理想情况下,如果库存水平低于 10,我想将所有产品的状态设置为禁用。所有其他 10 及以上的产品状态应变为启用。

您可以通过在根目录中创建一个 php 文件来尝试使用此代码,或者如果您想在一段时间内执行此过程,则可以创建 cron 调度程序。

        error_reporting(E_ALL | E_STRICT);
        $mageFilename = 'app/Mage.php';
        require_once $mageFilename;
        Mage::setIsDeveloperMode(true);
        ini_set('display_errors', 1);
        ini_set('memory_limit', '600M');
        ini_set('max_execution_time', 1800);
        umask(0);
        Mage::app('admin');
        $collection = Mage::getResourceModel('catalog/product_collection');
        $collection->addAttributeToSelect('*');
        foreach ($collection as $_data) {
            $productCat = $_data->getCategoryIds();
            $stock      = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_data);
            $productqty = $stock->getQty();
            if (intval($productqty) < 10) {
                $productModel  = Mage::getModel('catalog/product');
                $productUpdate = $productModel->load($_data->getId());
                $productUpdate->setStatus(2);
                $productUpdate->save();
            }
            else
            {
                $productModel  = Mage::getModel('catalog/product');
                $productUpdate = $productModel->load($_data->getId());
                $productUpdate->setStatus(1);
                $productUpdate->save();
            }
        }