Kunal
Kunal

Reputation: 51

How to programmatically disable product for all store-view in Magento?

I want to disable product programmatically for all store view. Please help me

I tried with the following... but no luck

$storeId = 0;                               
Mage::getModel('catalog/product_status')->updateProductStatus($product_id, $storeId, Mage_Catalog_Model_Product_Status::STATUS_DISABLED);

Upvotes: 2

Views: 12575

Answers (3)

Matthias Kleine
Matthias Kleine

Reputation: 1235

There's a much shorter way than in the answer of Keyur Shah:

foreach (Mage::app()->getStores() as $store) {
    Mage::getModel('catalog/product_status')->updateProductStatus($productId, $store->getId(), Mage_Catalog_Model_Product_Status::STATUS_DISABLED);
}

Upvotes: 1

Rohit Goel
Rohit Goel

Reputation: 3554

By default the scope of status attribute is set to store , if we will set it to global under manage attributes , than we can update status for all store views with below code.

$loadproduct = Mage::getModel("catalog/product")->load("product_id");
            $loadproduct->setStatus(2); 
            $loadproduct->save();

thanks

Upvotes: 1

Keyur Shah
Keyur Shah

Reputation: 11533

Firstly $storeId=0 is default store id for admin if you want disable product for all store view then you can set $storeId=Mage:app()->getStoreId()// this is for current store id

after that you can disable all product

$product_id=1;
$storeId=Mage::app()->getStoreId();
Mage::getModel('catalog/product_status')->updateProductStatus($product_id, $storeId, Mage_Catalog_Model_Product_Status::STATUS_DISABLED);

EDIT

This is for all store view i think this is the dirty way to achieve this

<?php
    $allStores = Mage::app()->getStores();
    foreach ($allStores as $_eachStoreId => $val)
    {
        $_storeId[] = Mage::app()->getStore($_eachStoreId)->getId();
    }
    for($i=0;$i<count($_storeId);$i++)
    {
        $product_id=1;
        $storeId=$_storeId[$i];
        Mage::getModel('catalog/product_status')->updateProductStatus($product_id, $storeId, Mage_Catalog_Model_Product_Status::STATUS_DISABLED);
    }
?> 

Let me know if you have any query

Upvotes: 4

Related Questions