When does Magento consider a cart to be abandoned? Where's that time limit set?

后端 未结 3 2181
孤街浪徒
孤街浪徒 2020-12-14 09:48

If left to default settings, what circumstances would have to occur for Magento 1.7 to consider a cart abandoned? Where is the code that makes this determination located?

相关标签:
3条回答
  • 2020-12-14 10:08

    As you probably know the setting is located here:

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

    This will add the setting to the database (core_config_data table) with path:

    checkout/cart/delete_quote_after

    This path is used in the code on:

    app/code/core/Mage/Sales/Model/Observer.php line 54

    So when someone is adding something to a cart it will be updated. When a customer logs in and his cart is there it will be updated. When a cart is not updated for the last 30 days. It will be removed.

    Extra information:

    In case you wonder when this code is used, It is used by the cronjob of magento.

    check: App/code/core/Mage/Sales/etc/config.xml line 1732

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

    Hope this helps.

    0 讨论(0)
  • 2020-12-14 10:14

    In our e-commerce we've overridden the method cleanExpiredQuotes inside app/code/core/Mage/Sales/Model/Observer.php

    Our business rule looks like this:

    $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');
    
    0 讨论(0)
  • 2020-12-14 10:15

    The question was about when a cart becomes abandoned, not when the quote expires. As Magento doesn't have abandoned cart functionality, it's arbitrary. The various extensions to add it let you set it.

    0 讨论(0)
提交回复
热议问题