2013-03-11 105 views
0

我在這裏刪除使用下面的代碼的順序,但它仍然顯示在訂單網格中。當我點擊這個訂單時,它顯示「此訂單不再存在」。但在運行下面的代碼後,我不需要顯示順序。刪除magento訂單

 <?php 
$mageFilename = 'app/Mage.php'; 

require_once $mageFilename; 

Varien_Profiler::enable(); 

Mage::setIsDeveloperMode(true); 

ini_set('display_errors', 1); 

umask(0); 
Mage::app('default'); 
Mage::register('isSecureArea', 1); 
//until here you gained access to the Magento models. The rest is custom code 

$orders_object = Mage::getModel('sales/order')->getCollection()->addAttributeToFilter('increment_id', 100000025); 

$orders_arr = $orders_object->getData(); 
if(!empty($orders_arr)){ 
$orders_data = $orders_arr[0]; 
$orderId = $orders_data['entity_id'];//put here the id of the order you want to delete. THE ONE FROM THE DATABASE NOT THE INCREMENT_ID 

$order = Mage::getModel('sales/order')->load($orderId); 

$invoices = $order->getInvoiceCollection(); 
foreach ($invoices as $invoice){ 
$invoice->delete(); 
} 
$creditnotes = $order->getCreditmemosCollection(); 
foreach ($creditnotes as $creditnote){ 
$creditnote->delete(); 
} 
$shipments = $order->getShipmentsCollection(); 
foreach ($shipments as $shipment){ 
$shipment->delete(); 
} 
$order->delete(); 
echo "deleted"; 
}else{ 
echo "no record"; 
} 
?> 

回答

1

在網格您好訂單從具有與sales_flat_order沒有關係(我的意思無ON DELETE CASCADE)的不同的表「sales_flat_order_grid」。所以,你需要使用下面給出的代碼,將其刪除:

更新1.1

 $order_increment_id = $order->getIncrementId(); 
     if($order_increment_id){ 
      $order_in_grid = Mage::getResourceModel('sales/order_grid_collection')->addFieldToFilter('increment_id',$order_increment_id); 
      $order_in_grid->getFirstItem()->delete(); 
     } 

只要將上面的代碼這行代碼後$命令 - >刪除();

UPDATE 1.2。

使用原始的SQL查詢,而不是因爲我們不能利用該模型

 $db = Mage::getSingleton('core/resource')->getConnection('core_write');  
    $sales_flat_order_grid= Mage::getSingleton('core/resource')->getTableName('sales_flat_order_grid'); 
    $order_increment_id = $order->getIncrementId(); 
     if($order_increment_id){ 
      $db->query("DELETE FROM ".$sales_flat_order_grid." WHERE increment_id='".mysql_escape_string($order_increment_id)."'");   
     } 
+0

在何處放置此代碼。我只是把它放在我的代碼的上面。它仍然顯示在網格 – 2013-03-11 14:15:51

+0

@muralikalpana嗨使用此行$ order_in_grid-> getFirstItem() - > delete();它會通過magento模型正確地刪除訂單中的訂單 – Haijerome 2013-03-11 14:48:10

0
SET FOREIGN_KEY_CHECKS=0; 

    ############################## 
    # SALES RELATED TABLES 
    ############################## 
    TRUNCATE `sales_flat_creditmemo`; 
    TRUNCATE `sales_flat_creditmemo_comment`; 
    TRUNCATE `sales_flat_creditmemo_grid`; 
    TRUNCATE `sales_flat_creditmemo_item`; 
    TRUNCATE `sales_flat_invoice`; 
    TRUNCATE `sales_flat_invoice_comment`; 
    TRUNCATE `sales_flat_invoice_grid`; 
    TRUNCATE `sales_flat_invoice_item`; 
    TRUNCATE `sales_flat_order`; 
    TRUNCATE `sales_flat_order_address`; 
    TRUNCATE `sales_flat_order_grid`; 
    TRUNCATE `sales_flat_order_item`; 
    TRUNCATE `sales_flat_order_payment`; 
    TRUNCATE `sales_flat_order_status_history`; 
    TRUNCATE `sales_flat_quote`; 
    TRUNCATE `sales_flat_quote_address`; 
    TRUNCATE `sales_flat_quote_address_item`; 
    TRUNCATE `sales_flat_quote_item`; 
    TRUNCATE `sales_flat_quote_item_option`; 
    TRUNCATE `sales_flat_quote_payment`; 
    TRUNCATE `sales_flat_quote_shipping_rate`; 
    TRUNCATE `sales_flat_shipment`; 
    TRUNCATE `sales_flat_shipment_comment`; 
    TRUNCATE `sales_flat_shipment_grid`; 
    TRUNCATE `sales_flat_shipment_item`; 
    TRUNCATE `sales_flat_shipment_track`; 
    TRUNCATE `sales_invoiced_aggregated`;   # ?? 
    TRUNCATE `sales_invoiced_aggregated_order`;  # ?? 
    TRUNCATE `log_quote`; 

    ALTER TABLE `sales_flat_creditmemo_comment` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_creditmemo_grid` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_creditmemo_item` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_invoice` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_invoice_comment` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_invoice_grid` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_invoice_item` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_order` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_order_address` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_order_grid` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_order_item` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_order_payment` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_order_status_history` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_quote` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_quote_address` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_quote_address_item` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_quote_item` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_quote_item_option` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_quote_payment` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_quote_shipping_rate` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_shipment` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_shipment_comment` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_shipment_grid` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_shipment_item` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_flat_shipment_track` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_invoiced_aggregated` AUTO_INCREMENT=1; 
    ALTER TABLE `sales_invoiced_aggregated_order` AUTO_INCREMENT=1; 
    ALTER TABLE `log_quote` AUTO_INCREMENT=1; 

    ######################################### 
    # DOWNLOADABLE PURCHASED 
    ######################################### 
    TRUNCATE `downloadable_link_purchased`; 
    TRUNCATE `downloadable_link_purchased_item`; 

    ALTER TABLE `downloadable_link_purchased` AUTO_INCREMENT=1; 
    ALTER TABLE `downloadable_link_purchased_item` AUTO_INCREMENT=1; 

    ######################################### 
    # RESET ID COUNTERS 
    ######################################### 
    TRUNCATE `eav_entity_store`; 
    ALTER TABLE `eav_entity_store` AUTO_INCREMENT=1; 


    ############################## 
    # CUSTOMER RELATED TABLES 
    ############################## 
    TRUNCATE `customer_address_entity`; 
    TRUNCATE `customer_address_entity_datetime`; 
    TRUNCATE `customer_address_entity_decimal`; 
    TRUNCATE `customer_address_entity_int`; 
    TRUNCATE `customer_address_entity_text`; 
    TRUNCATE `customer_address_entity_varchar`; 
    TRUNCATE `customer_entity`; 
    TRUNCATE `customer_entity_datetime`; 
    TRUNCATE `customer_entity_decimal`; 
    TRUNCATE `customer_entity_int`; 
    TRUNCATE `customer_entity_text`; 
    TRUNCATE `customer_entity_varchar`; 
    TRUNCATE `tag`; 
    TRUNCATE `tag_relation`; 
    TRUNCATE `tag_summary`; 
    TRUNCATE `tag_properties`;   ## CHECK ME 
    TRUNCATE `wishlist`; 
    TRUNCATE `log_customer`; 

    ALTER TABLE `customer_address_entity` AUTO_INCREMENT=1; 
    ALTER TABLE `customer_address_entity_datetime` AUTO_INCREMENT=1; 
    ALTER TABLE `customer_address_entity_decimal` AUTO_INCREMENT=1; 
    ALTER TABLE `customer_address_entity_int` AUTO_INCREMENT=1; 
    ALTER TABLE `customer_address_entity_text` AUTO_INCREMENT=1; 
    ALTER TABLE `customer_address_entity_varchar` AUTO_INCREMENT=1; 
    ALTER TABLE `customer_entity` AUTO_INCREMENT=1; 
    ALTER TABLE `customer_entity_datetime` AUTO_INCREMENT=1; 
    ALTER TABLE `customer_entity_decimal` AUTO_INCREMENT=1; 
    ALTER TABLE `customer_entity_int` AUTO_INCREMENT=1; 
    ALTER TABLE `customer_entity_text` AUTO_INCREMENT=1; 
    ALTER TABLE `customer_entity_varchar` AUTO_INCREMENT=1; 
    ALTER TABLE `tag` AUTO_INCREMENT=1; 
    ALTER TABLE `tag_relation` AUTO_INCREMENT=1; 
    ALTER TABLE `tag_summary` AUTO_INCREMENT=1; 
    ALTER TABLE `tag_properties` AUTO_INCREMENT=1; 
    ALTER TABLE `wishlist` AUTO_INCREMENT=1; 
    ALTER TABLE `log_customer` AUTO_INCREMENT=1; 


    ############################## 
    # ADDITIONAL LOGS 
    ############################## 
    TRUNCATE `log_url`; 
    TRUNCATE `log_url_info`; 
    TRUNCATE `log_visitor`; 
    TRUNCATE `log_visitor_info`; 
    TRUNCATE `report_event`; 
    TRUNCATE `report_viewed_product_index`; 
    TRUNCATE `sendfriend_log`; 
    ### ??? TRUNCATE `log_summary` 

    ALTER TABLE `log_url` AUTO_INCREMENT=1; 
    ALTER TABLE `log_url_info` AUTO_INCREMENT=1; 
    ALTER TABLE `log_visitor` AUTO_INCREMENT=1; 
    ALTER TABLE `log_visitor_info` AUTO_INCREMENT=1; 
    ALTER TABLE `report_event` AUTO_INCREMENT=1; 
    ALTER TABLE `report_viewed_product_index` AUTO_INCREMENT=1; 
    ALTER TABLE `sendfriend_log` AUTO_INCREMENT=1; 
    ### ??? ALTER TABLE `log_summary` AUTO_INCREMENT=1; 

    SET FOREIGN_KEY_CHECKS=1;