Hello. It is because unproper behavior of VM that it will not delete order without payment method (that is credit note).
We will include fix of this in next release, where will be possible to delete orders directly from VM Invoice.
You can fix it also by modifying VM code.
Open file administrator/component/com_virtuemart/tables/orders.php and find line 150.
Replace this part (lines 150 - 156)
$paymentTable = '#__virtuemart_payment_plg_'. $this->_db->loadResult();
$this->_db->setQuery('DELETE from `'.$paymentTable.'` WHERE `virtuemart_order_id` = ' . $id);
if ($this->_db->query() === false) {
vmError($this->_db->getError());
return false;
} /*vm_order_shipment NOT EXIST have to find the table name*/
with
if ($paymentName = $this->_db->loadResult()){
$paymentTable = '#__virtuemart_payment_plg_'. $paymentName;
$this->_db->setQuery('DELETE from `'.$paymentTable.'` WHERE `virtuemart_order_id` = ' . $id);
if ($this->_db->query() === false) {
vmError($this->_db->getError());
return false;
}
}