【问题标题】:How to delete all shopping cart items of all customers in Magento?如何在 Magento 中删除所有客户的所有购物车项目?
【发布时间】:2011-03-27 14:45:41
【问题描述】:

我想删除 Magento 中所有客户的所有购物车项目(添加到购物车的产品)。

我该怎么做?

详细说明:-

假设,我的店铺共有 10 位注册客户。他们可能会将商品(产品)添加到购物车中。我想清除所有 10 个注册客户添加到购物车的所有商品。

【问题讨论】:

  • 购物车中的所有商品是什么意思?
  • 我想帮助你,但至少有 5 种不同的方式来解释这个问题。
  • 我已经编辑了这个问题。希望现在很清楚。

标签: php magento


【解决方案1】:

我的第一个猜测是,

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

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

购物车商品作为“报价”的一部分存储。像这样循环遍历它们可能会很慢,在 SQL 中执行会更快但不安全。

TRUNCATE `sales_flat_quote_item`;

【讨论】:

  • 这个查询似乎更安全:DELETE FROM sales_flat_quote WHERE is_active = 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
【解决方案2】:

我知道,这与您的问题没有直接关系,但可能会有所帮助。

Inchoo 前几天发表了一篇文章,将“Cart Empty”链接放在购物车页面上。

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

【讨论】:

  • 我不愿意建议一个 SQL 答案,因为它无法调用其他地方可能需要的事件。 Inchoo 的方法使用 removeItem 有这样的事件,这就是为什么它是更好的方法。
  • Inchoo 的模块适用于个人客户可以清空购物车的客户。但是,我想一次删除所有客户的购物车项目。因此,我想使用 SQL。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多