web-dev-qa-db-fra.com

comment puis-je supprimer une commande de test de magento

J'ai créé un site web dans magento. Maintenant, il est en direct et je veux supprimer l'ordre de tous les tests. Je sais qu'il y a des tables dans toutes ces commandes sont stockées. mais je ne connais pas le nom de ces tables. Si un corps possède un script capable de supprimer toutes les données de la commande.

Donnez-moi s'il vous plaît ou s'il vous plaît mentionnez le nom de toutes les tables qui stocke les informations de commande

33
mjdevloper
  1. Allez dans admin> ventes> commandes
  2. Notez les ID incrémentiels de vos ordres de test, par exemple, 100000001,100000002, 100003,100000111, 10000112, 100000199
  3. maintenant, créez un fichier php dans le répertoire racine magento et nommez-le: remove_test_orders.php
  4. Collez le code ci-dessous:

    require 'app/Mage.php';
    Mage::app('admin')->setUseSessionInUrl(false);                                                                                                                 
    //replace your own orders numbers here:
    $test_order_ids=array(
      '100000001',
      '100000002',
      '100000003',
      '100000111',
      '100000112',
      '100000199',
    );
    foreach($test_order_ids as $id){
        try{
            Mage::getModel('sales/order')->loadByIncrementId($id)->delete();
            echo "order #".$id." is removed".PHP_EOL;
        }catch(Exception $e){
            echo "order #".$id." could not be remvoved: ".$e->getMessage().PHP_EOL;
        }
    }
    echo "complete.";
    
  5. Maintenant, allez en ligne de commande et lancez:

    php remove_test_orders.php

  6. À la fin, supprimez remove_test_orders.php.

66
cubny

La réponse ci-dessus est trop ancienne et présente l'inconvénient de ne pas vider les tables de paiement, de sorte qu'il y a une possibilité d'héritage.
vous pouvez utiliser le code ci-dessous, il supprimera également les informations de paiement.

SET FOREIGN_KEY_CHECKS=0;
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 `sales_order_aggregated_created`;
TRUNCATE `sendfriend_log`;
TRUNCATE `tag`;
TRUNCATE `tag_relation`;
TRUNCATE `tag_summary`;
TRUNCATE `wishlist`;
TRUNCATE `log_quote`;
TRUNCATE `report_event`;
ALTER TABLE `sales_flat_creditmemo` AUTO_INCREMENT=1;
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 `sales_order_aggregated_created` AUTO_INCREMENT=1;
ALTER TABLE `sendfriend_log` 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 `wishlist` AUTO_INCREMENT=1;
ALTER TABLE `log_quote` AUTO_INCREMENT=1;
ALTER TABLE `report_event` AUTO_INCREMENT=1;

SET FOREIGN_KEY_CHECKS=1; 
14
urfusion

Jetez un coup d’œil à Comment supprimer des commandes de 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

$orderId = 156;//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();
?>
8
Renon Stewart

J'ai configuré un référentiel pour la maintenance de scripts SQL simples à exécuter avant le lancement d'un nouveau site Magento. Jusqu'à présent, ils peuvent aider:

  1. données de test vides de Mage; commandes, clients, rapports, journaux, etc.
  2. données de test vides de différentes extensions
  3. définir les identifiants souhaités pour la prochaine commande, la facture, l'expédition et les crédits

https://github.com/ccondrup/mage-reset
Aidez-les à les améliorer!

4
ccondrup

J'ai créé un outil de ligne de commande open source 

vous pouvez l'utiliser comme ceci:

#delete order by increment id
php -f Shell/delete-order.php -- --increment-id 100000001

#test delete order by increment id (wont actually delete it)
php -f Shell/delete-order.php -- --dry-run --order-id 32

https://github.com/mauricioprado00/magento-delete-order/releases

3
useless

Presque toutes les réponses précédentes ont un problème de contrainte de clé étrangère ou de nom de table incorrect. J'ai réussi à supprimer la suppression sur un Magento v 1.9.1.0 CE en utilisant le SQL ci-dessous, j'ai modifié le SQL donné dans les réponses précédentes:

    SET FOREIGN_KEY_CHECKS=0;
TRUNCATE `mg_sales_flat_creditmemo`;
TRUNCATE `mg_sales_flat_creditmemo_comment`;
TRUNCATE `mg_sales_flat_creditmemo_grid`;
TRUNCATE `mg_sales_flat_creditmemo_item`;
TRUNCATE `mg_sales_flat_invoice`;
TRUNCATE `mg_sales_flat_invoice_comment`;
TRUNCATE `mg_sales_flat_invoice_grid`;
TRUNCATE `mg_sales_flat_invoice_item`;
TRUNCATE `mg_sales_flat_order`;
TRUNCATE `mg_sales_flat_order_address`;
TRUNCATE `mg_sales_flat_order_grid`;
TRUNCATE `mg_sales_flat_order_item`;
TRUNCATE `mg_sales_flat_order_payment`;
TRUNCATE `mg_sales_flat_order_status_history`;
TRUNCATE `mg_sales_flat_quote`;
TRUNCATE `mg_sales_flat_quote_address`;
TRUNCATE `mg_sales_flat_quote_address_item`;
TRUNCATE `mg_sales_flat_quote_item`;
TRUNCATE `mg_sales_flat_quote_item_option`;
TRUNCATE `mg_sales_flat_quote_payment`;
TRUNCATE `mg_sales_flat_quote_shipping_rate`;
TRUNCATE `mg_sales_flat_shipment`;
TRUNCATE `mg_sales_flat_shipment_comment`;
TRUNCATE `mg_sales_flat_shipment_grid`;
TRUNCATE `mg_sales_flat_shipment_item`;
TRUNCATE `mg_sales_flat_shipment_track`;
TRUNCATE `mg_sales_invoiced_aggregated`;
TRUNCATE `mg_sales_invoiced_aggregated_order`;
TRUNCATE `mg_sales_order_aggregated_created`;
TRUNCATE `mg_sendfriend_log`;
TRUNCATE `mg_tag`;
TRUNCATE `mg_tag_relation`;
TRUNCATE `mg_tag_summary`;
TRUNCATE `mg_wishlist`;
TRUNCATE `mg_log_quote`;
TRUNCATE `mg_report_event`;
ALTER TABLE `mg_sales_flat_creditmemo` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_creditmemo_comment` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_creditmemo_grid` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_creditmemo_item` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_invoice` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_invoice_comment` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_invoice_grid` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_invoice_item` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_order` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_order_address` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_order_grid` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_order_item` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_order_payment` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_order_status_history` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_quote` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_quote_address` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_quote_address_item` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_quote_item` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_quote_item_option` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_quote_payment` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_quote_shipping_rate` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_shipment` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_shipment_comment` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_shipment_grid` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_shipment_item` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_flat_shipment_track` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_invoiced_aggregated` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_invoiced_aggregated_order` AUTO_INCREMENT=1;
ALTER TABLE `mg_sales_order_aggregated_created` AUTO_INCREMENT=1;
ALTER TABLE `mg_sendfriend_log` AUTO_INCREMENT=1;
ALTER TABLE `mg_tag` AUTO_INCREMENT=1;
ALTER TABLE `mg_tag_relation` AUTO_INCREMENT=1;
ALTER TABLE `mg_tag_summary` AUTO_INCREMENT=1;
ALTER TABLE `mg_wishlist` AUTO_INCREMENT=1;
ALTER TABLE `mg_log_quote` AUTO_INCREMENT=1;
ALTER TABLE `mg_report_event` AUTO_INCREMENT=1;

SET FOREIGN_KEY_CHECKS=1; 

N'oubliez pas de changer mg_ en votre préfixe de table.

2
Create a file in the root directory and paste the following code.
It will remove all the orders from admin grid!

<?php

/**
 * @author Dejan Radic <[email protected]>
 */

if (version_compare(phpversion(), '5.2.0', '<')===true) {
    echo  '<div style="font:12px/1.35em arial, helvetica, sans-serif;"><div style="margin:0 0 25px 0; border-bottom:1px solid #ccc;"><h3 style="margin:0; font-size:1.7em; font-weight:normal; text-transform:none; text-align:left; color:#2f2f2f;">Whoops, it looks like you have an invalid PHP version.</h3></div><p>Magento supports PHP 5.2.0 or newer. <a href="http://www.magentocommerce.com/install" target="">Find out</a> how to install</a> Magento using PHP-CGI as a work-around.</p></div>';
    exit;
}

error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);

$mageFilename = 'app/Mage.php';

if (!file_exists($mageFilename)) {
    echo $mageFilename." was not found";
    exit;
}

require_once $mageFilename;

Mage::app();

$executionPath = null;

/*
 * determine Magento Edition
 */
if (file_exists('LICENSE_EE.txt')) {
    $edition = 'EE';
}elseif (file_exists('LICENSE_PRO.html')) {
    $edition = 'PE';
} else {
    $edition = 'CE';    
}

if(($edition=='EE' && version_compare(Mage::getVersion(), '1.11.0.0.', '<')===true)
        || ($edition=='PE' && version_compare(Mage::getVersion(), '1.11.0.0.', '<')===true)
        || ($edition=='CE' && version_compare(Mage::getVersion(), '1.6.0.0.', '<')===true)
  ){
   $executionPath = 'old'; 
} else {
   $executionPath = 'new';  
}

$xpathEntity = 'global/models/sales_entity/entities//table';

if ($executionPath == 'old') {
    $xpathResource = 'global/models/sales_mysql4/entities//table';
} else {
    $xpathResource = 'global/models/sales_resource/entities//table';
}

$salesEntitiesConf = array_merge(
    Mage::getSingleton('core/config')->init()->getXpath($xpathEntity), 
    Mage::getSingleton('core/config')->init()->getXpath($xpathResource)
);

$resource = Mage::getSingleton('core/resource');
$connection = $resource->getConnection('core_write');


/*
 * If you want delete System/Order Statuses (Status and State) you
 * should comments below lines (46-51)
 */
$skipTables = array (
        $resource->getTableName('sales_order_status'),
        $resource->getTableName('sales_order_status_state'),
        $resource->getTableName('sales_order_status_label')
    );
$salesEntitiesConf = array_diff($salesEntitiesConf, $skipTables);


/*

Multiple RDBMS Support in Magento CE 1.6+ / EE 1.11+
    http://www.magentocommerce.com/images/uploads/RDBMS_Guide2.pdf

2.2. Adapters:

... The new Varien_DB_Adapter_Interface was added to sign a contract that all 
developed adapters must execute in order to get Magento working on an actual 
database. The interface describes the list of methods and constants that can be used by resource models...

Used below in the loop:

 * If $executionPath == 'old'
    * Varien_Db_Adapter_Pdo_Mysql::showTableStatus()
    * Varien_Db_Adapter_Pdo_Mysql::truncate()  
 * Else
    * Varien_Db_Adapter_Interface::isTableExists()
    * Varien_Db_Adapter_Interface::truncateTable()

*/

while ($table = current($salesEntitiesConf) ){
    $table = $resource->getTableName($table);

    if ($executionPath == 'old') {
        $isTableExists = $connection->showTableStatus($table);
    } else {
        $isTableExists = $connection->isTableExists($table);
    }
    if ($isTableExists) {
        try {
            if ($executionPath == 'old') {
                $connection->truncate($table);
            } else {
                $connection->truncateTable($table);
            }

            printf('Successfully truncated the <i style="color:green;">%s</i> table.<br />', $table);
        } catch(Exception $e) {
            printf('Error <i style="color:red;">%s</i> occurred truncating the <i style="color:red;">%s</i> table.<br />', $e->getMessage(), $table);
        }
    }

    next($salesEntitiesConf);
}

exit('All done...');

?>
1
Vivek Khandelwal

Avec cette extension, non seulement les commandes, les factures, les envois, les avoirs, les RMA, seront effacés, mais il renverra également toutes les informations telles que la taxe perçue, produits supprimés retour à l'inventaire et réinitialiser les ID d'incrément.

Si vous vous trompez lors de la création de la commande/de la facture/de l’expédition/de la note de crédit/RMA et que vous souhaitez la supprimer, cette extension peut très bien fonctionner.

Il existe un site de test où vous pouvez l’essayer d’abord et voir si cela fonctionne pour vous ou non.

http://www.magentocommerce.com/magento-connect/ultimate-delete-order.html

0
user1801605
0
Richard Feraro

Vous avez simplement obtenu votre base de données phpMyadmin, puis ouvrez la table sales_flat_order, puis supprimez simplement les données de ce tableau et vos ordres de test seront effacés. Pas besoin de code ou de commandes. cool.

0
Asif Mehmood