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();
}
}

