How to delete order in magento from order id 100000030 to 100000050 by using MySQL query.
Magento – Delete order by using order id and MySQL query
magento-1.9orders
Related Solutions
This is more of a hack. Warning: you could accidentally delete items if you're not careful.
The getAllItems
method filters items out of the item collection and returns it.
In order to filter items out of the getAllItems
array you simply need to mark the desired items in the collection as deleted:
foreach($order->getAllItems() as $item) {
$item->isDeleted(true);
}
Subsequent calls to getAllItems
will return items not marked as deleted.
Now, where things get hairy is that if you call save
on that item, it will delete it. This is dangerous.
So, what I suggest instead, is that you build your own collection with only the data that you know that you want. For instance:
$collection = new Varien_Data_Collection();
And then populate it:
foreach($order->getAllItems() as $item) {
//some condition
$collection->addItem($item);
}
Now your new collection only contains the data that you want, and you can hand that around.
you can remove the product with sku. check this answer
add this function into app\code\local\AR\Orderstatus\controllers\Adminhtml\IndexController.php
public function deleteproductAction()
{
$order_id = $this->getRequest()->getParam('order_id');
$product_id = $this->getRequest()->getParam('product_id');
$_order = Mage::getModel('sales/order')->load($order_id);
$items = $_order->getAllItems();
foreach ($items as $item){
$base_grand_total = $_order->getBaseGrandTotal();
$base_subtotal = $_order->getBaseSubtotal();
$base_tva = $_order->getBaseTaxAmount();
$grand_total = $_order->getGrandTotal();
$subtotal = $_order->getSubtotal();
$tva = $_order->getTaxAmount();
$base_subtotal_incl_tax = $_order->getBaseSubtotalInclTax();
$subtotal_incl_tax = $_order->getSubtotalInclTax();
$total_item_count = $_order->getTotalItemCount();
if($item->getProductId()==$product_id){
$item_price = $item->getPrice();
$item_tva = $item->getTaxAmount();
$item->delete();
$_order->setBaseGrandTotal($base_grand_total-$item_price-$item_tva);
$_order->setBaseSubtotal($base_subtotal-$item_price);
$_order->setBaseTaxAmount($base_tva-$item_tva);
$_order->setGrandTotal($grand_total-$item_price-$item_tva);
$_order->setSubtotal($subtotal-$item_price);
$_order->setTaxAmount($tva-$item_tva);
$_order->setBaseSubtotalInclTax($base_subtotal_incl_tax-$item_price);
$_order->setSubtotalInclTax($subtotal_incl_tax-$item_price);
$_order->setTotalItemCount(count($items)-1);
$_order->save();
}
}
Mage::getSingleton('adminhtml/session')
->addSuccess('Order Updated Successfully');
$this->_redirect('adminhtml/sales_order/view', array('order_id' => $_order->getId()));
}
Best Answer
Following Code use to Delete order.
It may be help you.
Here link of delete order best way as per your requirement