デフォルト設定のままにした場合、Magento 1.7がカートを放棄したと見なすには、どのような状況が発生する必要がありますか?この決定を行うコードはどこにありますか?
これはおそらく引用のどこかに設定されていることを私は知っていますが、私はそれを私の人生のために見つけることができません。
グーグルをいくつか実行しましたが、多くのMagentoの質問と同様に、手ぶらで放置されています。ありがとう!
ご存知かもしれませんが、設定はここにあります。
管理者=>システム=>構成=>販売=>チェックアウト=>見積もりの有効期間(日)
これにより、次のパスで設定がデータベース(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>
お役に立てれば。
私たちの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');
問題は、見積もりの期限が切れるときではなく、カートがいつ放棄されるかについてでした。 Magentoには放棄されたカート機能がないため、任意です。追加するさまざまな拡張機能を使用して設定できます。