2011-03-27 18 views
0

Magentoのすべての顧客のショッピングカートの商品(カートに追加された商品)をすべて削除します。Magentoの全顧客のショッピングカートをすべて削除するには?

どうすればいいですか?

詳細に: -

私は私の店で合計10人の登録済みの顧客を持っている、と仮定します。カートに商品(商品)が追加されている可能性があります。 10人の登録済み顧客のすべてにカートに追加されたすべてのアイテムをクリアしたいと思います。

+0

すべてのショッピングカートの商品を意味しますか? –

+0

私はあなたを手伝っていますが、少なくとも5つの異なる方法でこの質問を解釈しています。 –

+0

質問を編集しました。今はっきりしていることを願っています。 –

答えて

3

私の最初の推測では

$items = Mage::getResourceModel('sales/quote_item_collection'); 

foreach ($items as $item) { 
    $item->delete(); 
} 

カートのアイテムは、「引用」の一部として保存されている、ようなものになるだろう。これらのすべてをループするのは遅いかもしれませんが、SQLで行う方が速いですが安全ではありません。

+0

このクエリは安全です:DELETE FROM 'sales_flat_quote' WHERE is_active = 1; –

+1

'DELETE FROM sales_flat_quote'はカスケード削除を引き起こし、顧客が部分的に記入した可能性のある住所、支払い、配送オプションを削除します。より正確にするには、 'DELETE FROM sales_flat_quote_item INNER JOIN sales_flat_quote ON quote_id = entity_id WHERE is_active = 1'にする必要があります。 – clockworkgeek

2

私は知っている、それはあなたの質問に直接関係はありませんが、助けになるかもしれません。

Inchooはカートのページに「Cart Empty」リンクを入れている数日前に記事を公開しています。

There’s no “EMPTY CART” on Magento’s cart page

+0

他の場所で必要とされる可能性のあるイベントを呼び出すことができないため、SQLの回答を提示することには消極的でした。 Inchooのメソッドは、そのようなイベントを持つ 'removeItem'を使用します。それがより良い方法です。 – clockworkgeek

+0

Inchooのモジュールは、個々の顧客がカートを空にできる顧客に適しています。しかし、一度にすべての顧客のカートアイテムを削除したいと思います。したがって、私はSQLと一緒に行くと考えました。 –

関連する問題