Когда Мадженто считает, что повозка должна быть оставлена? Где этот срок установлен? - программирование
Подтвердить что ты не робот

Когда Мадженто считает, что повозка должна быть оставлена? Где этот срок установлен?

Если оставить настройки по умолчанию, какие обстоятельства должны возникнуть для Magento 1.7, чтобы рассмотреть заброшенную корзину? Где код, который определяет это определение?

Я знаю, что это, вероятно, установлено где-то в цитате, но я не могу найти ее для жизни.

Я сделал несколько Googling, но, как и многие вопросы Magento, я остался с пустыми руками. Спасибо!

4b9b3361

Ответ 1

Как вы, вероятно, знаете, что настройка находится здесь:

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

Это добавит настройку в базу данных (таблица core_config_data) с помощью пути:

контроль/корзина/delete_quote_after

Этот путь используется в коде:

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

Итак, когда кто-то добавляет что-то в корзину, он будет обновлен. Когда клиент входит в систему и его тележка, он будет обновлен. Когда корзина не обновляется за последние 30 дней. Он будет удален.

Дополнительная информация:

Если вам интересно, когда этот код используется, он используется cronjob magento.

Проверка: Приложение/код/​​ядро ​​/Маг/Продажи/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>

Надеюсь, что это поможет.

Ответ 2

Вопрос заключался в том, когда тележка становится заброшенной, а не когда срок действия цитаты истекает. Поскольку Magento не имеет отказавшихся функций тележки, он произволен. Различные расширения для его добавления позволяют вам установить его.

Ответ 3

В нашей электронной коммерции мы переопределили метод cleanExpiredQuotes внутри приложения /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');