web-dev-qa-db-ja.com

Magentoはいつカートが放棄されたと見なしますか?その制限時間はどこに設定されていますか?

デフォルト設定のままにした場合、Magento 1.7がカートを放棄したと見なすには、どのような状況が発生する必要がありますか?この決定を行うコードはどこにありますか?

これはおそらく引用のどこかに設定されていることを私は知っていますが、私はそれを私の人生のために見つけることができません。

グーグルをいくつか実行しましたが、多くのMagentoの質問と同様に、手ぶらで放置されています。ありがとう!

16
Kale

ご存知かもしれませんが、設定はここにあります。

管理者=>システム=>構成=>販売=>チェックアウト=>見積もりの​​有効期間(日)

これにより、次のパスで設定がデータベース(core_config_dataテーブル)に追加されます。

checkout/cart/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>

お役に立てれば。

15
khoekman

私たちのeコマースでは、メソッドcleanExpiredQuotesをオーバーライドしましたapp/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');
0
Alfredo Alves

問題は、見積もりの​​期限が切れるときではなく、カートがいつ放棄されるかについてでした。 Magentoには放棄されたカート機能がないため、任意です。追加するさまざまな拡張機能を使用して設定できます。

0
bluescrubbie