php - 如何从 magento 1.5 类别中删除产品

标签 php magento magento-1.5

我是 Magento 的新手,我正在执行一项 cron 作业,该作业会在分配的日期之后删除特定类别中的产品。通过工作和 Stackoverflow 的帮助,我想出了以下代码:

require_once 'app/Mage.php';
Mage::app();
$date = Mage::getModel('core/date')->date('Y-m-d H:i:s');
$collection = Mage::getModel('catalog/product')->getCollection();    
$collection->addfieldtofilter('news_to_date', array(array('to' => $date)));        
foreach($collection as $product) {        
   $product->setStatus(Mage_Catalog_Model_Product_Status::STATUS_DISABLED);
   $product->save();
 }

这会检查实际日期并将其与产品日期进行比较。如果该日期已过,该产品将被禁用。我需要的是,代码应该删除该类别的产品(在本例中类别是“销售”),而不是禁用该产品

希望大家能够帮助我!

提前致谢!

最佳答案

您需要从产品中获取所有类别 ID,然后从类别 ids 数组中删除销售类别 ID,并将它们设置回产品。

例如,销售类别 ID 为 5。

foreach ($collection as $product) {
    //Getting all category ids
    $ids = $product->getCategoryIds();
    //Searching array key with value 5 and removing from array
    if (($key = array_search(5, $ids)) !== false) {
        unset($ids[$key]);
        $product->setCategoryIds($ids)
        $product->save();
    }
}

附注您可以使用 magento cron 作业功能,而不需要使用:

require_once 'app/Mage.php';
Mage::app();

关于php - 如何从 magento 1.5 类别中删除产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17798615/

相关文章:

php - 保存客户时,Magento 停留在 "Please Wait"

php - Yii 框架中的自定义 CListView

javascript - AdminLTE BootStrap - 表搜索栏消失并带有附加 <th> 标签

magento - 如何使用 magento ORM 中的集合删除数据?

php - Magento:AddAttributeToSort 不起作用

Magento - 在自定义页面上显示评论链接和添加比较链接

php - Magento - 需要自定义客户登录和注册表,但登录表单和注册表来自持久文件夹

php - 从 FPDF 中删除错误输出?

php - 在 PHP-CLI 中相当于 $_ENV ['APACHE_RUN_USER' ]