从Magento的cronjob删除购物车

时间:2011-07-06 09:44:49

标签: magento cron

您好我删除了所有客户的车,我从没有得到它,因为cornjob,我把它放在一个控制器,并正常工作

    require_once($_SERVER['DOCUMENT_ROOT'].'/app/Mage.php');
$app = Mage::app();
Mage::getSingleton('core/session', array('name' => 'frontend'));

Mage::getSingleton('checkout/session')->clear(); // Try this

foreach( Mage::getSingleton('checkout/session')->getQuote()->getItemsCollection() as $item ){
 Mage::getSingleton('checkout/cart')->removeItem( $item->getId() )->save(); // or try that
}

header('Location: /'); // send them back to root (or /magento/ if stored in a subfolder)

foreach( Mage::getSingleton('checkout/session')->getQuote()->getItemsCollection() as $item ){
Mage::getSingleton('checkout/cart')->removeItem( $item->getId() )->save();
}

但不要在cron中工作。 谁是问题?

2 个答案:

答案 0 :(得分:1)

Cronjobs不会在单个用户的会话中运行,因此Mage::getSingleton('checkout/cart')之类的调用将无法检索用户的购物车。您需要调用每个用户的特定购物车,以便从cron中清除它。

希望有所帮助!

谢谢, 乔

答案 1 :(得分:0)

试试这个Mage :: getModel('sales / observer') - > cleanExpiredQuotes();

这已经是一个cron计划功能。转到系统 - >配置 - >销售 - >结帐 - >购物车设置并根据您的要求设置“报价生活时间(天)”。

这将清除已处理的订单购物车条目。删除所有购物车条目(已处理/未处理)只需覆盖上述观察者功能和

替换 $ quotes-> addFieldToFilter('is_active',0);

$ quotes-> addFieldToFilter('is_active',array(1,0));

希望这有帮助!