0

ここでは、以下のコードを使用して注文を削除していますが、注文グリッドにはまだ表示されています。この注文をクリックすると、「この注文はもう存在しません」と表示されます。しかし、以下のコードを実行した後に順序を表示する必要はありません。

     <?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";
}
?> 
4

3 に答える 3

1

こんにちは、グリッド内の注文は別のテーブル「sales_flat_order_grid」からのもので、sales_flat_order とは関係ありません (つまり、ON DELETE CASCADE はありません)。したがって、以下のコードを使用して削除する必要があります。

アップデート 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();  
      }

$order->delete();コードのこの行の後に上記のコードを配置するだけです。

更新 1.2。

モデルを使用してグリッドから注文を削除できないため、代わりに RAW SQL QUERIES を使用します。

     $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)."'");        
      }
于 2013-03-11T14:09:52.963 に答える
0

最も簡単な方法として、すべてを実行してくれる拡張機能を入手できます。

ソース: http://www.vjtemplates.com/magento-extensions/94-delete-order

于 2013-10-06T15:47:33.293 に答える
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;
于 2015-11-04T08:00:10.520 に答える