Magento auto remove out of stock items from shopping cart

· kalpesh

Magento automatically remove product items from shopping cart page which are out of stock. You may need this feature when the situation aries where product goes out of stock and that particular product is already there in other customer’s cart who have not yet checked it out. With this script Magento will auto-check if all the items in the cart are available and in-stock before proceeding for checkout page.

In config.xml file:

  
<events>  
 <controller_action_predispatch_checkout_cart_index>  
 <observers>  
 <namespace_module_autoremove_outofstock>  
 <type>singleton</type>  
 <class>namespace_module/observer</class>  
 <method>autoRemoveOutOfStockItems</method>  
 </namespace_module_autoremove_outofstock>  
 </observers>  
 </controller_action_predispatch_checkout_cart_index>  
</events>  

In Observer.php file:

  
public function autoRemoveOutOfStockItems($observer) {  
 $quote = Mage::getModel(‘checkout/session’)->getQuote();  
 $cartItems = $quote->getAllItems();  
 foreach ($cartItems as $item)  
 {  
 //$productType = $item->getProduct()->getTypeId();  
 //if($productType!=’configurable’) {  
 $productId = $item->getProductId();  
 $product = Mage::getModel(‘catalog/product’)->load($productId);  
 $stockItem = $product->getStockItem();  
 if(!$stockItem->getIsInStock())  
 {  
 Mage::helper(‘checkout/cart’)->getCart()->removeItem($item->getId())->save();  
 }  
 //}  
 }

}  

#auto remove #cart #magento #out of stock