見積もりマージ、顧客が現在のものとマージされます、データベース内のいや重引用符を持っている場合である を行い、観測者があり
引用符をマージしたくない場合
<global>
<events>
<sales_quote_merge_before>
<observers>
<mymage_clearoldcartproducts_observer>
<type>singleton</type>
<class>MyMage_Clearoldcartproducts_Model_Observer</class>
<method>removeCustomerQuote</method>
</mymage_clearoldcartproducts_observer>
</observers>
</sales_quote_merge_before>
</events>
</global>
Observer.phpをファイル
configファイルを、以前のすべての項目を削除するために、独自のオブザーバーを設定することができます
<?php
class MyMage_Clearoldcartproducts_Model_Observer extends Mage_Checkout_Model_Session {
public function removeCustomerQuote() {
$customerQuote = Mage::getModel('sales/quote')
->setStoreId(Mage::app()->getStore()->getId())
->loadByCustomer(Mage::getSingleton('customer/session')->getCustomerId());
if ($customerQuote->getId() && $this->getQuoteId() != $customerQuote->getId()) {
// Removing old cart items of the customer.
foreach ($customerQuote->getAllItems() as $item) {
$item->isDeleted(true);
if ($item->getHasChildren()) {
foreach ($item->getChildren() as $child) {
$child->isDeleted(true);
}
}
}
$customerQuote->collectTotals()->save();
} else {
$this->getQuote()->getBillingAddress();
$this->getQuote()->getShippingAddress();
$this->getQuote()->setCustomer(Mage::getSingleton('customer/session')->getCustomer())
->setTotalsCollectedFlag(false)
->collectTotals()
->save();
}
return $this;
}
}
?>