16

如果保留默认设置,Magento 1.7 在什么情况下才会考虑放弃购物车?做出此决定的代码在哪里?

我知道这可能设置在引用中的某个地方,但我一生都找不到它。

我已经做了一些谷歌搜索,但就像许多 Magento 问题一样,我两手空空。谢谢!

4

3 回答 3

16

您可能知道该设置位于此处:

Admin => system => Configuration => Sales => Checkout => Quote Lifetime (days)

这会将设置添加到具有路径的数据库(core_config_data 表):

结帐/购物车/delete_quote_after

此路径在以下代码中使用:

app/code/core/Mage/Sales/Model/Observer.php 第 54 行

因此,当有人将某些东西添加到购物车时,它将被更新。当客户登录并且他的购物车在那里时,它将被更新。购物车在过去 30 天内未更新时。它将被删除。

额外的信息:

如果您想知道何时使用此代码,它由 magento 的 cronjob 使用。

检查: App/code/core/Mage/Sales/etc/config.xml第 1732 行

<crontab>
    <jobs>
        <sales_clean_quotes>
            <schedule>
                <cron_expr>0 0 * * *</cron_expr>
            </schedule>
            <run>
                <model>sales/observer::cleanExpiredQuotes</model>
            </run>
        </sales_clean_quotes>

希望这可以帮助。

于 2013-03-06T10:54:37.193 回答
0

问题是关于购物车何时被放弃,而不是报价何时到期。由于 Magento 没有放弃购物车功能,因此它是任意的。添加它的各种扩展让您可以设置它。

于 2014-03-14T17:28:14.290 回答
0

在我们的电子商务中,我们覆盖了cleanExpiredQuotesapp /code/core/Mage/Sales/Model/Observer.php中的方法

我们的业务规则如下所示:

$quotes = Mage::getModel('sales/quote')->getCollection();     
$quotes->addFieldToFilter('created_at', array('to' => date("Y-m-d", time() - $lifetime)));

$quotes->addFieldToFilter('is_active', 1);
foreach ($this->getExpireQuotesAdditionalFilterFields() as $field => $condition) {
    $quotes->addFieldToFilter($field, $condition);
}
$quotes->walk('delete');
于 2017-01-19T17:54:55.017 回答