I extend the flatrate carrier model of Magento 1.9 as suggested here because I want to set shipping cost on the single product.
When I add configurable products in the cart, shipping cost is double. Magento consider inside the cart a configurable product and simple product variant. So when I add a configurable product Magento sum shipping cost of both configurable and single products.
I add a condition to exclude configurable products. Is it ok? Is there a way to extract only single products from the cart?
Thanks.
Mage::getSingleton('core/session', array('name'=>'frontend'));
$session = Mage::getSingleton('checkout/session');
$cart_items = $session->getQuote()->getAllItems();
$_helper = Mage::helper('catalog/output');
$custom_ship = 0;
foreach( $cart_items as $items ){
// items are configurable and single products
$cur_fproduct = Mage::getModel('catalog/product')->load($items->getProduct_id());
if($cur_fproduct->getTypeId()=='simple') {
$custom_ship +=($items->getQty())*($_helper->productAttribute($cur_fproduct, $cur_fproduct->getShippingWorld(), 'shipping_world'));
}
}
return $custom_ship ;