Magento: Cancel old orders / Alte Bestellungen stornieren
Um alte Bestellungen in Magento zu stornieren könnt ihr den folgenden php-code verwenden:
To cancel old orders in Magento, e.g. with state „pending“, „holded“ or „pending_payment“ you can use the following php-code:
public function autocancelPendingOrders() { $orderCollection = Mage::getResourceModel('sales/order_collection'); $orderCollection ->addFieldToFilter('state', array( array('eq' => 'pending'), array('eq' => 'holded'), array('eq' => 'pending_payment') )); $orderCollection->addFieldToFilter('created_at', array( 'lt' => new Zend_Db_Expr("DATE_ADD('".now()."', INTERVAL 2 HOUR)"))) ->getSelect() ->order('entity_id') // ->limit(20) ; foreach($orderCollection->getItems() as $order) { $orderModel = Mage::getModel('sales/order'); $orderModel->load($order['entity_id']); if($orderModel->getState() == 'holded') { if(!$orderModel->canUnhold()) { continue; } else { $orderModel->unhold(); $orderModel->setStatus('new'); } } if(!$orderModel->canCancel()) { continue; } $orderModel->cancel(); $orderModel->setStatus('canceled'); $orderModel->save(); } }