8

サードパーティの支払いゲートウェイが注文のキャンセル済み注文ステータスを保留に変更したため、保留中の注文が永久に残るという問題が発生しています。

クライアントと電話で話していたところ、クレジット カードに問題があるとのことだったので、注文をキャンセルしました。バックエンドが銀行から通知を受け取ると、保留に変わりました。

それで、もう一度キャンセルすることはありますか?おそらくSQL経由ですか?

よろしく、

4

5 に答える 5

17

私はエンタープライズを実行しており、次の方法でそれを行うことができました:

UPDATE sales_flat_order_grid SET status = 'processing';  
UPDATE sales_flat_order SET state = 'processing', status = 'processing';

誰かがすべての注文ステータスを消去したので、簡単に元に戻すことができました.

もちろん、特定のレコードを更新したい場合WHERE entity_id = '12345'は、クエリの最後にまたは何かを追加します。

上記のようなクエリを実行する前に、必ずデータベースをバックアップしてください。

于 2012-08-08T08:24:04.337 に答える
9

以前の回答には、「sales_flat_order_grid」テーブルを更新するリクエストがありません。質問がまだアクティブな場合、完全なリクエストは次のとおりです。

UPDATE sales_flat_order_grid SET status = 'canceled' WHERE increment_id = <order_increment_id>;
UPDATE sales_flat_order SET state='canceled', status='canceled' WHERE increment_id =<order_increment_id> (or WHERE entity_id = <order_id>);
于 2014-10-03T10:08:20.127 に答える
1

Silas の回答に情報を追加: 販売ステータス履歴に新しいステータスを挿入する必要がある場合があります。

INSERT INTO sales_flat_order_status_history (`parent_id`,`is_customer_notified`,`is_visible_on_front`,`comment`,`status`,`entity_name`,`created_at`) VALUES (YOUR_ORDER_ID,0,0,'',NEW_STATUS_CODE,'order','2014-05-20 11:42:29')
于 2014-05-20T11:54:25.370 に答える
0

SQLはどうですか:

UPDATE sales_flat_order SET state="canceled", status="canceled" WHERE entity_id = {order id should be here} AND increment_id = {order increment id should be here}

このクエリでは、entity_id または increment_id のいずれか、または両方を指定する必要があります。あなたの好きなように。

警告

何かを変更する前に、データベースのバックアップを作成してください。注文に関連するデータベース構造と制約を分析する時間がありませんでした。

PHPはどうですか:

ルート フォルダーから次の PHP スクリプトを実行します。

error_reporting(E_ALL);
ini_set('display_errors', 1);
require_once('app/Mage.php');
Mage::app('admin');
$order = Mage::getModel('sales/order')->loadByIncrementId($id);//id は注文増分 ID です
また
$order = Mage::getModel('sales/order')->load($id);//id は注文 ID です
if ($order->getId()) {
    $order->cancel()->save();
}
于 2012-04-27T05:43:22.433 に答える