我想以编程方式为所有商店视图禁用产品。请帮帮我
我尝试了以下......但没有运气
$storeId = 0;
Mage::getModel('catalog/product_status')->updateProductStatus($product_id, $storeId, Mage_Catalog_Model_Product_Status::STATUS_DISABLED);
答案 0 :(得分:4)
首先$storeId=0
是admin的默认商店ID,如果您想要为所有商店视图禁用产品,那么您可以设置$storeId=Mage:app()->getStoreId()
//这是针对当前商店ID
之后您可以禁用所有产品
$product_id=1;
$storeId=Mage::app()->getStoreId();
Mage::getModel('catalog/product_status')->updateProductStatus($product_id, $storeId, Mage_Catalog_Model_Product_Status::STATUS_DISABLED);
修改强>
这适用于所有商店视图我认为这是实现此目的的肮脏方式
<?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);
}
?>
如果您有任何疑问,请告诉我
答案 1 :(得分:1)
比Keyur Shah的回答要短得多:
foreach (Mage::app()->getStores() as $store) {
Mage::getModel('catalog/product_status')->updateProductStatus($productId, $store->getId(), Mage_Catalog_Model_Product_Status::STATUS_DISABLED);
}
答案 2 :(得分:-1)
默认情况下,状态 属性的范围设置为商店,如果我们将其设置为全局在管理属性下,我们可以使用以下代码更新所有商店视图的状态。
$loadproduct = Mage::getModel("catalog/product")->load("product_id");
$loadproduct->setStatus(2);
$loadproduct->save();
感谢