如何在PrestaShop制造一辆废弃的手推车
我们只是遇到了一个问题,没有找到问题的答案。 我们想测试一个与废弃购物车状态相关的函数,但我们不知道如何废弃购物车,即使我们将一些物品放在购物车上,但购物车保持未订购状态,如果我们注销,它仍然不会更新状态如何在PrestaShop制造一辆废弃的手推车,prestashop,cart,Prestashop,Cart,我们只是遇到了一个问题,没有找到问题的答案。 我们想测试一个与废弃购物车状态相关的函数,但我们不知道如何废弃购物车,即使我们将一些物品放在购物车上,但购物车保持未订购状态,如果我们注销,它仍然不会更新状态 我们有点迷路了,我们找不到这个问题的答案。(如何放弃购物车是一个很好的选择)只有旧的购物车没有转换成订单,看起来就像被放弃了一样 通过DB,将1年减去所需的购物车,如下所示: UPDATE ps_cart SET date_add = date_add(date_add, INTERVAL
我们有点迷路了,我们找不到这个问题的答案。(如何放弃购物车是一个很好的选择)只有旧的购物车没有转换成订单,看起来就像被放弃了一样 通过DB,将1年减去所需的购物车,如下所示:
UPDATE ps_cart
SET
date_add = date_add(date_add, INTERVAL -1 YEAR),
date_upd = date_add(date_upd, INTERVAL -1 YEAR)
WHERE id_cart = your_id_cart;
正如您可能已经从Prestashop core中看到的,这是it用来获取废弃手推车的功能之一
public static function getAbandonedCarts($date_from, $date_to)
{
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue(
'
SELECT COUNT(DISTINCT id_guest)
FROM `' . _DB_PREFIX_ . 'cart`
WHERE `date_add` BETWEEN "' . pSQL($date_from) . '" AND "' . pSQL($date_to) . '"
AND NOT EXISTS (SELECT 1 FROM `' . _DB_PREFIX_ . 'orders` WHERE `' . _DB_PREFIX_ . 'orders`.id_cart = `' . _DB_PREFIX_ . 'cart`.id_cart)
' . Shop::addSqlRestriction()
);
}
它确实会在表“cart”中检查日期。但是,更重要的是,它会检查是否存在与该实体购物车相关的订单记录。如果“订单”表中的记录不存在,则表示我们有一个“废弃的购物车”
您可以在类“AdminStatsControllerCore”中找到上述函数,该类很可能是在后台办公室(订单->购物车)中获取“废弃购物车”的逻辑
希望我能更清楚地告诉你Prestashop是如何处理废弃的手推车的
public static function getAbandonedCarts($date_from, $date_to)
{
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue(
'
SELECT COUNT(DISTINCT id_guest)
FROM `' . _DB_PREFIX_ . 'cart`
WHERE `date_add` BETWEEN "' . pSQL($date_from) . '" AND "' . pSQL($date_to) . '"
AND NOT EXISTS (SELECT 1 FROM `' . _DB_PREFIX_ . 'orders` WHERE `' . _DB_PREFIX_ . 'orders`.id_cart = `' . _DB_PREFIX_ . 'cart`.id_cart)
' . Shop::addSqlRestriction()
);
}